Index: mojo/cc/output_surface_mojo.cc |
diff --git a/mojo/cc/output_surface_mojo.cc b/mojo/cc/output_surface_mojo.cc |
index 8a979e4707e52c993400444a7fb47d627c8f08c3..fff13806450aed4fe22e1f96bcf77bec6652f046 100644 |
--- a/mojo/cc/output_surface_mojo.cc |
+++ b/mojo/cc/output_surface_mojo.cc |
@@ -14,12 +14,11 @@ namespace mojo { |
OutputSurfaceMojo::OutputSurfaceMojo( |
OutputSurfaceMojoClient* client, |
const scoped_refptr<cc::ContextProvider>& context_provider, |
- SurfacePtr surface, |
- uint32_t id_namespace) |
+ SurfacePtr surface) |
: cc::OutputSurface(context_provider), |
output_surface_mojo_client_(client), |
surface_(surface.Pass()), |
- id_namespace_(id_namespace), |
+ id_namespace_(0u), |
local_id_(0u) { |
capabilities_.delegated_rendering = true; |
capabilities_.max_frames_pending = 1; |
@@ -30,6 +29,11 @@ OutputSurfaceMojo::~OutputSurfaceMojo() { |
void OutputSurfaceMojo::SetIdNamespace(uint32_t id_namespace) { |
id_namespace_ = id_namespace; |
+ if (local_id_) { |
+ cc::SurfaceId qualified_id(static_cast<uint64_t>(id_namespace_) << 32 | |
+ local_id_); |
+ output_surface_mojo_client_->DidCreateSurface(qualified_id); |
+ } |
} |
void OutputSurfaceMojo::ReturnResources(Array<ReturnedResourcePtr> resources) { |
@@ -49,9 +53,11 @@ void OutputSurfaceMojo::SwapBuffers(cc::CompositorFrame* frame) { |
} |
local_id_++; |
surface_->CreateSurface(local_id_); |
- cc::SurfaceId qualified_id(static_cast<uint64_t>(id_namespace_) << 32 | |
- local_id_); |
- output_surface_mojo_client_->DidCreateSurface(qualified_id); |
+ if (id_namespace_) { |
+ cc::SurfaceId qualified_id(static_cast<uint64_t>(id_namespace_) << 32 | |
+ local_id_); |
+ output_surface_mojo_client_->DidCreateSurface(qualified_id); |
+ } |
surface_size_ = frame_size; |
} |