summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cc/output/delegating_renderer.cc18
-rw-r--r--cc/output/delegating_renderer.h4
-rw-r--r--cc/output/gl_renderer.cc4
-rw-r--r--cc/output/gl_renderer.h2
-rw-r--r--cc/output/gl_renderer_unittest.cc17
-rw-r--r--cc/output/renderer.h3
-rw-r--r--cc/output/software_renderer.cc4
-rw-r--r--cc/output/software_renderer.h2
-rw-r--r--cc/output/software_renderer_unittest.cc3
-rw-r--r--cc/test/pixel_test.cc4
-rw-r--r--cc/trees/layer_tree_host_impl.cc3
-rw-r--r--cc/trees/layer_tree_host_impl.h3
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,