Index: cc/output/renderer_pixeltest.cc |
diff --git a/cc/output/renderer_pixeltest.cc b/cc/output/renderer_pixeltest.cc |
index 743e1cfe59680e2a05d92d6371246879f9d4233c..bbdfe2105708e7209d6a41d52d699ee2ba7799ad 100644 |
--- a/cc/output/renderer_pixeltest.cc |
+++ b/cc/output/renderer_pixeltest.cc |
@@ -2493,6 +2493,74 @@ TYPED_TEST(RendererPixelTest, WrapModeRepeat) { |
FuzzyPixelOffByOneComparator(true))); |
} |
+TYPED_TEST(RendererPixelTest, Checkerboards) { |
+ gfx::Rect rect(this->device_viewport_size_); |
+ |
+ RenderPassId id(1, 1); |
+ scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect); |
+ |
+ gfx::Transform scale; |
+ scale.Scale(2.f, 2.f); |
+ |
+ SharedQuadState* shared_state = |
+ CreateTestSharedQuadState(scale, rect, pass.get()); |
+ |
+ // The color's alpha value is not used. |
+ SkColor color = SK_ColorGREEN; |
+ color = SkColorSetA(color, 0); |
+ |
+ CheckerboardDrawQuad* quad = |
+ pass->CreateAndAppendDrawQuad<CheckerboardDrawQuad>(); |
+ // Appends a checkerboard quad with a scale of 1, but a shared quad state |
+ // with a scale of 2. The checkers should be scaled by 1 * 2 = 2. |
+ quad->SetNew(shared_state, gfx::Rect(this->device_viewport_size_), |
+ gfx::Rect(this->device_viewport_size_), color, 1.f); |
+ |
+ RenderPassList pass_list; |
+ pass_list.push_back(pass.Pass()); |
+ |
+ const char* path = |
+ IsSoftwareRenderer<TypeParam>() ? "green.png" : "green_checkers.png"; |
+ |
+ EXPECT_TRUE(this->RunPixelTest(&pass_list, |
+ base::FilePath(FILE_PATH_LITERAL(path)), |
+ ExactPixelComparator(true))); |
+} |
+ |
+TYPED_TEST(RendererPixelTest, CheckerboardsScaled) { |
+ gfx::Rect rect(this->device_viewport_size_); |
+ |
+ RenderPassId id(1, 1); |
+ scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect); |
+ |
+ gfx::Transform scale; |
+ scale.Scale(2.f, 2.f); |
+ |
+ SharedQuadState* shared_state = |
+ CreateTestSharedQuadState(scale, rect, pass.get()); |
+ |
+ // The color's alpha value is not used. |
+ SkColor color = SK_ColorGREEN; |
+ color = SkColorSetA(color, 0); |
+ |
+ CheckerboardDrawQuad* quad = |
+ pass->CreateAndAppendDrawQuad<CheckerboardDrawQuad>(); |
+ // Appends a checkerboard quad with a scale of 2, and a shared quad state |
+ // with a scale of 2. The checkers should be scaled by 2 * 2 = 4. |
+ quad->SetNew(shared_state, gfx::Rect(this->device_viewport_size_), |
+ gfx::Rect(this->device_viewport_size_), color, 2.f); |
+ |
+ RenderPassList pass_list; |
+ pass_list.push_back(pass.Pass()); |
+ |
+ const char* path = |
+ IsSoftwareRenderer<TypeParam>() ? "green.png" : "green_checkers_big.png"; |
+ |
+ EXPECT_TRUE(this->RunPixelTest(&pass_list, |
+ base::FilePath(FILE_PATH_LITERAL(path)), |
+ ExactPixelComparator(true))); |
+} |
+ |
#endif // !defined(OS_ANDROID) |
} // namespace |