Chromium Code Reviews| Index: cc/output/software_renderer_unittest.cc |
| diff --git a/cc/output/software_renderer_unittest.cc b/cc/output/software_renderer_unittest.cc |
| index 74eef53d77f78647909f5e5b6e779e2a0c57d286..ba41a307dd0de1549d1959c4a8124a40891b4ca9 100644 |
| --- a/cc/output/software_renderer_unittest.cc |
| +++ b/cc/output/software_renderer_unittest.cc |
| @@ -82,9 +82,7 @@ class SoftwareRendererTest : public testing::Test, public RendererClient { |
| TEST_F(SoftwareRendererTest, SolidColorQuad) { |
| gfx::Size outer_size(100, 100); |
| -#if !defined(OS_ANDROID) |
| int outer_pixels = outer_size.width() * outer_size.height(); |
| -#endif |
| gfx::Size inner_size(98, 98); |
| gfx::Rect outer_rect(outer_size); |
| gfx::Rect inner_rect(gfx::Point(1, 1), inner_size); |
| @@ -111,20 +109,15 @@ TEST_F(SoftwareRendererTest, SolidColorQuad) { |
| list.push_back(root_render_pass.PassAs<RenderPass>()); |
| renderer()->DrawFrame(&list); |
| - scoped_ptr<SkColor[]> pixels(new SkColor[DeviceViewportSize().width() * |
| + scoped_ptr<SkPMColor[]> pixels(new SkPMColor[DeviceViewportSize().width() * |
| DeviceViewportSize().height()]); |
| renderer()->GetFramebufferPixels(pixels.get(), outer_rect); |
| -// FIXME: This fails on Android. Endianness maybe? |
| -// Yellow: expects 0xFFFFFF00, was 0xFF00FFFF on android. |
| -// Cyan: expects 0xFF00FFFF, was 0xFFFFFF00 on android. |
| -// http://crbug.com/154528 |
| -#if !defined(OS_ANDROID) |
| - EXPECT_EQ(SK_ColorYELLOW, pixels[0]); |
| - EXPECT_EQ(SK_ColorYELLOW, pixels[outer_pixels - 1]); |
| - EXPECT_EQ(SK_ColorCYAN, pixels[outer_size.width() + 1]); |
| - EXPECT_EQ(SK_ColorCYAN, pixels[outer_pixels - outer_size.width() - 2]); |
| -#endif |
| + EXPECT_EQ(SkPreMultiplyColor(SK_ColorYELLOW), pixels[0]); |
| + EXPECT_EQ(SkPreMultiplyColor(SK_ColorYELLOW), pixels[outer_pixels - 1]); |
| + EXPECT_EQ(SkPreMultiplyColor(SK_ColorCYAN), pixels[outer_size.width() + 1]); |
| + EXPECT_EQ(SkPreMultiplyColor(SK_ColorCYAN), |
| + pixels[outer_pixels - outer_size.width() - 2]); |
| } |
| TEST_F(SoftwareRendererTest, TileQuad) { |
| @@ -144,10 +137,10 @@ TEST_F(SoftwareRendererTest, TileQuad) { |
| resource_provider()->CreateResource( |
| inner_size, GL_RGBA, ResourceProvider::TextureUsageAny); |
| - SkColor yellow = SK_ColorYELLOW; |
| - SkColor cyan = SK_ColorCYAN; |
| - scoped_ptr<SkColor[]> yellow_pixels(new SkColor[outer_pixels]); |
| - scoped_ptr<SkColor[]> cyan_pixels(new SkColor[inner_pixels]); |
| + SkPMColor yellow = SkPreMultiplyColor(SK_ColorYELLOW); |
|
danakj
2013/05/08 17:38:43
So I get that the readback is going to premultipli
|
| + SkPMColor cyan = SkPreMultiplyColor(SK_ColorCYAN); |
| + scoped_ptr<SkPMColor[]> yellow_pixels(new SkPMColor[outer_pixels]); |
| + scoped_ptr<SkPMColor[]> cyan_pixels(new SkPMColor[inner_pixels]); |
| for (int i = 0; i < outer_pixels; i++) |
| yellow_pixels[i] = yellow; |
| for (int i = 0; i < inner_pixels; i++) |
| @@ -197,14 +190,15 @@ TEST_F(SoftwareRendererTest, TileQuad) { |
| list.push_back(root_render_pass.PassAs<RenderPass>()); |
| renderer()->DrawFrame(&list); |
| - scoped_ptr<SkColor[]> pixels(new SkColor[DeviceViewportSize().width() * |
| + scoped_ptr<SkPMColor[]> pixels(new SkPMColor[DeviceViewportSize().width() * |
| DeviceViewportSize().height()]); |
| renderer()->GetFramebufferPixels(pixels.get(), outer_rect); |
| - EXPECT_EQ(SK_ColorYELLOW, pixels[0]); |
| - EXPECT_EQ(SK_ColorYELLOW, pixels[outer_pixels - 1]); |
| - EXPECT_EQ(SK_ColorCYAN, pixels[outer_size.width() + 1]); |
| - EXPECT_EQ(SK_ColorCYAN, pixels[outer_pixels - outer_size.width() - 2]); |
| + EXPECT_EQ(SkPreMultiplyColor(SK_ColorYELLOW), pixels[0]); |
| + EXPECT_EQ(SkPreMultiplyColor(SK_ColorYELLOW), pixels[outer_pixels - 1]); |
| + EXPECT_EQ(SkPreMultiplyColor(SK_ColorCYAN), pixels[outer_size.width() + 1]); |
| + EXPECT_EQ(SkPreMultiplyColor(SK_ColorCYAN), |
| + pixels[outer_pixels - outer_size.width() - 2]); |
| } |
| TEST_F(SoftwareRendererTest, ShouldClearRootRenderPass) { |
| @@ -215,7 +209,7 @@ TEST_F(SoftwareRendererTest, ShouldClearRootRenderPass) { |
| InitializeRenderer(); |
| RenderPassList list; |
| - scoped_ptr<SkColor[]> pixels(new SkColor[viewport_pixels]); |
| + scoped_ptr<SkPMColor[]> pixels(new SkPMColor[viewport_pixels]); |
| // Draw a fullscreen green quad in a first frame. |
| RenderPass::Id root_clear_pass_id(1, 0); |
| @@ -227,8 +221,8 @@ TEST_F(SoftwareRendererTest, ShouldClearRootRenderPass) { |
| renderer()->DrawFrame(&list); |
| renderer()->GetFramebufferPixels(pixels.get(), viewport_rect); |
| - EXPECT_EQ(SK_ColorGREEN, pixels[0]); |
| - EXPECT_EQ(SK_ColorGREEN, pixels[viewport_pixels - 1]); |
| + EXPECT_EQ(SkPreMultiplyColor(SK_ColorGREEN), pixels[0]); |
| + EXPECT_EQ(SkPreMultiplyColor(SK_ColorGREEN), pixels[viewport_pixels - 1]); |
| list.clear(); |
| @@ -246,13 +240,13 @@ TEST_F(SoftwareRendererTest, ShouldClearRootRenderPass) { |
| renderer()->GetFramebufferPixels(pixels.get(), viewport_rect); |
| // If we didn't clear, the borders should still be green. |
| - EXPECT_EQ(SK_ColorGREEN, pixels[0]); |
| - EXPECT_EQ(SK_ColorGREEN, pixels[viewport_pixels - 1]); |
| + EXPECT_EQ(SkPreMultiplyColor(SK_ColorGREEN), pixels[0]); |
| + EXPECT_EQ(SkPreMultiplyColor(SK_ColorGREEN), pixels[viewport_pixels - 1]); |
| EXPECT_EQ( |
| - SK_ColorMAGENTA, |
| + SkPreMultiplyColor(SK_ColorMAGENTA), |
| pixels[smaller_rect.y() * viewport_rect.width() + smaller_rect.x()]); |
| - EXPECT_EQ(SK_ColorMAGENTA, |
| + EXPECT_EQ(SkPreMultiplyColor(SK_ColorMAGENTA), |
| pixels[(smaller_rect.bottom() - 1) * viewport_rect.width() + |
| smaller_rect.right() - 1]); |
| } |