Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(175)

Unified Diff: cc/output/renderer_pixeltest.cc

Issue 13863015: Add flag for drawing layers to screen with Ganesh (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Ready for review Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: cc/output/renderer_pixeltest.cc
diff --git a/cc/output/renderer_pixeltest.cc b/cc/output/renderer_pixeltest.cc
index 672f64b2f3c7f4b8d98b4754cb937611e5279646..2a5ccf2170fa92f1e1dcc53a42b0b695391c24f1 100644
--- a/cc/output/renderer_pixeltest.cc
+++ b/cc/output/renderer_pixeltest.cc
@@ -97,6 +97,13 @@ scoped_ptr<DrawQuad> CreateTestRenderPassDrawQuad(
typedef ::testing::Types<GLRenderer, SoftwareRenderer> RendererTypes;
TYPED_TEST_CASE(RendererPixelTest, RendererTypes);
+typedef ::testing::Types<GLRenderer, GLRendererWithGanesh, SoftwareRenderer>
+ RendererTypesWithGanesh;
+template <typename RendererType>
+class RendererPixelTestWithGanesh : public RendererPixelTest<RendererType> {
+};
+TYPED_TEST_CASE(RendererPixelTestWithGanesh, RendererTypesWithGanesh);
+
// All pixels can be off by one, but any more than that is an error.
class FuzzyPixelOffByOneComparator : public FuzzyPixelComparator {
public:
@@ -119,17 +126,17 @@ class FuzzyForSoftwareOnlyPixelComparator : public PixelComparator {
};
template<>
-bool FuzzyForSoftwareOnlyPixelComparator<GLRenderer>::Compare(
+bool FuzzyForSoftwareOnlyPixelComparator<SoftwareRenderer>::Compare(
const SkBitmap& actual_bmp,
const SkBitmap& expected_bmp) const {
- return exact_.Compare(actual_bmp, expected_bmp);
+ return fuzzy_.Compare(actual_bmp, expected_bmp);
}
-template<>
-bool FuzzyForSoftwareOnlyPixelComparator<SoftwareRenderer>::Compare(
+template<typename RendererType>
+bool FuzzyForSoftwareOnlyPixelComparator<RendererType>::Compare(
const SkBitmap& actual_bmp,
const SkBitmap& expected_bmp) const {
- return fuzzy_.Compare(actual_bmp, expected_bmp);
+ return exact_.Compare(actual_bmp, expected_bmp);
}
#if !defined(OS_ANDROID)
@@ -570,8 +577,10 @@ class RendererPixelTestWithBackgroundFilter
gfx::Rect filter_pass_content_rect_;
};
-typedef ::testing::Types<GLRenderer, SoftwareRenderer> RendererTypes;
-TYPED_TEST_CASE(RendererPixelTestWithBackgroundFilter, RendererTypes);
+typedef ::testing::Types<GLRenderer, SoftwareRenderer>
+ BackgroundFilterRendererTypes;
+TYPED_TEST_CASE(RendererPixelTestWithBackgroundFilter,
+ BackgroundFilterRendererTypes);
typedef RendererPixelTestWithBackgroundFilter<GLRenderer>
GLRendererPixelTestWithBackgroundFilter;
@@ -729,9 +738,10 @@ TEST_F(GLRendererPixelTest, ForceAntiAliasingOff) {
ExactPixelComparator(false)));
}
-TYPED_TEST(RendererPixelTest, PictureDrawQuadIdentityScale) {
+TYPED_TEST(RendererPixelTestWithGanesh, PictureDrawQuadIdentityScale) {
gfx::Size pile_tile_size(1000, 1000);
gfx::Rect viewport(this->device_viewport_size_);
+ bool use_ganesh = this->UseGanesh();
// TODO(enne): the renderer should figure this out on its own.
bool contents_swizzled = !PlatformColor::SameComponentOrder(GL_RGBA);
@@ -774,6 +784,7 @@ TYPED_TEST(RendererPixelTest, PictureDrawQuadIdentityScale) {
contents_swizzled,
viewport,
1.f,
+ use_ganesh,
blue_pile);
pass->quad_list.push_back(blue_quad.PassAs<DrawQuad>());
@@ -798,6 +809,7 @@ TYPED_TEST(RendererPixelTest, PictureDrawQuadIdentityScale) {
contents_swizzled,
viewport,
1.f,
+ use_ganesh,
green_pile);
pass->quad_list.push_back(green_quad.PassAs<DrawQuad>());
@@ -810,9 +822,10 @@ TYPED_TEST(RendererPixelTest, PictureDrawQuadIdentityScale) {
ExactPixelComparator(true)));
}
-TYPED_TEST(RendererPixelTest, PictureDrawQuadNonIdentityScale) {
+TYPED_TEST(RendererPixelTestWithGanesh, PictureDrawQuadNonIdentityScale) {
gfx::Size pile_tile_size(1000, 1000);
gfx::Rect viewport(this->device_viewport_size_);
+ bool use_ganesh = this->UseGanesh();
// TODO(enne): the renderer should figure this out on its own.
bool contents_swizzled = !PlatformColor::SameComponentOrder(GL_RGBA);
@@ -851,6 +864,7 @@ TYPED_TEST(RendererPixelTest, PictureDrawQuadNonIdentityScale) {
contents_swizzled,
green_rect1,
1.f,
+ use_ganesh,
green_pile);
pass->quad_list.push_back(green_quad1.PassAs<DrawQuad>());
@@ -863,6 +877,7 @@ TYPED_TEST(RendererPixelTest, PictureDrawQuadNonIdentityScale) {
contents_swizzled,
green_rect2,
1.f,
+ use_ganesh,
green_pile);
pass->quad_list.push_back(green_quad2.PassAs<DrawQuad>());
@@ -899,10 +914,13 @@ TYPED_TEST(RendererPixelTest, PictureDrawQuadNonIdentityScale) {
scoped_refptr<FakePicturePileImpl> pile =
FakePicturePileImpl::CreateFilledPile(pile_tile_size, layer_rect.size());
- pile->add_draw_rect_with_paint(layer_rect, red_paint);
- SkPaint transparent_paint;
- transparent_paint.setXfermodeMode(SkXfermode::kClear_Mode);
- pile->add_draw_rect_with_paint(union_layer_rect, transparent_paint);
+
+ Region outside(layer_rect);
enne (OOO) 2013/05/13 19:33:10 This change is because drawing directly with Ganes
+ outside.Subtract(gfx::ToEnclosingRect(union_layer_rect));
+ for (Region::Iterator iter(outside); iter.has_rect(); iter.next()) {
+ pile->add_draw_rect_with_paint(iter.rect(), red_paint);
+ }
+
SkPaint blue_paint;
blue_paint.setColor(SK_ColorBLUE);
pile->add_draw_rect_with_paint(blue_layer_rect1, blue_paint);
@@ -931,6 +949,7 @@ TYPED_TEST(RendererPixelTest, PictureDrawQuadNonIdentityScale) {
contents_swizzled,
content_union_rect,
contents_scale,
+ use_ganesh,
pile);
pass->quad_list.push_back(blue_quad.PassAs<DrawQuad>());

Powered by Google App Engine
This is Rietveld 408576698