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]); |
} |