Index: cc/output/gl_renderer_unittest.cc |
diff --git a/cc/output/gl_renderer_unittest.cc b/cc/output/gl_renderer_unittest.cc |
index a72f2dc4d49aa7774df4f75dc0a19e2220e6023b..51377a355f18f4fa8da08e4928c1930a17ba34b5 100644 |
--- a/cc/output/gl_renderer_unittest.cc |
+++ b/cc/output/gl_renderer_unittest.cc |
@@ -64,6 +64,16 @@ class GLRendererTest : public testing::Test { |
RenderPass* root_render_pass() { |
return render_passes_in_draw_order_.back().get(); |
} |
+ void DrawFrame(Renderer* renderer, const gfx::Rect& viewport_rect) { |
+ renderer->DrawFrame(&render_passes_in_draw_order_, 1.f, gfx::ColorSpace(), |
+ viewport_rect, viewport_rect, false); |
+ } |
+ void DrawFrame(Renderer* renderer, |
+ const gfx::Rect& viewport_rect, |
+ const gfx::Rect& clip_rect) { |
+ renderer->DrawFrame(&render_passes_in_draw_order_, 1.f, gfx::ColorSpace(), |
+ viewport_rect, clip_rect, false); |
+ } |
RenderPassList render_passes_in_draw_order_; |
}; |
@@ -540,11 +550,7 @@ TEST_F(GLRendererWithDefaultHarnessTest, |
gfx::Transform()); |
renderer_->SetVisible(true); |
- renderer_->DrawFrame(&render_passes_in_draw_order_, |
- 1.f, |
- viewport_rect, |
- viewport_rect, |
- false); |
+ DrawFrame(renderer_.get(), viewport_rect); |
EXPECT_FALSE(renderer_->IsBackbufferDiscarded()); |
SwapBuffers(); |
@@ -562,11 +568,7 @@ TEST_F(GLRendererWithDefaultHarnessTest, ExternalStencil) { |
viewport_rect, gfx::Transform()); |
root_pass->has_transparent_background = false; |
- renderer_->DrawFrame(&render_passes_in_draw_order_, |
- 1.f, |
- viewport_rect, |
- viewport_rect, |
- false); |
+ DrawFrame(renderer_.get(), viewport_rect); |
EXPECT_TRUE(renderer_->stencil_enabled()); |
} |
@@ -773,11 +775,7 @@ TEST_F(GLRendererTest, OpaqueBackground) { |
#else |
EXPECT_CALL(*context, clear(_)).Times(1); |
#endif |
- renderer.DrawFrame(&render_passes_in_draw_order_, |
- 1.f, |
- viewport_rect, |
- viewport_rect, |
- false); |
+ DrawFrame(&renderer, viewport_rect); |
Mock::VerifyAndClearExpectations(context); |
} |
@@ -811,11 +809,7 @@ TEST_F(GLRendererTest, TransparentBackground) { |
EXPECT_CALL(*context, discardFramebufferEXT(GL_FRAMEBUFFER, 1, _)).Times(1); |
EXPECT_CALL(*context, clear(_)).Times(1); |
- renderer.DrawFrame(&render_passes_in_draw_order_, |
- 1.f, |
- viewport_rect, |
- viewport_rect, |
- false); |
+ DrawFrame(&renderer, viewport_rect); |
Mock::VerifyAndClearExpectations(context); |
} |
@@ -852,11 +846,7 @@ TEST_F(GLRendererTest, OffscreenOutputSurface) { |
.With(Args<2, 1>(ElementsAre(GL_COLOR_ATTACHMENT0))) |
.Times(1); |
EXPECT_CALL(*context, clear(_)).Times(AnyNumber()); |
- renderer.DrawFrame(&render_passes_in_draw_order_, |
- 1.f, |
- viewport_rect, |
- viewport_rect, |
- false); |
+ DrawFrame(&renderer, viewport_rect); |
Mock::VerifyAndClearExpectations(context); |
} |
@@ -953,11 +943,7 @@ TEST_F(GLRendererTest, ActiveTextureState) { |
} |
gfx::Rect viewport_rect(100, 100); |
- renderer.DrawFrame(&render_passes_in_draw_order_, |
- 1.f, |
- viewport_rect, |
- viewport_rect, |
- false); |
+ DrawFrame(&renderer, viewport_rect); |
Mock::VerifyAndClearExpectations(context); |
} |
@@ -1030,11 +1016,7 @@ TEST_F(GLRendererTest, ShouldClearRootRenderPass) { |
first_render_pass); |
renderer.DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_); |
- renderer.DrawFrame(&render_passes_in_draw_order_, |
- 1.f, |
- viewport_rect, |
- viewport_rect, |
- false); |
+ DrawFrame(&renderer, viewport_rect); |
// In multiple render passes all but the root pass should clear the |
// framebuffer. |
@@ -1110,11 +1092,7 @@ TEST_F(GLRendererTest, ScissorTestWhenClearing) { |
AddRenderPassQuad(child_pass, grand_child_pass); |
renderer.DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_); |
- renderer.DrawFrame(&render_passes_in_draw_order_, |
- 1.f, |
- viewport_rect, |
- viewport_rect, |
- false); |
+ DrawFrame(&renderer, viewport_rect); |
} |
class DiscardCheckingContext : public TestWebGraphicsContext3D { |
@@ -1148,6 +1126,7 @@ class NonReshapableOutputSurface : public FakeOutputSurface { |
} |
void Reshape(const gfx::Size& size, |
float scale_factor, |
+ const gfx::ColorSpace& color_space, |
bool has_alpha) override {} |
void set_fixed_size(const gfx::Size& size) { surface_size_ = size; } |
}; |
@@ -1191,11 +1170,7 @@ TEST_F(GLRendererTest, NoDiscardOnPartialUpdates) { |
root_pass->damage_rect = gfx::Rect(2, 2, 3, 3); |
renderer.DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_); |
- renderer.DrawFrame(&render_passes_in_draw_order_, |
- 1.f, |
- viewport_rect, |
- clip_rect, |
- false); |
+ DrawFrame(&renderer, viewport_rect, clip_rect); |
EXPECT_EQ(0, context->discarded()); |
context->reset(); |
} |
@@ -1209,11 +1184,7 @@ TEST_F(GLRendererTest, NoDiscardOnPartialUpdates) { |
root_pass->damage_rect = root_pass->output_rect; |
renderer.DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_); |
- renderer.DrawFrame(&render_passes_in_draw_order_, |
- 1.f, |
- viewport_rect, |
- clip_rect, |
- false); |
+ DrawFrame(&renderer, viewport_rect, clip_rect); |
EXPECT_EQ(1, context->discarded()); |
context->reset(); |
} |
@@ -1229,11 +1200,7 @@ TEST_F(GLRendererTest, NoDiscardOnPartialUpdates) { |
root_pass->has_transparent_background = false; |
renderer.DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_); |
- renderer.DrawFrame(&render_passes_in_draw_order_, |
- 1.f, |
- viewport_rect, |
- clip_rect, |
- false); |
+ DrawFrame(&renderer, viewport_rect, clip_rect); |
EXPECT_EQ(0, context->discarded()); |
context->reset(); |
output_surface->set_has_external_stencil_test(false); |
@@ -1249,11 +1216,7 @@ TEST_F(GLRendererTest, NoDiscardOnPartialUpdates) { |
root_pass->damage_rect = root_pass->output_rect; |
renderer.DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_); |
- renderer.DrawFrame(&render_passes_in_draw_order_, |
- 1.f, |
- viewport_rect, |
- clip_rect, |
- false); |
+ DrawFrame(&renderer, viewport_rect, clip_rect); |
EXPECT_EQ(0, context->discarded()); |
context->reset(); |
} |
@@ -1268,11 +1231,7 @@ TEST_F(GLRendererTest, NoDiscardOnPartialUpdates) { |
root_pass->damage_rect = root_pass->output_rect; |
renderer.DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_); |
- renderer.DrawFrame(&render_passes_in_draw_order_, |
- 1.f, |
- viewport_rect, |
- clip_rect, |
- false); |
+ DrawFrame(&renderer, viewport_rect, clip_rect); |
EXPECT_EQ(0, context->discarded()); |
context->reset(); |
} |
@@ -1288,11 +1247,7 @@ TEST_F(GLRendererTest, NoDiscardOnPartialUpdates) { |
root_pass->damage_rect = root_pass->output_rect; |
renderer.DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_); |
- renderer.DrawFrame(&render_passes_in_draw_order_, |
- 1.f, |
- viewport_rect, |
- clip_rect, |
- false); |
+ DrawFrame(&renderer, viewport_rect, clip_rect); |
EXPECT_EQ(0, context->discarded()); |
context->reset(); |
} |
@@ -1348,11 +1303,7 @@ TEST_F(GLRendererTest, ScissorAndViewportWithinNonreshapableSurface) { |
AddClippedQuad(root_pass, quad_rect, SK_ColorGREEN); |
renderer.DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_); |
- renderer.DrawFrame(&render_passes_in_draw_order_, |
- 1.f, |
- device_viewport_rect, |
- device_viewport_rect, |
- false); |
+ DrawFrame(&renderer, device_viewport_rect); |
} |
TEST_F(GLRendererTest, DrawFramePreservesFramebuffer) { |
@@ -1395,8 +1346,7 @@ TEST_F(GLRendererTest, DrawFramePreservesFramebuffer) { |
output_surface->set_framebuffer(fbo, GL_RGB); |
renderer.DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_); |
- renderer.DrawFrame(&render_passes_in_draw_order_, 1.f, device_viewport_rect, |
- device_viewport_rect, false); |
+ DrawFrame(&renderer, device_viewport_rect); |
int bound_fbo; |
gl->GetIntegerv(GL_FRAMEBUFFER_BINDING, &bound_fbo); |
@@ -1467,11 +1417,7 @@ TEST_F(GLRendererShaderTest, DrawRenderPassQuadShaderPermutations) { |
renderer_->DecideRenderPassAllocationsForFrame( |
render_passes_in_draw_order_); |
- renderer_->DrawFrame(&render_passes_in_draw_order_, |
- 1.f, |
- viewport_rect, |
- viewport_rect, |
- false); |
+ DrawFrame(renderer_.get(), viewport_rect); |
TestRenderPassProgram(TEX_COORD_PRECISION_MEDIUM, blend_mode); |
// RenderPassColorMatrixProgram |
@@ -1492,11 +1438,7 @@ TEST_F(GLRendererShaderTest, DrawRenderPassQuadShaderPermutations) { |
renderer_->DecideRenderPassAllocationsForFrame( |
render_passes_in_draw_order_); |
- renderer_->DrawFrame(&render_passes_in_draw_order_, |
- 1.f, |
- viewport_rect, |
- viewport_rect, |
- false); |
+ DrawFrame(renderer_.get(), viewport_rect); |
TestRenderPassColorMatrixProgram(TEX_COORD_PRECISION_MEDIUM, blend_mode); |
// RenderPassMaskProgram |
@@ -1521,11 +1463,7 @@ TEST_F(GLRendererShaderTest, DrawRenderPassQuadShaderPermutations) { |
renderer_->DecideRenderPassAllocationsForFrame( |
render_passes_in_draw_order_); |
- renderer_->DrawFrame(&render_passes_in_draw_order_, |
- 1.f, |
- viewport_rect, |
- viewport_rect, |
- false); |
+ DrawFrame(renderer_.get(), viewport_rect); |
TestRenderPassMaskProgram(TEX_COORD_PRECISION_MEDIUM, SAMPLER_TYPE_2D, |
blend_mode); |
@@ -1547,11 +1485,7 @@ TEST_F(GLRendererShaderTest, DrawRenderPassQuadShaderPermutations) { |
renderer_->DecideRenderPassAllocationsForFrame( |
render_passes_in_draw_order_); |
- renderer_->DrawFrame(&render_passes_in_draw_order_, |
- 1.f, |
- viewport_rect, |
- viewport_rect, |
- false); |
+ DrawFrame(renderer_.get(), viewport_rect); |
TestRenderPassMaskColorMatrixProgram(TEX_COORD_PRECISION_MEDIUM, |
SAMPLER_TYPE_2D, blend_mode); |
@@ -1577,11 +1511,7 @@ TEST_F(GLRendererShaderTest, DrawRenderPassQuadShaderPermutations) { |
renderer_->DecideRenderPassAllocationsForFrame( |
render_passes_in_draw_order_); |
- renderer_->DrawFrame(&render_passes_in_draw_order_, |
- 1.f, |
- viewport_rect, |
- viewport_rect, |
- false); |
+ DrawFrame(renderer_.get(), viewport_rect); |
TestRenderPassProgramAA(TEX_COORD_PRECISION_MEDIUM, blend_mode); |
// RenderPassColorMatrixProgramAA |
@@ -1602,11 +1532,7 @@ TEST_F(GLRendererShaderTest, DrawRenderPassQuadShaderPermutations) { |
renderer_->DecideRenderPassAllocationsForFrame( |
render_passes_in_draw_order_); |
- renderer_->DrawFrame(&render_passes_in_draw_order_, |
- 1.f, |
- viewport_rect, |
- viewport_rect, |
- false); |
+ DrawFrame(renderer_.get(), viewport_rect); |
TestRenderPassColorMatrixProgramAA(TEX_COORD_PRECISION_MEDIUM, blend_mode); |
// RenderPassMaskProgramAA |
@@ -1631,11 +1557,7 @@ TEST_F(GLRendererShaderTest, DrawRenderPassQuadShaderPermutations) { |
renderer_->DecideRenderPassAllocationsForFrame( |
render_passes_in_draw_order_); |
- renderer_->DrawFrame(&render_passes_in_draw_order_, |
- 1.f, |
- viewport_rect, |
- viewport_rect, |
- false); |
+ DrawFrame(renderer_.get(), viewport_rect); |
TestRenderPassMaskProgramAA(TEX_COORD_PRECISION_MEDIUM, SAMPLER_TYPE_2D, |
blend_mode); |
@@ -1657,11 +1579,7 @@ TEST_F(GLRendererShaderTest, DrawRenderPassQuadShaderPermutations) { |
renderer_->DecideRenderPassAllocationsForFrame( |
render_passes_in_draw_order_); |
- renderer_->DrawFrame(&render_passes_in_draw_order_, |
- 1.f, |
- viewport_rect, |
- viewport_rect, |
- false); |
+ DrawFrame(renderer_.get(), viewport_rect); |
TestRenderPassMaskColorMatrixProgramAA(TEX_COORD_PRECISION_MEDIUM, |
SAMPLER_TYPE_2D, blend_mode); |
} |
@@ -1708,11 +1626,7 @@ TEST_F(GLRendererShaderTest, DrawRenderPassQuadSkipsAAForClippingTransform) { |
SkXfermode::kSrcOver_Mode); |
renderer_->DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_); |
- renderer_->DrawFrame(&render_passes_in_draw_order_, |
- 1.f, |
- viewport_rect, |
- viewport_rect, |
- false); |
+ DrawFrame(renderer_.get(), viewport_rect); |
// If use_aa incorrectly ignores clipping, it will use the |
// RenderPassProgramAA shader instead of the RenderPassProgram. |
@@ -1738,11 +1652,7 @@ TEST_F(GLRendererShaderTest, DrawSolidColorShader) { |
pixel_aligned_transform_causing_aa); |
renderer_->DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_); |
- renderer_->DrawFrame(&render_passes_in_draw_order_, |
- 1.f, |
- viewport_rect, |
- viewport_rect, |
- false); |
+ DrawFrame(renderer_.get(), viewport_rect); |
TestSolidColorProgramAA(); |
} |
@@ -1776,8 +1686,11 @@ class MockOutputSurface : public OutputSurface { |
MOCK_METHOD0(EnsureBackbuffer, void()); |
MOCK_METHOD0(DiscardBackbuffer, void()); |
- MOCK_METHOD3(Reshape, |
- void(const gfx::Size& size, float scale_factor, bool has_alpha)); |
+ MOCK_METHOD4(Reshape, |
+ void(const gfx::Size& size, |
+ float scale_factor, |
+ const gfx::ColorSpace& color_space, |
+ bool has_alpha)); |
MOCK_METHOD0(BindFramebuffer, void()); |
MOCK_METHOD0(GetFramebufferCopyTextureFormat, GLenum()); |
MOCK_METHOD1(SwapBuffers_, void(CompositorFrame& frame)); |
@@ -1815,7 +1728,7 @@ class MockOutputSurfaceTest : public GLRendererTest { |
EXPECT_CALL(output_surface_, EnsureBackbuffer()).WillRepeatedly(Return()); |
EXPECT_CALL(output_surface_, Reshape(device_viewport_rect.size(), |
- device_scale_factor, transparent)) |
+ device_scale_factor, _, transparent)) |
.Times(1); |
EXPECT_CALL(output_surface_, BindFramebuffer()).Times(1); |
@@ -1824,11 +1737,9 @@ class MockOutputSurfaceTest : public GLRendererTest { |
renderer_->DecideRenderPassAllocationsForFrame( |
render_passes_in_draw_order_); |
- renderer_->DrawFrame(&render_passes_in_draw_order_, |
- device_scale_factor, |
- device_viewport_rect, |
- device_viewport_rect, |
- false); |
+ renderer_->DrawFrame(&render_passes_in_draw_order_, device_scale_factor, |
+ gfx::ColorSpace(), device_viewport_rect, |
+ device_viewport_rect, false); |
} |
OutputSurfaceMockContext* Context() { |
@@ -1995,8 +1906,7 @@ TEST_F(GLRendererTest, DontOverlayWithCopyRequests) { |
// list because the render pass is cleaned up by DrawFrame. |
EXPECT_CALL(*processor->strategy_, Attempt(_, _, _)).Times(0); |
EXPECT_CALL(*validator, AllowCALayerOverlays()).Times(0); |
- renderer.DrawFrame(&render_passes_in_draw_order_, 1.f, viewport_rect, |
- viewport_rect, false); |
+ DrawFrame(&renderer, viewport_rect); |
Mock::VerifyAndClearExpectations(processor->strategy_); |
Mock::VerifyAndClearExpectations(validator.get()); |
@@ -2015,8 +1925,7 @@ TEST_F(GLRendererTest, DontOverlayWithCopyRequests) { |
.Times(1) |
.WillOnce(::testing::Return(false)); |
EXPECT_CALL(*processor->strategy_, Attempt(_, _, _)).Times(1); |
- renderer.DrawFrame(&render_passes_in_draw_order_, 1.f, viewport_rect, |
- viewport_rect, false); |
+ DrawFrame(&renderer, viewport_rect); |
// If the CALayerOverlay path is taken, then the ordinary overlay path should |
// not be called. |
@@ -2034,8 +1943,7 @@ TEST_F(GLRendererTest, DontOverlayWithCopyRequests) { |
.Times(1) |
.WillOnce(::testing::Return(true)); |
EXPECT_CALL(*processor->strategy_, Attempt(_, _, _)).Times(0); |
- renderer.DrawFrame(&render_passes_in_draw_order_, 1.f, viewport_rect, |
- viewport_rect, false); |
+ DrawFrame(&renderer, viewport_rect); |
} |
class SingleOverlayOnTopProcessor : public OverlayProcessor { |
@@ -2157,8 +2065,7 @@ TEST_F(GLRendererTest, OverlaySyncTokensAreProcessed) { |
Schedule(1, gfx::OVERLAY_TRANSFORM_NONE, _, viewport_rect, |
BoundingRect(uv_top_left, uv_bottom_right))).Times(1); |
- renderer.DrawFrame(&render_passes_in_draw_order_, 1.f, viewport_rect, |
- viewport_rect, false); |
+ DrawFrame(&renderer, viewport_rect); |
} |
} // namespace |