Chromium Code Reviews| Index: cc/draw_quad_unittest.cc |
| diff --git a/cc/draw_quad_unittest.cc b/cc/draw_quad_unittest.cc |
| index 0362418eea574b8a0ce32fb41cbe7577ab34cfcf..d6e8e92e8e8a4828b067d84c5db29d26d26f7cbe 100644 |
| --- a/cc/draw_quad_unittest.cc |
| +++ b/cc/draw_quad_unittest.cc |
| @@ -362,29 +362,96 @@ TEST(DrawQuadTest, copyTextureDrawQuad) |
| gfx::Rect opaqueRect(3, 7, 10, 12); |
| unsigned resourceId = 82; |
| bool premultipliedAlpha = true; |
| - gfx::RectF uvRect(0.5f, 224.f, 51.f, 36.f); |
| + gfx::PointF uvTopLeft(0.5f, 224.f); |
| + gfx::PointF uvBottomRight(51.5f, 260.f); |
| const float vertex_opacity[] = {1.0f, 1.0f, 1.0f, 1.0f}; |
| bool flipped = true; |
| CREATE_SHARED_STATE(); |
| - CREATE_QUAD_6_NEW(TextureDrawQuad, opaqueRect, resourceId, premultipliedAlpha, uvRect, vertex_opacity, flipped); |
| + CREATE_QUAD_7_NEW(TextureDrawQuad, opaqueRect, resourceId, premultipliedAlpha, uvTopLeft, uvBottomRight, vertex_opacity, flipped); |
| EXPECT_EQ(DrawQuad::TEXTURE_CONTENT, copyQuad->material); |
| EXPECT_RECT_EQ(opaqueRect, copyQuad->opaque_rect); |
| EXPECT_EQ(resourceId, copyQuad->resource_id); |
| EXPECT_EQ(premultipliedAlpha, copyQuad->premultiplied_alpha); |
| - EXPECT_FLOAT_RECT_EQ(uvRect, copyQuad->uv_rect); |
| + EXPECT_EQ(uvTopLeft, copyQuad->uv_top_left); |
| + EXPECT_EQ(uvBottomRight, copyQuad->uv_bottom_right); |
| EXPECT_FLOAT_ARRAY_EQ(vertex_opacity, copyQuad->vertex_opacity, 4); |
| EXPECT_EQ(flipped, copyQuad->flipped); |
| - CREATE_QUAD_5_ALL(TextureDrawQuad, resourceId, premultipliedAlpha, uvRect, vertex_opacity, flipped); |
| + CREATE_QUAD_6_ALL(TextureDrawQuad, resourceId, premultipliedAlpha, uvTopLeft, uvBottomRight, vertex_opacity, flipped); |
| EXPECT_EQ(DrawQuad::TEXTURE_CONTENT, copyQuad->material); |
| EXPECT_EQ(resourceId, copyQuad->resource_id); |
| EXPECT_EQ(premultipliedAlpha, copyQuad->premultiplied_alpha); |
| - EXPECT_FLOAT_RECT_EQ(uvRect, copyQuad->uv_rect); |
| + EXPECT_EQ(uvTopLeft, copyQuad->uv_top_left); |
| + EXPECT_EQ(uvBottomRight, copyQuad->uv_bottom_right); |
| EXPECT_FLOAT_ARRAY_EQ(vertex_opacity, copyQuad->vertex_opacity, 4); |
| EXPECT_EQ(flipped, copyQuad->flipped); |
| } |
| +TEST(DrawQuadTest, clipTextureDrawQuad) |
| +{ |
| + gfx::Rect opaqueRect(3, 7, 10, 12); |
| + unsigned resourceId = 82; |
| + bool premultipliedAlpha = true; |
| + bool flipped = true; |
| + CREATE_SHARED_STATE(); |
| + // Original quad is at (30, 40) size 50*60 |
|
danakj
2013/01/15 22:39:09
nit: comments are complete sentences including per
Jerome
2013/01/15 23:14:35
Done.
|
| + sharedState->content_to_target_transform = MathUtil::createGfxTransform(1.f, 0.f, 0.f, 1.f, 10.f, 20.f); |
| + // after transform the quad is at (40, 60) size 50*60 |
|
danakj
2013/01/15 22:39:09
nit: same thing
Jerome
2013/01/15 23:14:35
Done.
|
| + sharedState->clip_rect = gfx::Rect(50, 70, 30, 20); |
| + |
| + //40 50 90 |
| + // B--:-------C 60 |
| + // | b----c -|-70 |
| + // | | | | |
| + // | a----d -|-90 |
| + // | | |
| + // A----------D 120 |
| + // UV and vertex opacity are stored per vertex on the parent rectangle 'ABCD'. |
| + // The value on the clipped rectangle 'abcd' are interpolated to keep visual appearance. |
| + |
| + // UV value for 'B' vertex |
|
danakj
2013/01/15 22:39:09
nit: complete sentences for all these please.
Jerome
2013/01/15 23:14:35
Done.
|
| + gfx::PointF uvTopLeft(0.1f, 0.2f); |
| + // UV value for 'D' vertex |
| + gfx::PointF uvBottomRight(0.9f, 0.8f); |
| + // Vertex opacity for 'ABCD' |
| + const float vertexOpacity[] = {0.3f, 0.4f, 0.7f, 0.8f}; |
| + |
| + { |
| + CREATE_QUAD_7_NEW(TextureDrawQuad, opaqueRect, resourceId, premultipliedAlpha, uvTopLeft, uvBottomRight, vertexOpacity, flipped); |
| + CREATE_QUAD_6_ALL(TextureDrawQuad, resourceId, premultipliedAlpha, uvTopLeft, uvBottomRight, vertexOpacity, flipped); |
| + EXPECT_TRUE(quadAll->PerformClipping()); |
| + |
| + // UV value for vertex 'b' |
| + gfx::PointF uvTopLeftClipped(0.26f, 0.3f); |
|
danakj
2013/01/15 22:39:09
I was thinking more about describing these expecte
Jerome
2013/01/15 23:14:35
Done.
|
| + // UV value for vertex 'd' |
| + gfx::PointF uvBottomRightClipped(0.74f, 0.5f); |
| + // Vertex opacity for 'abcd' |
| + const float vertexOpacityClipped[] = {0.43f, 0.45f, 0.65f, 0.67f}; |
| + |
| + EXPECT_EQ(uvTopLeftClipped, quadAll->uv_top_left); |
| + EXPECT_EQ(uvBottomRightClipped, quadAll->uv_bottom_right); |
| + EXPECT_FLOAT_ARRAY_EQ(vertexOpacityClipped, quadAll->vertex_opacity, 4); |
| + } |
| + |
| + uvTopLeft = gfx::PointF(0.8f, 0.7f); |
| + uvBottomRight = gfx::PointF(0.2f, 0.1f); |
| + |
| + { |
| + CREATE_QUAD_7_NEW(TextureDrawQuad, opaqueRect, resourceId, premultipliedAlpha, uvTopLeft, uvBottomRight, vertexOpacity, flipped); |
| + CREATE_QUAD_6_ALL(TextureDrawQuad, resourceId, premultipliedAlpha, uvTopLeft, uvBottomRight, vertexOpacity, flipped); |
| + EXPECT_TRUE(quadAll->PerformClipping()); |
| + |
| + // UV value for vertex 'b' |
| + gfx::PointF uvTopLeftClipped(0.68f, 0.6f); |
| + // UV value for vertex 'd' |
| + gfx::PointF uvBottomRightClipped(0.32f, 0.4f); |
| + |
| + EXPECT_EQ(uvTopLeftClipped, quadAll->uv_top_left); |
| + EXPECT_EQ(uvBottomRightClipped, quadAll->uv_bottom_right); |
| + } |
| +} |
| + |
| TEST(DrawQuadTest, copyTileDrawQuad) |
| { |
| gfx::Rect opaqueRect(33, 44, 22, 33); |