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/output/software_renderer.h" | 5 #include "cc/output/software_renderer.h" |
6 | 6 |
7 #include "base/run_loop.h" | 7 #include "base/run_loop.h" |
8 #include "cc/output/compositor_frame_metadata.h" | 8 #include "cc/output/compositor_frame_metadata.h" |
9 #include "cc/output/copy_output_request.h" | 9 #include "cc/output/copy_output_request.h" |
10 #include "cc/output/copy_output_result.h" | 10 #include "cc/output/copy_output_result.h" |
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
148 | 148 |
149 TEST_F(SoftwareRendererTest, TileQuad) { | 149 TEST_F(SoftwareRendererTest, TileQuad) { |
150 gfx::Size outer_size(100, 100); | 150 gfx::Size outer_size(100, 100); |
151 gfx::Size inner_size(98, 98); | 151 gfx::Size inner_size(98, 98); |
152 gfx::Rect outer_rect(outer_size); | 152 gfx::Rect outer_rect(outer_size); |
153 gfx::Rect inner_rect(gfx::Point(1, 1), inner_size); | 153 gfx::Rect inner_rect(gfx::Point(1, 1), inner_size); |
154 InitializeRenderer(make_scoped_ptr(new SoftwareOutputDevice)); | 154 InitializeRenderer(make_scoped_ptr(new SoftwareOutputDevice)); |
155 | 155 |
156 ResourceProvider::ResourceId resource_yellow = | 156 ResourceProvider::ResourceId resource_yellow = |
157 resource_provider()->CreateResource( | 157 resource_provider()->CreateResource( |
158 outer_size, | 158 outer_size, GL_CLAMP_TO_EDGE, |
159 GL_CLAMP_TO_EDGE, | 159 ResourceProvider::TEXTURE_HINT_IMMUTABLE, RGBA_8888); |
160 ResourceProvider::TextureHintImmutable, | |
161 RGBA_8888); | |
162 ResourceProvider::ResourceId resource_cyan = | 160 ResourceProvider::ResourceId resource_cyan = |
163 resource_provider()->CreateResource( | 161 resource_provider()->CreateResource( |
164 inner_size, | 162 inner_size, GL_CLAMP_TO_EDGE, |
165 GL_CLAMP_TO_EDGE, | 163 ResourceProvider::TEXTURE_HINT_IMMUTABLE, RGBA_8888); |
166 ResourceProvider::TextureHintImmutable, | |
167 RGBA_8888); | |
168 | 164 |
169 SkBitmap yellow_tile; | 165 SkBitmap yellow_tile; |
170 yellow_tile.allocN32Pixels(outer_size.width(), outer_size.height()); | 166 yellow_tile.allocN32Pixels(outer_size.width(), outer_size.height()); |
171 yellow_tile.eraseColor(SK_ColorYELLOW); | 167 yellow_tile.eraseColor(SK_ColorYELLOW); |
172 | 168 |
173 SkBitmap cyan_tile; | 169 SkBitmap cyan_tile; |
174 cyan_tile.allocN32Pixels(inner_size.width(), inner_size.height()); | 170 cyan_tile.allocN32Pixels(inner_size.width(), inner_size.height()); |
175 cyan_tile.eraseColor(SK_ColorCYAN); | 171 cyan_tile.eraseColor(SK_ColorCYAN); |
176 | 172 |
177 resource_provider()->SetPixels( | 173 resource_provider()->CopyToResource( |
178 resource_yellow, | 174 resource_yellow, static_cast<uint8_t*>(yellow_tile.getPixels()), |
179 static_cast<uint8_t*>(yellow_tile.getPixels()), | 175 outer_size); |
180 gfx::Rect(outer_size), | 176 resource_provider()->CopyToResource( |
181 gfx::Rect(outer_size), | 177 resource_cyan, static_cast<uint8_t*>(cyan_tile.getPixels()), inner_size); |
182 gfx::Vector2d()); | |
183 resource_provider()->SetPixels(resource_cyan, | |
184 static_cast<uint8_t*>(cyan_tile.getPixels()), | |
185 gfx::Rect(inner_size), | |
186 gfx::Rect(inner_size), | |
187 gfx::Vector2d()); | |
188 | 178 |
189 gfx::Rect root_rect = outer_rect; | 179 gfx::Rect root_rect = outer_rect; |
190 | 180 |
191 RenderPassId root_render_pass_id = RenderPassId(1, 1); | 181 RenderPassId root_render_pass_id = RenderPassId(1, 1); |
192 scoped_ptr<TestRenderPass> root_render_pass = TestRenderPass::Create(); | 182 scoped_ptr<TestRenderPass> root_render_pass = TestRenderPass::Create(); |
193 root_render_pass->SetNew( | 183 root_render_pass->SetNew( |
194 root_render_pass_id, root_rect, root_rect, gfx::Transform()); | 184 root_render_pass_id, root_rect, root_rect, gfx::Transform()); |
195 SharedQuadState* shared_quad_state = | 185 SharedQuadState* shared_quad_state = |
196 root_render_pass->CreateAndAppendSharedQuadState(); | 186 root_render_pass->CreateAndAppendSharedQuadState(); |
197 shared_quad_state->SetAll(gfx::Transform(), | 187 shared_quad_state->SetAll(gfx::Transform(), |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
245 | 235 |
246 TEST_F(SoftwareRendererTest, TileQuadVisibleRect) { | 236 TEST_F(SoftwareRendererTest, TileQuadVisibleRect) { |
247 gfx::Size tile_size(100, 100); | 237 gfx::Size tile_size(100, 100); |
248 gfx::Rect tile_rect(tile_size); | 238 gfx::Rect tile_rect(tile_size); |
249 gfx::Rect visible_rect = tile_rect; | 239 gfx::Rect visible_rect = tile_rect; |
250 visible_rect.Inset(1, 2, 3, 4); | 240 visible_rect.Inset(1, 2, 3, 4); |
251 InitializeRenderer(make_scoped_ptr(new SoftwareOutputDevice)); | 241 InitializeRenderer(make_scoped_ptr(new SoftwareOutputDevice)); |
252 | 242 |
253 ResourceProvider::ResourceId resource_cyan = | 243 ResourceProvider::ResourceId resource_cyan = |
254 resource_provider()->CreateResource( | 244 resource_provider()->CreateResource( |
255 tile_size, | 245 tile_size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE, |
256 GL_CLAMP_TO_EDGE, | |
257 ResourceProvider::TextureHintImmutable, | |
258 RGBA_8888); | 246 RGBA_8888); |
259 | 247 |
260 SkBitmap cyan_tile; // The lowest five rows are yellow. | 248 SkBitmap cyan_tile; // The lowest five rows are yellow. |
261 cyan_tile.allocN32Pixels(tile_size.width(), tile_size.height()); | 249 cyan_tile.allocN32Pixels(tile_size.width(), tile_size.height()); |
262 cyan_tile.eraseColor(SK_ColorCYAN); | 250 cyan_tile.eraseColor(SK_ColorCYAN); |
263 cyan_tile.eraseArea( | 251 cyan_tile.eraseArea( |
264 SkIRect::MakeLTRB( | 252 SkIRect::MakeLTRB( |
265 0, visible_rect.bottom() - 1, tile_rect.width(), tile_rect.bottom()), | 253 0, visible_rect.bottom() - 1, tile_rect.width(), tile_rect.bottom()), |
266 SK_ColorYELLOW); | 254 SK_ColorYELLOW); |
267 | 255 |
268 resource_provider()->SetPixels(resource_cyan, | 256 resource_provider()->CopyToResource( |
269 static_cast<uint8_t*>(cyan_tile.getPixels()), | 257 resource_cyan, static_cast<uint8_t*>(cyan_tile.getPixels()), tile_size); |
270 gfx::Rect(tile_size), | |
271 gfx::Rect(tile_size), | |
272 gfx::Vector2d()); | |
273 | 258 |
274 gfx::Rect root_rect(tile_size); | 259 gfx::Rect root_rect(tile_size); |
275 | 260 |
276 RenderPassId root_render_pass_id = RenderPassId(1, 1); | 261 RenderPassId root_render_pass_id = RenderPassId(1, 1); |
277 scoped_ptr<TestRenderPass> root_render_pass = TestRenderPass::Create(); | 262 scoped_ptr<TestRenderPass> root_render_pass = TestRenderPass::Create(); |
278 root_render_pass->SetNew( | 263 root_render_pass->SetNew( |
279 root_render_pass_id, root_rect, root_rect, gfx::Transform()); | 264 root_render_pass_id, root_rect, root_rect, gfx::Transform()); |
280 SharedQuadState* shared_quad_state = | 265 SharedQuadState* shared_quad_state = |
281 root_render_pass->CreateAndAppendSharedQuadState(); | 266 root_render_pass->CreateAndAppendSharedQuadState(); |
282 shared_quad_state->SetAll(gfx::Transform(), | 267 shared_quad_state->SetAll(gfx::Transform(), |
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
434 EXPECT_EQ( | 419 EXPECT_EQ( |
435 SK_ColorMAGENTA, | 420 SK_ColorMAGENTA, |
436 output->getColor(interior_visible_rect.x(), interior_visible_rect.y())); | 421 output->getColor(interior_visible_rect.x(), interior_visible_rect.y())); |
437 EXPECT_EQ(SK_ColorMAGENTA, | 422 EXPECT_EQ(SK_ColorMAGENTA, |
438 output->getColor(interior_visible_rect.right() - 1, | 423 output->getColor(interior_visible_rect.right() - 1, |
439 interior_visible_rect.bottom() - 1)); | 424 interior_visible_rect.bottom() - 1)); |
440 } | 425 } |
441 | 426 |
442 } // namespace | 427 } // namespace |
443 } // namespace cc | 428 } // namespace cc |
OLD | NEW |