OLD | NEW |
---|---|
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "cc/draw_quad.h" | 5 #include "cc/draw_quad.h" |
6 | 6 |
7 #include "cc/checkerboard_draw_quad.h" | 7 #include "cc/checkerboard_draw_quad.h" |
8 #include "cc/debug_border_draw_quad.h" | 8 #include "cc/debug_border_draw_quad.h" |
9 #include "cc/io_surface_draw_quad.h" | 9 #include "cc/io_surface_draw_quad.h" |
10 #include "cc/math_util.h" | 10 #include "cc/math_util.h" |
(...skipping 344 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
355 EXPECT_EQ(DrawQuad::STREAM_VIDEO_CONTENT, copyQuad->material); | 355 EXPECT_EQ(DrawQuad::STREAM_VIDEO_CONTENT, copyQuad->material); |
356 EXPECT_EQ(textureId, copyQuad->texture_id); | 356 EXPECT_EQ(textureId, copyQuad->texture_id); |
357 EXPECT_EQ(matrix, copyQuad->matrix); | 357 EXPECT_EQ(matrix, copyQuad->matrix); |
358 } | 358 } |
359 | 359 |
360 TEST(DrawQuadTest, copyTextureDrawQuad) | 360 TEST(DrawQuadTest, copyTextureDrawQuad) |
361 { | 361 { |
362 gfx::Rect opaqueRect(3, 7, 10, 12); | 362 gfx::Rect opaqueRect(3, 7, 10, 12); |
363 unsigned resourceId = 82; | 363 unsigned resourceId = 82; |
364 bool premultipliedAlpha = true; | 364 bool premultipliedAlpha = true; |
365 gfx::RectF uvRect(0.5f, 224.f, 51.f, 36.f); | 365 gfx::PointF uvTopLeft(0.5f, 224.f); |
366 gfx::PointF uvBottomRight(51.5f, 260.f); | |
366 const float vertex_opacity[] = {1.0f, 1.0f, 1.0f, 1.0f}; | 367 const float vertex_opacity[] = {1.0f, 1.0f, 1.0f, 1.0f}; |
367 bool flipped = true; | 368 bool flipped = true; |
368 CREATE_SHARED_STATE(); | 369 CREATE_SHARED_STATE(); |
369 | 370 |
370 CREATE_QUAD_6_NEW(TextureDrawQuad, opaqueRect, resourceId, premultipliedAlph a, uvRect, vertex_opacity, flipped); | 371 CREATE_QUAD_7_NEW(TextureDrawQuad, opaqueRect, resourceId, premultipliedAlph a, uvTopLeft, uvBottomRight, vertex_opacity, flipped); |
371 EXPECT_EQ(DrawQuad::TEXTURE_CONTENT, copyQuad->material); | 372 EXPECT_EQ(DrawQuad::TEXTURE_CONTENT, copyQuad->material); |
372 EXPECT_RECT_EQ(opaqueRect, copyQuad->opaque_rect); | 373 EXPECT_RECT_EQ(opaqueRect, copyQuad->opaque_rect); |
373 EXPECT_EQ(resourceId, copyQuad->resource_id); | 374 EXPECT_EQ(resourceId, copyQuad->resource_id); |
374 EXPECT_EQ(premultipliedAlpha, copyQuad->premultiplied_alpha); | 375 EXPECT_EQ(premultipliedAlpha, copyQuad->premultiplied_alpha); |
375 EXPECT_FLOAT_RECT_EQ(uvRect, copyQuad->uv_rect); | 376 EXPECT_EQ(uvTopLeft, copyQuad->uv_top_left); |
377 EXPECT_EQ(uvBottomRight, copyQuad->uv_bottom_right); | |
376 EXPECT_FLOAT_ARRAY_EQ(vertex_opacity, copyQuad->vertex_opacity, 4); | 378 EXPECT_FLOAT_ARRAY_EQ(vertex_opacity, copyQuad->vertex_opacity, 4); |
377 EXPECT_EQ(flipped, copyQuad->flipped); | 379 EXPECT_EQ(flipped, copyQuad->flipped); |
378 | 380 |
379 CREATE_QUAD_5_ALL(TextureDrawQuad, resourceId, premultipliedAlpha, uvRect, v ertex_opacity, flipped); | 381 CREATE_QUAD_6_ALL(TextureDrawQuad, resourceId, premultipliedAlpha, uvTopLeft , uvBottomRight, vertex_opacity, flipped); |
380 EXPECT_EQ(DrawQuad::TEXTURE_CONTENT, copyQuad->material); | 382 EXPECT_EQ(DrawQuad::TEXTURE_CONTENT, copyQuad->material); |
381 EXPECT_EQ(resourceId, copyQuad->resource_id); | 383 EXPECT_EQ(resourceId, copyQuad->resource_id); |
382 EXPECT_EQ(premultipliedAlpha, copyQuad->premultiplied_alpha); | 384 EXPECT_EQ(premultipliedAlpha, copyQuad->premultiplied_alpha); |
383 EXPECT_FLOAT_RECT_EQ(uvRect, copyQuad->uv_rect); | 385 EXPECT_EQ(uvTopLeft, copyQuad->uv_top_left); |
386 EXPECT_EQ(uvBottomRight, copyQuad->uv_bottom_right); | |
384 EXPECT_FLOAT_ARRAY_EQ(vertex_opacity, copyQuad->vertex_opacity, 4); | 387 EXPECT_FLOAT_ARRAY_EQ(vertex_opacity, copyQuad->vertex_opacity, 4); |
385 EXPECT_EQ(flipped, copyQuad->flipped); | 388 EXPECT_EQ(flipped, copyQuad->flipped); |
386 } | 389 } |
387 | 390 |
391 TEST(DrawQuadTest, clipTextureDrawQuad) | |
392 { | |
393 gfx::Rect opaqueRect(3, 7, 10, 12); | |
394 unsigned resourceId = 82; | |
395 bool premultipliedAlpha = true; | |
396 bool flipped = true; | |
397 CREATE_SHARED_STATE(); | |
398 // 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.
| |
399 sharedState->content_to_target_transform = MathUtil::createGfxTransform(1.f, 0.f, 0.f, 1.f, 10.f, 20.f); | |
400 // 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.
| |
401 sharedState->clip_rect = gfx::Rect(50, 70, 30, 20); | |
402 | |
403 //40 50 90 | |
404 // B--:-------C 60 | |
405 // | b----c -|-70 | |
406 // | | | | | |
407 // | a----d -|-90 | |
408 // | | | |
409 // A----------D 120 | |
410 // UV and vertex opacity are stored per vertex on the parent rectangle 'ABCD '. | |
411 // The value on the clipped rectangle 'abcd' are interpolated to keep visual appearance. | |
412 | |
413 // 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.
| |
414 gfx::PointF uvTopLeft(0.1f, 0.2f); | |
415 // UV value for 'D' vertex | |
416 gfx::PointF uvBottomRight(0.9f, 0.8f); | |
417 // Vertex opacity for 'ABCD' | |
418 const float vertexOpacity[] = {0.3f, 0.4f, 0.7f, 0.8f}; | |
419 | |
420 { | |
421 CREATE_QUAD_7_NEW(TextureDrawQuad, opaqueRect, resourceId, premultipliedAl pha, uvTopLeft, uvBottomRight, vertexOpacity, flipped); | |
422 CREATE_QUAD_6_ALL(TextureDrawQuad, resourceId, premultipliedAlpha, uvTopLe ft, uvBottomRight, vertexOpacity, flipped); | |
423 EXPECT_TRUE(quadAll->PerformClipping()); | |
424 | |
425 // UV value for vertex 'b' | |
426 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.
| |
427 // UV value for vertex 'd' | |
428 gfx::PointF uvBottomRightClipped(0.74f, 0.5f); | |
429 // Vertex opacity for 'abcd' | |
430 const float vertexOpacityClipped[] = {0.43f, 0.45f, 0.65f, 0.67f}; | |
431 | |
432 EXPECT_EQ(uvTopLeftClipped, quadAll->uv_top_left); | |
433 EXPECT_EQ(uvBottomRightClipped, quadAll->uv_bottom_right); | |
434 EXPECT_FLOAT_ARRAY_EQ(vertexOpacityClipped, quadAll->vertex_opacity, 4); | |
435 } | |
436 | |
437 uvTopLeft = gfx::PointF(0.8f, 0.7f); | |
438 uvBottomRight = gfx::PointF(0.2f, 0.1f); | |
439 | |
440 { | |
441 CREATE_QUAD_7_NEW(TextureDrawQuad, opaqueRect, resourceId, premultipliedAl pha, uvTopLeft, uvBottomRight, vertexOpacity, flipped); | |
442 CREATE_QUAD_6_ALL(TextureDrawQuad, resourceId, premultipliedAlpha, uvTopLe ft, uvBottomRight, vertexOpacity, flipped); | |
443 EXPECT_TRUE(quadAll->PerformClipping()); | |
444 | |
445 // UV value for vertex 'b' | |
446 gfx::PointF uvTopLeftClipped(0.68f, 0.6f); | |
447 // UV value for vertex 'd' | |
448 gfx::PointF uvBottomRightClipped(0.32f, 0.4f); | |
449 | |
450 EXPECT_EQ(uvTopLeftClipped, quadAll->uv_top_left); | |
451 EXPECT_EQ(uvBottomRightClipped, quadAll->uv_bottom_right); | |
452 } | |
453 } | |
454 | |
388 TEST(DrawQuadTest, copyTileDrawQuad) | 455 TEST(DrawQuadTest, copyTileDrawQuad) |
389 { | 456 { |
390 gfx::Rect opaqueRect(33, 44, 22, 33); | 457 gfx::Rect opaqueRect(33, 44, 22, 33); |
391 unsigned resourceId = 104; | 458 unsigned resourceId = 104; |
392 gfx::RectF texCoordRect(31, 12, 54, 20); | 459 gfx::RectF texCoordRect(31, 12, 54, 20); |
393 gfx::Size textureSize(85, 32); | 460 gfx::Size textureSize(85, 32); |
394 bool swizzleContents = true; | 461 bool swizzleContents = true; |
395 bool leftEdgeAA = true; | 462 bool leftEdgeAA = true; |
396 bool topEdgeAA = true; | 463 bool topEdgeAA = true; |
397 bool rightEdgeAA = false; | 464 bool rightEdgeAA = false; |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
463 EXPECT_EQ(uPlane.resourceId, copyQuad->u_plane.resourceId); | 530 EXPECT_EQ(uPlane.resourceId, copyQuad->u_plane.resourceId); |
464 EXPECT_EQ(uPlane.size, copyQuad->u_plane.size); | 531 EXPECT_EQ(uPlane.size, copyQuad->u_plane.size); |
465 EXPECT_EQ(uPlane.format, copyQuad->u_plane.format); | 532 EXPECT_EQ(uPlane.format, copyQuad->u_plane.format); |
466 EXPECT_EQ(vPlane.resourceId, copyQuad->v_plane.resourceId); | 533 EXPECT_EQ(vPlane.resourceId, copyQuad->v_plane.resourceId); |
467 EXPECT_EQ(vPlane.size, copyQuad->v_plane.size); | 534 EXPECT_EQ(vPlane.size, copyQuad->v_plane.size); |
468 EXPECT_EQ(vPlane.format, copyQuad->v_plane.format); | 535 EXPECT_EQ(vPlane.format, copyQuad->v_plane.format); |
469 } | 536 } |
470 | 537 |
471 } // namespace | 538 } // namespace |
472 } // namespace cc | 539 } // namespace cc |
OLD | NEW |