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

Side by Side Diff: cc/gl_renderer_pixeltest.cc

Issue 11649005: cc: Support anti-aliasing for solid color layers. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: per edge anti-aliasing Created 8 years 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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/gl_renderer.h" 5 #include "cc/gl_renderer.h"
6 6
7 #include "base/file_util.h" 7 #include "base/file_util.h"
8 #include "base/path_service.h" 8 #include "base/path_service.h"
9 #include "cc/compositor_frame_metadata.h" 9 #include "cc/compositor_frame_metadata.h"
10 #include "cc/draw_quad.h" 10 #include "cc/draw_quad.h"
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 gfx::Rect rect(0, 0, 200, 200); 127 gfx::Rect rect(0, 0, 200, 200);
128 128
129 RenderPass::Id id(1, 1); 129 RenderPass::Id id(1, 1);
130 scoped_ptr<RenderPass> pass = CreateTestRenderPass(id, rect); 130 scoped_ptr<RenderPass> pass = CreateTestRenderPass(id, rect);
131 131
132 gfx::Transform content_to_target_transform; 132 gfx::Transform content_to_target_transform;
133 scoped_ptr<SharedQuadState> shared_state = 133 scoped_ptr<SharedQuadState> shared_state =
134 CreateTestSharedQuadState(content_to_target_transform, rect); 134 CreateTestSharedQuadState(content_to_target_transform, rect);
135 135
136 scoped_ptr<SolidColorDrawQuad> color_quad = SolidColorDrawQuad::Create(); 136 scoped_ptr<SolidColorDrawQuad> color_quad = SolidColorDrawQuad::Create();
137 color_quad->SetNew(shared_state.get(), rect, SK_ColorGREEN); 137 color_quad->SetNew(shared_state.get(), rect, SK_ColorGREEN,
138 false, false, false, false);
138 139
139 pass->quad_list.append(color_quad.PassAs<DrawQuad>()); 140 pass->quad_list.append(color_quad.PassAs<DrawQuad>());
140 141
141 RenderPassList pass_list; 142 RenderPassList pass_list;
142 pass_list.push_back(pass.get()); 143 pass_list.push_back(pass.get());
143 RenderPassIdHashMap pass_map; 144 RenderPassIdHashMap pass_map;
144 pass_map.add(id, pass.PassAs<RenderPass>()); 145 pass_map.add(id, pass.PassAs<RenderPass>());
145 146
146 renderer_->drawFrame(pass_list, pass_map); 147 renderer_->drawFrame(pass_list, pass_map);
147 148
(...skipping 11 matching lines...) Expand all
159 RenderPass::Id child_pass_id(2, 2); 160 RenderPass::Id child_pass_id(2, 2);
160 gfx::Rect pass_rect(200, 200); 161 gfx::Rect pass_rect(200, 200);
161 scoped_ptr<RenderPass> child_pass = 162 scoped_ptr<RenderPass> child_pass =
162 CreateTestRenderPass(child_pass_id, pass_rect); 163 CreateTestRenderPass(child_pass_id, pass_rect);
163 164
164 gfx::Transform content_to_target_transform; 165 gfx::Transform content_to_target_transform;
165 scoped_ptr<SharedQuadState> shared_state = 166 scoped_ptr<SharedQuadState> shared_state =
166 CreateTestSharedQuadState(content_to_target_transform, viewport_rect); 167 CreateTestSharedQuadState(content_to_target_transform, viewport_rect);
167 168
168 scoped_ptr<SolidColorDrawQuad> blue = SolidColorDrawQuad::Create(); 169 scoped_ptr<SolidColorDrawQuad> blue = SolidColorDrawQuad::Create();
169 blue->SetNew(shared_state.get(), gfx::Rect(0, 0, 100, 200), SK_ColorBLUE); 170 blue->SetNew(shared_state.get(), gfx::Rect(0, 0, 100, 200), SK_ColorBLUE,
171 false, false, false, false);
170 scoped_ptr<SolidColorDrawQuad> yellow = SolidColorDrawQuad::Create(); 172 scoped_ptr<SolidColorDrawQuad> yellow = SolidColorDrawQuad::Create();
171 yellow->SetNew(shared_state.get(), gfx::Rect(100, 0, 100, 200), SK_ColorYELLOW ); 173 yellow->SetNew(shared_state.get(), gfx::Rect(100, 0, 100, 200), SK_ColorYELLOW ,
174 false, false, false, false);
172 175
173 child_pass->quad_list.append(blue.PassAs<DrawQuad>()); 176 child_pass->quad_list.append(blue.PassAs<DrawQuad>());
174 child_pass->quad_list.append(yellow.PassAs<DrawQuad>()); 177 child_pass->quad_list.append(yellow.PassAs<DrawQuad>());
175 178
176 scoped_ptr<SharedQuadState> pass_shared_state = 179 scoped_ptr<SharedQuadState> pass_shared_state =
177 CreateTestSharedQuadState(gfx::Transform(), pass_rect); 180 CreateTestSharedQuadState(gfx::Transform(), pass_rect);
178 root_pass->quad_list.append( 181 root_pass->quad_list.append(
179 CreateTestRenderPassDrawQuad(pass_shared_state.get(), 182 CreateTestRenderPassDrawQuad(pass_shared_state.get(),
180 pass_rect, 183 pass_rect,
181 child_pass_id)); 184 child_pass_id));
182 185
183 RenderPassList pass_list; 186 RenderPassList pass_list;
184 pass_list.push_back(child_pass.get()); 187 pass_list.push_back(child_pass.get());
185 pass_list.push_back(root_pass.get()); 188 pass_list.push_back(root_pass.get());
186 189
187 RenderPassIdHashMap pass_map; 190 RenderPassIdHashMap pass_map;
188 pass_map.add(child_pass_id, child_pass.Pass()); 191 pass_map.add(child_pass_id, child_pass.Pass());
189 pass_map.add(root_pass_id, root_pass.Pass()); 192 pass_map.add(root_pass_id, root_pass.Pass());
190 193
191 renderer_->setEnlargePassTextureAmountForTesting(gfx::Vector2d(50, 75)); 194 renderer_->setEnlargePassTextureAmountForTesting(gfx::Vector2d(50, 75));
192 renderer_->decideRenderPassAllocationsForFrame(pass_list); 195 renderer_->decideRenderPassAllocationsForFrame(pass_list);
193 renderer_->drawFrame(pass_list, pass_map); 196 renderer_->drawFrame(pass_list, pass_map);
194 197
195 EXPECT_TRUE(PixelsMatchReference( 198 EXPECT_TRUE(PixelsMatchReference(
196 FilePath(FILE_PATH_LITERAL("blue_yellow.png")), viewport_rect)); 199 FilePath(FILE_PATH_LITERAL("blue_yellow.png")), viewport_rect));
197 } 200 }
201
202 TEST_F(GLRendererPixelTest, AntiAliasing) {
203 gfx::Rect rect(0, 0, 200, 200);
204
205 RenderPass::Id id(1, 1);
206 scoped_ptr<RenderPass> pass = CreateTestRenderPass(id, rect);
207
208 gfx::Transform red_content_to_target_transform;
209 red_content_to_target_transform.Rotate(10);
210 scoped_ptr<SharedQuadState> red_shared_state =
211 CreateTestSharedQuadState(red_content_to_target_transform, rect);
212
213 scoped_ptr<SolidColorDrawQuad> red = SolidColorDrawQuad::Create();
214 red->SetNew(red_shared_state.get(), rect, SK_ColorRED,
215 true, true, true, true);
216
217 pass->quad_list.append(red.PassAs<DrawQuad>());
218
219 gfx::Transform yellow_content_to_target_transform;
220 yellow_content_to_target_transform.Rotate(5);
221 scoped_ptr<SharedQuadState> yellow_shared_state =
222 CreateTestSharedQuadState(yellow_content_to_target_transform, rect);
223
224 scoped_ptr<SolidColorDrawQuad> yellow = SolidColorDrawQuad::Create();
225 yellow->SetNew(yellow_shared_state.get(), rect, SK_ColorYELLOW,
226 true, true, true, true);
227
228 pass->quad_list.append(yellow.PassAs<DrawQuad>());
229
230 gfx::Transform blue_content_to_target_transform;
231 scoped_ptr<SharedQuadState> blue_shared_state =
232 CreateTestSharedQuadState(blue_content_to_target_transform, rect);
233
234 scoped_ptr<SolidColorDrawQuad> blue = SolidColorDrawQuad::Create();
235 blue->SetNew(blue_shared_state.get(), rect, SK_ColorBLUE,
236 false, false, false, false);
237
238 pass->quad_list.append(blue.PassAs<DrawQuad>());
239
240 RenderPassList pass_list;
241 pass_list.push_back(pass.get());
242 RenderPassIdHashMap pass_map;
243 pass_map.add(id, pass.PassAs<RenderPass>());
244
245 renderer_->drawFrame(pass_list, pass_map);
246
247 EXPECT_TRUE(
248 PixelsMatchReference(FilePath(FILE_PATH_LITERAL("anti_aliasing.png")),
249 rect));
250 }
198 #endif 251 #endif
199 252
200 } // namespace 253 } // namespace
201 } // namespace cc 254 } // namespace cc
OLDNEW
« no previous file with comments | « cc/gl_renderer.cc ('k') | cc/layer_tree_host_impl.cc » ('j') | cc/solid_color_draw_quad.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698