summaryrefslogtreecommitdiffstats
path: root/cc/output
diff options
context:
space:
mode:
authormiletus@chromium.org <miletus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-11-27 02:06:33 +0000
committermiletus@chromium.org <miletus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-11-27 02:06:33 +0000
commit4a28a61c167465d3f0e388c5f11bbbe5aa625553 (patch)
treee798022a8481587aea1c10d4ed19ed107e136108 /cc/output
parent9b1941d8a2768a3423307cf3aa21d3ae4fded4d0 (diff)
downloadchromium_src-4a28a61c167465d3f0e388c5f11bbbe5aa625553.zip
chromium_src-4a28a61c167465d3f0e388c5f11bbbe5aa625553.tar.gz
chromium_src-4a28a61c167465d3f0e388c5f11bbbe5aa625553.tar.bz2
Pass CompositorFrameMetadata as parameter into Renderer::SwapBuffers()
Instead of letting renderer pull CompositorFrameMetadata from RendererClient::MakeCompositorFrameMetadata in Renderer::SwapBuffers(), this Cl makes that LayerTreeHostImpl pushes CompositorFrameMetadata into renderer through Renderer::SwapBuffers(const CompositorFrameMetadata& metadata); BUG=246034 Test=cc_unittests pass. Review URL: https://codereview.chromium.org/89203002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@237483 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/output')
-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
9 files changed, 24 insertions, 33 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_;