viz: Make RenderPassId not convertible to int.

The primary amount of work this patch does is ensures that RenderPassId
is an explicit type that cannot be implicitly converted to other types
(using util::IdType from base).

Note that there is also a split between RenderPass and (new)
RenderPassInternal classes. This is in preparation for having a
CompositorRenderPass and AggregatedRenderPass which would differ at least
in the type of Id that they have (possibly with more differences if
there is something Compositor uses that Aggregator does not).

[email protected]

Bug: 1106418
Change-Id: Iaf6a5e4f654652d5dc724b20ba8908ddeeeec087
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2305189
Reviewed-by: weiliangc <[email protected]>
Reviewed-by: Bo <[email protected]>
Reviewed-by: Mitsuru Oshima <[email protected]>
Reviewed-by: Robert Sesek <[email protected]>
Reviewed-by: Chris Harrelson <[email protected]>
Commit-Queue: vmpstr <[email protected]>
Cr-Commit-Position: refs/heads/master@{#790088}
diff --git a/cc/layers/mirror_layer_impl.h b/cc/layers/mirror_layer_impl.h
index b2e6204..58c07eb 100644
--- a/cc/layers/mirror_layer_impl.h
+++ b/cc/layers/mirror_layer_impl.h
@@ -54,6 +54,9 @@
 
  private:
   const char* LayerTypeAsString() const override;
+  viz::RenderPassId mirrored_layer_render_pass_id() const {
+    return viz::RenderPassId{mirrored_layer_id()};
+  }
 
   int mirrored_layer_id_ = 0;
 };