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 "base/message_loop/message_loop.h" | 5 #include "base/message_loop/message_loop.h" |
6 #include "cc/output/gl_renderer.h" | 6 #include "cc/output/gl_renderer.h" |
7 #include "cc/quads/draw_quad.h" | 7 #include "cc/quads/draw_quad.h" |
8 #include "cc/quads/picture_draw_quad.h" | 8 #include "cc/quads/picture_draw_quad.h" |
9 #include "cc/quads/texture_draw_quad.h" | 9 #include "cc/quads/texture_draw_quad.h" |
10 #include "cc/resources/video_resource_updater.h" | 10 #include "cc/resources/video_resource_updater.h" |
(...skipping 2919 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2930 | 2930 |
2931 RenderPassList pass_list; | 2931 RenderPassList pass_list; |
2932 pass_list.push_back(pass.Pass()); | 2932 pass_list.push_back(pass.Pass()); |
2933 | 2933 |
2934 EXPECT_TRUE(this->RunPixelTest( | 2934 EXPECT_TRUE(this->RunPixelTest( |
2935 &pass_list, | 2935 &pass_list, |
2936 base::FilePath(FILE_PATH_LITERAL("wrap_mode_repeat.png")), | 2936 base::FilePath(FILE_PATH_LITERAL("wrap_mode_repeat.png")), |
2937 FuzzyPixelOffByOneComparator(true))); | 2937 FuzzyPixelOffByOneComparator(true))); |
2938 } | 2938 } |
2939 | 2939 |
2940 TYPED_TEST(RendererPixelTest, Checkerboards) { | |
2941 gfx::Rect rect(this->device_viewport_size_); | |
2942 | |
2943 RenderPassId id(1, 1); | |
2944 scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect); | |
2945 | |
2946 SharedQuadState* shared_state = | |
2947 CreateTestSharedQuadState(gfx::Transform(), rect, pass.get()); | |
2948 | |
2949 // The color's alpha value is not used. | |
2950 SkColor color1 = SK_ColorGREEN; | |
2951 color1 = SkColorSetA(color1, 0); | |
2952 SkColor color2 = SK_ColorBLUE; | |
2953 color2 = SkColorSetA(color2, 0); | |
2954 | |
2955 gfx::Rect content_rect(rect); | |
2956 | |
2957 gfx::Rect top_left(content_rect); | |
2958 gfx::Rect top_right(content_rect); | |
2959 gfx::Rect bottom_left(content_rect); | |
2960 gfx::Rect bottom_right(content_rect); | |
2961 // The format is Inset(left, top, right, bottom). | |
2962 top_left.Inset(0, 0, content_rect.width() / 2, content_rect.height() / 2); | |
2963 top_right.Inset(content_rect.width() / 2, 0, 0, content_rect.height() / 2); | |
2964 bottom_left.Inset(0, content_rect.height() / 2, content_rect.width() / 2, 0); | |
2965 bottom_right.Inset(content_rect.width() / 2, content_rect.height() / 2, 0, 0); | |
2966 | |
2967 // Appends checkerboard quads with a scale of 1. | |
2968 CheckerboardDrawQuad* quad = | |
2969 pass->CreateAndAppendDrawQuad<CheckerboardDrawQuad>(); | |
2970 quad->SetNew(shared_state, top_left, top_left, color1, 1.f); | |
2971 quad = pass->CreateAndAppendDrawQuad<CheckerboardDrawQuad>(); | |
2972 quad->SetNew(shared_state, top_right, top_right, color2, 1.f); | |
2973 quad = pass->CreateAndAppendDrawQuad<CheckerboardDrawQuad>(); | |
2974 quad->SetNew(shared_state, bottom_left, bottom_left, color2, 1.f); | |
2975 quad = pass->CreateAndAppendDrawQuad<CheckerboardDrawQuad>(); | |
2976 quad->SetNew(shared_state, bottom_right, bottom_right, color1, 1.f); | |
2977 | |
2978 RenderPassList pass_list; | |
2979 pass_list.push_back(pass.Pass()); | |
2980 | |
2981 base::FilePath::StringType path = | |
2982 IsSoftwareRenderer<TypeParam>() | |
2983 ? FILE_PATH_LITERAL("four_blue_green_checkers.png") | |
2984 : FILE_PATH_LITERAL("checkers.png"); | |
2985 EXPECT_TRUE(this->RunPixelTest(&pass_list, base::FilePath(path), | |
2986 ExactPixelComparator(true))); | |
2987 } | |
2988 | |
2989 TYPED_TEST(RendererPixelTest, CheckerboardsScaled) { | |
2990 gfx::Rect rect(this->device_viewport_size_); | |
2991 | |
2992 RenderPassId id(1, 1); | |
2993 scoped_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect); | |
2994 | |
2995 gfx::Transform scale; | |
2996 scale.Scale(2.f, 2.f); | |
2997 | |
2998 SharedQuadState* shared_state = | |
2999 CreateTestSharedQuadState(scale, rect, pass.get()); | |
3000 | |
3001 // The color's alpha value is not used. | |
3002 SkColor color1 = SK_ColorGREEN; | |
3003 color1 = SkColorSetA(color1, 0); | |
3004 SkColor color2 = SK_ColorBLUE; | |
3005 color2 = SkColorSetA(color2, 0); | |
3006 | |
3007 gfx::Rect content_rect(rect); | |
3008 content_rect.Inset(0, 0, rect.width() / 2, rect.height() / 2); | |
3009 | |
3010 gfx::Rect top_left(content_rect); | |
3011 gfx::Rect top_right(content_rect); | |
3012 gfx::Rect bottom_left(content_rect); | |
3013 gfx::Rect bottom_right(content_rect); | |
3014 // The format is Inset(left, top, right, bottom). | |
3015 top_left.Inset(0, 0, content_rect.width() / 2, content_rect.height() / 2); | |
3016 top_right.Inset(content_rect.width() / 2, 0, 0, content_rect.height() / 2); | |
3017 bottom_left.Inset(0, content_rect.height() / 2, content_rect.width() / 2, 0); | |
3018 bottom_right.Inset(content_rect.width() / 2, content_rect.height() / 2, 0, 0); | |
3019 | |
3020 // Appends checkerboard quads with a scale of 2, and a shared quad state | |
3021 // with a scale of 2. The checkers should be scaled by 2 * 2 = 4. | |
3022 CheckerboardDrawQuad* quad = | |
3023 pass->CreateAndAppendDrawQuad<CheckerboardDrawQuad>(); | |
3024 quad->SetNew(shared_state, top_left, top_left, color1, 2.f); | |
3025 quad = pass->CreateAndAppendDrawQuad<CheckerboardDrawQuad>(); | |
3026 quad->SetNew(shared_state, top_right, top_right, color2, 2.f); | |
3027 quad = pass->CreateAndAppendDrawQuad<CheckerboardDrawQuad>(); | |
3028 quad->SetNew(shared_state, bottom_left, bottom_left, color2, 2.f); | |
3029 quad = pass->CreateAndAppendDrawQuad<CheckerboardDrawQuad>(); | |
3030 quad->SetNew(shared_state, bottom_right, bottom_right, color1, 2.f); | |
3031 | |
3032 RenderPassList pass_list; | |
3033 pass_list.push_back(pass.Pass()); | |
3034 | |
3035 base::FilePath::StringType path = | |
3036 IsSoftwareRenderer<TypeParam>() | |
3037 ? FILE_PATH_LITERAL("four_blue_green_checkers.png") | |
3038 : FILE_PATH_LITERAL("checkers_big.png"); | |
3039 EXPECT_TRUE(this->RunPixelTest(&pass_list, base::FilePath(path), | |
3040 ExactPixelComparator(true))); | |
3041 } | |
3042 | |
3043 #endif // !defined(OS_ANDROID) | 2940 #endif // !defined(OS_ANDROID) |
3044 | 2941 |
3045 } // namespace | 2942 } // namespace |
3046 } // namespace cc | 2943 } // namespace cc |
OLD | NEW |