diff options
-rw-r--r-- | cc/output/delegating_renderer.cc | 18 | ||||
-rw-r--r-- | cc/output/delegating_renderer.h | 4 | ||||
-rw-r--r-- | cc/output/gl_renderer.cc | 4 | ||||
-rw-r--r-- | cc/output/gl_renderer.h | 2 | ||||
-rw-r--r-- | cc/output/gl_renderer_unittest.cc | 17 | ||||
-rw-r--r-- | cc/output/renderer.h | 3 | ||||
-rw-r--r-- | cc/output/software_renderer.cc | 4 | ||||
-rw-r--r-- | cc/output/software_renderer.h | 2 | ||||
-rw-r--r-- | cc/output/software_renderer_unittest.cc | 3 | ||||
-rw-r--r-- | cc/test/pixel_test.cc | 4 | ||||
-rw-r--r-- | cc/trees/layer_tree_host_impl.cc | 3 | ||||
-rw-r--r-- | cc/trees/layer_tree_host_impl.h | 3 |
12 files changed, 28 insertions, 39 deletions
diff --git a/cc/output/delegating_renderer.cc b/cc/output/delegating_renderer.cc index ab16b1d..918491d 100644 --- a/cc/output/delegating_renderer.cc +++ b/cc/output/delegating_renderer.cc @@ -107,13 +107,10 @@ void DelegatingRenderer::DrawFrame(RenderPassList* render_passes_in_draw_order, bool disable_picture_quad_image_filtering) { TRACE_EVENT0("cc", "DelegatingRenderer::DrawFrame"); - DCHECK(!frame_for_swap_buffers_.delegated_frame_data); + DCHECK(!delegated_frame_data_); - frame_for_swap_buffers_.metadata = client_->MakeCompositorFrameMetadata(); - - frame_for_swap_buffers_.delegated_frame_data = - make_scoped_ptr(new DelegatedFrameData); - DelegatedFrameData& out_data = *frame_for_swap_buffers_.delegated_frame_data; + delegated_frame_data_ = make_scoped_ptr(new DelegatedFrameData); + DelegatedFrameData& out_data = *delegated_frame_data_; // Move the render passes and resources into the |out_frame|. out_data.render_pass_list.swap(*render_passes_in_draw_order); @@ -129,11 +126,12 @@ void DelegatingRenderer::DrawFrame(RenderPassList* render_passes_in_draw_order, resource_provider_->PrepareSendToParent(resources, &out_data.resource_list); } -void DelegatingRenderer::SwapBuffers() { +void DelegatingRenderer::SwapBuffers(const CompositorFrameMetadata& metadata) { TRACE_EVENT0("cc", "DelegatingRenderer::SwapBuffers"); - - output_surface_->SwapBuffers(&frame_for_swap_buffers_); - frame_for_swap_buffers_.delegated_frame_data.reset(); + CompositorFrame compositor_frame; + compositor_frame.metadata = metadata; + compositor_frame.delegated_frame_data = delegated_frame_data_.Pass(); + output_surface_->SwapBuffers(&compositor_frame); } void DelegatingRenderer::GetFramebufferPixels(void* pixels, gfx::Rect rect) { diff --git a/cc/output/delegating_renderer.h b/cc/output/delegating_renderer.h index c1bf2ec..3c74aa8 100644 --- a/cc/output/delegating_renderer.h +++ b/cc/output/delegating_renderer.h @@ -36,7 +36,7 @@ class CC_EXPORT DelegatingRenderer : public Renderer { virtual void Finish() OVERRIDE {} - virtual void SwapBuffers() OVERRIDE; + virtual void SwapBuffers(const CompositorFrameMetadata& metadata) OVERRIDE; virtual void ReceiveSwapBuffersAck(const CompositorFrameAck&) OVERRIDE; virtual void GetFramebufferPixels(void* pixels, gfx::Rect rect) OVERRIDE; @@ -59,7 +59,7 @@ class CC_EXPORT DelegatingRenderer : public Renderer { OutputSurface* output_surface_; ResourceProvider* resource_provider_; RendererCapabilities capabilities_; - CompositorFrame frame_for_swap_buffers_; + scoped_ptr<DelegatedFrameData> delegated_frame_data_; bool visible_; DISALLOW_COPY_AND_ASSIGN(DelegatingRenderer); diff --git a/cc/output/gl_renderer.cc b/cc/output/gl_renderer.cc index cc9a752..02048c8 100644 --- a/cc/output/gl_renderer.cc +++ b/cc/output/gl_renderer.cc @@ -2238,7 +2238,7 @@ void GLRenderer::Finish() { GLC(context_, context_->finish()); } -void GLRenderer::SwapBuffers() { +void GLRenderer::SwapBuffers(const CompositorFrameMetadata& metadata) { DCHECK(visible_); DCHECK(!is_backbuffer_discarded_); @@ -2246,7 +2246,7 @@ void GLRenderer::SwapBuffers() { // We're done! Time to swapbuffers! CompositorFrame compositor_frame; - compositor_frame.metadata = client_->MakeCompositorFrameMetadata(); + compositor_frame.metadata = metadata; compositor_frame.gl_frame_data = make_scoped_ptr(new GLFrameData); compositor_frame.gl_frame_data->size = output_surface_->SurfaceSize(); if (capabilities_.using_partial_swap) { diff --git a/cc/output/gl_renderer.h b/cc/output/gl_renderer.h index d582769..895bcce 100644 --- a/cc/output/gl_renderer.h +++ b/cc/output/gl_renderer.h @@ -61,7 +61,7 @@ class CC_EXPORT GLRenderer : public DirectRenderer { virtual void Finish() OVERRIDE; virtual void DoNoOp() OVERRIDE; - virtual void SwapBuffers() OVERRIDE; + virtual void SwapBuffers(const CompositorFrameMetadata& metadata) OVERRIDE; virtual void GetFramebufferPixels(void* pixels, gfx::Rect rect) OVERRIDE; diff --git a/cc/output/gl_renderer_unittest.cc b/cc/output/gl_renderer_unittest.cc index 93905fd..6288c5d 100644 --- a/cc/output/gl_renderer_unittest.cc +++ b/cc/output/gl_renderer_unittest.cc @@ -172,9 +172,6 @@ class FakeRendererClient : public RendererClient { virtual void SetFullRootLayerDamage() OVERRIDE { set_full_root_layer_damage_count_++; } - virtual CompositorFrameMetadata MakeCompositorFrameMetadata() const OVERRIDE { - return CompositorFrameMetadata(); - } // Methods added for test. int set_full_root_layer_damage_count() const { @@ -242,7 +239,7 @@ class GLRendererTest : public testing::Test { virtual void SetUp() { renderer_->Initialize(); } - void SwapBuffers() { renderer_->SwapBuffers(); } + void SwapBuffers() { renderer_->SwapBuffers(CompositorFrameMetadata()); } LayerTreeSettings settings_; FrameCountingContext* context3d_; @@ -1654,7 +1651,7 @@ class MockOutputSurfaceTest : public testing::Test, public FakeRendererClient { EXPECT_TRUE(renderer_->Initialize()); } - void SwapBuffers() { renderer_->SwapBuffers(); } + void SwapBuffers() { renderer_->SwapBuffers(CompositorFrameMetadata()); } void DrawFrame(float device_scale_factor) { gfx::Rect viewport_rect(DeviceViewport()); @@ -1697,31 +1694,31 @@ TEST_F(MockOutputSurfaceTest, DrawFrameAndSwap) { DrawFrame(1.f); EXPECT_CALL(output_surface_, SwapBuffers(_)).Times(1); - renderer_->SwapBuffers(); + renderer_->SwapBuffers(CompositorFrameMetadata()); } TEST_F(MockOutputSurfaceTest, DrawFrameAndResizeAndSwap) { DrawFrame(1.f); EXPECT_CALL(output_surface_, SwapBuffers(_)).Times(1); - renderer_->SwapBuffers(); + renderer_->SwapBuffers(CompositorFrameMetadata()); set_viewport(gfx::Rect(0, 0, 2, 2)); renderer_->ViewportChanged(); DrawFrame(2.f); EXPECT_CALL(output_surface_, SwapBuffers(_)).Times(1); - renderer_->SwapBuffers(); + renderer_->SwapBuffers(CompositorFrameMetadata()); DrawFrame(2.f); EXPECT_CALL(output_surface_, SwapBuffers(_)).Times(1); - renderer_->SwapBuffers(); + renderer_->SwapBuffers(CompositorFrameMetadata()); set_viewport(gfx::Rect(0, 0, 1, 1)); renderer_->ViewportChanged(); DrawFrame(1.f); EXPECT_CALL(output_surface_, SwapBuffers(_)).Times(1); - renderer_->SwapBuffers(); + renderer_->SwapBuffers(CompositorFrameMetadata()); } class GLRendererTestSyncPoint : public GLRendererPixelTest { diff --git a/cc/output/renderer.h b/cc/output/renderer.h index 693cd0c..65c2cb5 100644 --- a/cc/output/renderer.h +++ b/cc/output/renderer.h @@ -24,7 +24,6 @@ class CC_EXPORT RendererClient { virtual gfx::Rect DeviceViewport() const = 0; virtual gfx::Rect DeviceClip() const = 0; virtual void SetFullRootLayerDamage() = 0; - virtual CompositorFrameMetadata MakeCompositorFrameMetadata() const = 0; protected: virtual ~RendererClient() {} @@ -59,7 +58,7 @@ class CC_EXPORT Renderer { virtual void DoNoOp() {} // Puts backbuffer onscreen. - virtual void SwapBuffers() = 0; + virtual void SwapBuffers(const CompositorFrameMetadata& metadata) = 0; virtual void ReceiveSwapBuffersAck(const CompositorFrameAck& ack) {} virtual void GetFramebufferPixels(void* pixels, gfx::Rect rect) = 0; diff --git a/cc/output/software_renderer.cc b/cc/output/software_renderer.cc index 6f2aff2..3cc4e29 100644 --- a/cc/output/software_renderer.cc +++ b/cc/output/software_renderer.cc @@ -117,9 +117,9 @@ void SoftwareRenderer::FinishDrawingFrame(DrawingFrame* frame) { output_device_->EndPaint(current_frame_data_.get()); } -void SoftwareRenderer::SwapBuffers() { +void SoftwareRenderer::SwapBuffers(const CompositorFrameMetadata& metadata) { CompositorFrame compositor_frame; - compositor_frame.metadata = client_->MakeCompositorFrameMetadata(); + compositor_frame.metadata = metadata; compositor_frame.software_frame_data = current_frame_data_.Pass(); output_surface_->SwapBuffers(&compositor_frame); } diff --git a/cc/output/software_renderer.h b/cc/output/software_renderer.h index a4a5394..18fb2a3 100644 --- a/cc/output/software_renderer.h +++ b/cc/output/software_renderer.h @@ -36,7 +36,7 @@ class CC_EXPORT SoftwareRenderer : public DirectRenderer { virtual ~SoftwareRenderer(); virtual const RendererCapabilities& Capabilities() const OVERRIDE; virtual void Finish() OVERRIDE; - virtual void SwapBuffers() OVERRIDE; + virtual void SwapBuffers(const CompositorFrameMetadata& metadata) OVERRIDE; virtual void GetFramebufferPixels(void* pixels, gfx::Rect rect) OVERRIDE; virtual void SetVisible(bool visible) OVERRIDE; virtual void SendManagedMemoryStats( diff --git a/cc/output/software_renderer_unittest.cc b/cc/output/software_renderer_unittest.cc index 33e311a..4829f20b 100644 --- a/cc/output/software_renderer_unittest.cc +++ b/cc/output/software_renderer_unittest.cc @@ -55,9 +55,6 @@ class SoftwareRendererTest : public testing::Test, public RendererClient { } virtual gfx::Rect DeviceClip() const OVERRIDE { return DeviceViewport(); } virtual void SetFullRootLayerDamage() OVERRIDE {} - virtual CompositorFrameMetadata MakeCompositorFrameMetadata() const OVERRIDE { - return CompositorFrameMetadata(); - } protected: LayerTreeSettings settings_; diff --git a/cc/test/pixel_test.cc b/cc/test/pixel_test.cc index f798013..2153b35 100644 --- a/cc/test/pixel_test.cc +++ b/cc/test/pixel_test.cc @@ -39,10 +39,6 @@ class PixelTest::PixelTestRendererClient } virtual gfx::Rect DeviceClip() const OVERRIDE { return device_clip_; } virtual void SetFullRootLayerDamage() OVERRIDE {} - virtual CompositorFrameMetadata MakeCompositorFrameMetadata() const - OVERRIDE { - return CompositorFrameMetadata(); - } // OutputSurfaceClient implementation. virtual bool DeferredInitialize( diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc index 2faac42..060b25c 100644 --- a/cc/trees/layer_tree_host_impl.cc +++ b/cc/trees/layer_tree_host_impl.cc @@ -1424,7 +1424,8 @@ bool LayerTreeHostImpl::SwapBuffers(const LayerTreeHostImpl::FrameData& frame) { active_tree()->BreakSwapPromises(SwapPromise::SWAP_FAILS); return false; } - renderer_->SwapBuffers(); + CompositorFrameMetadata metadata = MakeCompositorFrameMetadata(); + renderer_->SwapBuffers(metadata); active_tree_->ClearLatencyInfo(); active_tree()->FinishSwapPromises(); return true; diff --git a/cc/trees/layer_tree_host_impl.h b/cc/trees/layer_tree_host_impl.h index 9ee107e47..4e2027e 100644 --- a/cc/trees/layer_tree_host_impl.h +++ b/cc/trees/layer_tree_host_impl.h @@ -213,7 +213,6 @@ class CC_EXPORT LayerTreeHostImpl virtual gfx::Rect DeviceViewport() const OVERRIDE; virtual gfx::Rect DeviceClip() const OVERRIDE; virtual void SetFullRootLayerDamage() OVERRIDE; - virtual CompositorFrameMetadata MakeCompositorFrameMetadata() const OVERRIDE; // TileManagerClient implementation. virtual void NotifyReadyToActivate() OVERRIDE; @@ -414,6 +413,8 @@ class CC_EXPORT LayerTreeHostImpl void ScheduleMicroBenchmark(scoped_ptr<MicroBenchmarkImpl> benchmark); + CompositorFrameMetadata MakeCompositorFrameMetadata() const; + protected: LayerTreeHostImpl( const LayerTreeSettings& settings, |