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

Side by Side Diff: cc/layers/nine_patch_layer_impl.cc

Issue 308193003: Removed QuadSink and MockQuadCuller (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@plumLayerImpl
Patch Set: rm unused line Created 6 years, 6 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 unified diff | Download patch
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/layers/nine_patch_layer_impl.h" 5 #include "cc/layers/nine_patch_layer_impl.h"
6 6
7 #include "base/strings/stringprintf.h" 7 #include "base/strings/stringprintf.h"
8 #include "base/values.h" 8 #include "base/values.h"
9 #include "cc/base/math_util.h" 9 #include "cc/base/math_util.h"
10 #include "cc/layers/quad_sink.h"
11 #include "cc/quads/texture_draw_quad.h" 10 #include "cc/quads/texture_draw_quad.h"
12 #include "cc/trees/layer_tree_impl.h" 11 #include "cc/trees/layer_tree_impl.h"
12 #include "cc/trees/occlusion_tracker.h"
13 #include "ui/gfx/rect_f.h" 13 #include "ui/gfx/rect_f.h"
14 14
15 namespace cc { 15 namespace cc {
16 16
17 NinePatchLayerImpl::NinePatchLayerImpl(LayerTreeImpl* tree_impl, int id) 17 NinePatchLayerImpl::NinePatchLayerImpl(LayerTreeImpl* tree_impl, int id)
18 : UIResourceLayerImpl(tree_impl, id), 18 : UIResourceLayerImpl(tree_impl, id),
19 fill_center_(false) {} 19 fill_center_(false) {}
20 20
21 NinePatchLayerImpl::~NinePatchLayerImpl() {} 21 NinePatchLayerImpl::~NinePatchLayerImpl() {}
22 22
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 DCHECK_GE(border_.x(), 0); 73 DCHECK_GE(border_.x(), 0);
74 DCHECK_GE(border_.y(), 0); 74 DCHECK_GE(border_.y(), 0);
75 75
76 // |aperture| is in image space. It cannot exceed the bounds of the bitmap. 76 // |aperture| is in image space. It cannot exceed the bounds of the bitmap.
77 DCHECK(!image_aperture_.size().IsEmpty()); 77 DCHECK(!image_aperture_.size().IsEmpty());
78 DCHECK(gfx::Rect(image_bounds_).Contains(image_aperture_)) 78 DCHECK(gfx::Rect(image_bounds_).Contains(image_aperture_))
79 << "image_bounds_ " << gfx::Rect(image_bounds_).ToString() 79 << "image_bounds_ " << gfx::Rect(image_bounds_).ToString()
80 << " image_aperture_ " << image_aperture_.ToString(); 80 << " image_aperture_ " << image_aperture_.ToString();
81 } 81 }
82 82
83 void NinePatchLayerImpl::AppendQuads(QuadSink* quad_sink, 83 void NinePatchLayerImpl::AppendQuads(
84 AppendQuadsData* append_quads_data) { 84 RenderPass* render_pass,
85 const OcclusionTracker<LayerImpl>& occlusion_tracker,
86 AppendQuadsData* append_quads_data) {
85 CheckGeometryLimitations(); 87 CheckGeometryLimitations();
86 SharedQuadState* shared_quad_state = quad_sink->CreateSharedQuadState(); 88 SharedQuadState* shared_quad_state =
89 render_pass->CreateAndAppendSharedQuadState();
87 PopulateSharedQuadState(shared_quad_state); 90 PopulateSharedQuadState(shared_quad_state);
88 91
89 AppendDebugBorderQuad(quad_sink, shared_quad_state, append_quads_data); 92 AppendDebugBorderQuad(render_pass, shared_quad_state, append_quads_data);
90 93
91 if (!ui_resource_id_) 94 if (!ui_resource_id_)
92 return; 95 return;
93 96
94 ResourceProvider::ResourceId resource = 97 ResourceProvider::ResourceId resource =
95 layer_tree_impl()->ResourceIdForUIResource(ui_resource_id_); 98 layer_tree_impl()->ResourceIdForUIResource(ui_resource_id_);
96 99
97 if (!resource) 100 if (!resource)
98 return; 101 return;
99 102
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
203 uv_top.width(), 206 uv_top.width(),
204 uv_left.height()); 207 uv_left.height());
205 208
206 // Nothing is opaque here. 209 // Nothing is opaque here.
207 // TODO(danakj): Should we look at the SkBitmaps to determine opaqueness? 210 // TODO(danakj): Should we look at the SkBitmaps to determine opaqueness?
208 gfx::Rect opaque_rect; 211 gfx::Rect opaque_rect;
209 gfx::Rect visible_rect; 212 gfx::Rect visible_rect;
210 const float vertex_opacity[] = {1.0f, 1.0f, 1.0f, 1.0f}; 213 const float vertex_opacity[] = {1.0f, 1.0f, 1.0f, 1.0f};
211 scoped_ptr<TextureDrawQuad> quad; 214 scoped_ptr<TextureDrawQuad> quad;
212 215
213 visible_rect = 216 visible_rect = occlusion_tracker.UnoccludedContentRect(
214 quad_sink->UnoccludedContentRect(this, layer_top_left, draw_transform()); 217 this->render_target(), layer_top_left, draw_transform());
215 if (!visible_rect.IsEmpty()) { 218 if (!visible_rect.IsEmpty()) {
216 quad = TextureDrawQuad::Create(); 219 quad = TextureDrawQuad::Create();
217 quad->SetNew(shared_quad_state, 220 quad->SetNew(shared_quad_state,
218 layer_top_left, 221 layer_top_left,
219 opaque_rect, 222 opaque_rect,
220 visible_rect, 223 visible_rect,
221 resource, 224 resource,
222 premultiplied_alpha, 225 premultiplied_alpha,
223 uv_top_left.origin(), 226 uv_top_left.origin(),
224 uv_top_left.bottom_right(), 227 uv_top_left.bottom_right(),
225 SK_ColorTRANSPARENT, 228 SK_ColorTRANSPARENT,
226 vertex_opacity, 229 vertex_opacity,
227 flipped); 230 flipped);
228 quad_sink->Append(quad.PassAs<DrawQuad>()); 231 render_pass->AppendDrawQuad(quad.PassAs<DrawQuad>());
229 } 232 }
230 233
231 visible_rect = 234 visible_rect = occlusion_tracker.UnoccludedContentRect(
232 quad_sink->UnoccludedContentRect(this, layer_top_right, draw_transform()); 235 this->render_target(), layer_top_right, draw_transform());
233 if (!visible_rect.IsEmpty()) { 236 if (!visible_rect.IsEmpty()) {
234 quad = TextureDrawQuad::Create(); 237 quad = TextureDrawQuad::Create();
235 quad->SetNew(shared_quad_state, 238 quad->SetNew(shared_quad_state,
236 layer_top_right, 239 layer_top_right,
237 opaque_rect, 240 opaque_rect,
238 visible_rect, 241 visible_rect,
239 resource, 242 resource,
240 premultiplied_alpha, 243 premultiplied_alpha,
241 uv_top_right.origin(), 244 uv_top_right.origin(),
242 uv_top_right.bottom_right(), 245 uv_top_right.bottom_right(),
243 SK_ColorTRANSPARENT, 246 SK_ColorTRANSPARENT,
244 vertex_opacity, 247 vertex_opacity,
245 flipped); 248 flipped);
246 quad_sink->Append(quad.PassAs<DrawQuad>()); 249 render_pass->AppendDrawQuad(quad.PassAs<DrawQuad>());
247 } 250 }
248 251
249 visible_rect = quad_sink->UnoccludedContentRect( 252 visible_rect = occlusion_tracker.UnoccludedContentRect(
250 this, layer_bottom_left, draw_transform()); 253 this->render_target(), layer_bottom_left, draw_transform());
251 if (!visible_rect.IsEmpty()) { 254 if (!visible_rect.IsEmpty()) {
252 quad = TextureDrawQuad::Create(); 255 quad = TextureDrawQuad::Create();
253 quad->SetNew(shared_quad_state, 256 quad->SetNew(shared_quad_state,
254 layer_bottom_left, 257 layer_bottom_left,
255 opaque_rect, 258 opaque_rect,
256 visible_rect, 259 visible_rect,
257 resource, 260 resource,
258 premultiplied_alpha, 261 premultiplied_alpha,
259 uv_bottom_left.origin(), 262 uv_bottom_left.origin(),
260 uv_bottom_left.bottom_right(), 263 uv_bottom_left.bottom_right(),
261 SK_ColorTRANSPARENT, 264 SK_ColorTRANSPARENT,
262 vertex_opacity, 265 vertex_opacity,
263 flipped); 266 flipped);
264 quad_sink->Append(quad.PassAs<DrawQuad>()); 267 render_pass->AppendDrawQuad(quad.PassAs<DrawQuad>());
265 } 268 }
266 269
267 visible_rect = quad_sink->UnoccludedContentRect( 270 visible_rect = occlusion_tracker.UnoccludedContentRect(
268 this, layer_bottom_right, draw_transform()); 271 this->render_target(), layer_bottom_right, draw_transform());
269 if (!visible_rect.IsEmpty()) { 272 if (!visible_rect.IsEmpty()) {
270 quad = TextureDrawQuad::Create(); 273 quad = TextureDrawQuad::Create();
271 quad->SetNew(shared_quad_state, 274 quad->SetNew(shared_quad_state,
272 layer_bottom_right, 275 layer_bottom_right,
273 opaque_rect, 276 opaque_rect,
274 visible_rect, 277 visible_rect,
275 resource, 278 resource,
276 premultiplied_alpha, 279 premultiplied_alpha,
277 uv_bottom_right.origin(), 280 uv_bottom_right.origin(),
278 uv_bottom_right.bottom_right(), 281 uv_bottom_right.bottom_right(),
279 SK_ColorTRANSPARENT, 282 SK_ColorTRANSPARENT,
280 vertex_opacity, 283 vertex_opacity,
281 flipped); 284 flipped);
282 quad_sink->Append(quad.PassAs<DrawQuad>()); 285 render_pass->AppendDrawQuad(quad.PassAs<DrawQuad>());
283 } 286 }
284 287
285 visible_rect = 288 visible_rect = occlusion_tracker.UnoccludedContentRect(
286 quad_sink->UnoccludedContentRect(this, layer_top, draw_transform()); 289 this->render_target(), layer_top, draw_transform());
287 if (!visible_rect.IsEmpty()) { 290 if (!visible_rect.IsEmpty()) {
288 quad = TextureDrawQuad::Create(); 291 quad = TextureDrawQuad::Create();
289 quad->SetNew(shared_quad_state, 292 quad->SetNew(shared_quad_state,
290 layer_top, 293 layer_top,
291 opaque_rect, 294 opaque_rect,
292 visible_rect, 295 visible_rect,
293 resource, 296 resource,
294 premultiplied_alpha, 297 premultiplied_alpha,
295 uv_top.origin(), 298 uv_top.origin(),
296 uv_top.bottom_right(), 299 uv_top.bottom_right(),
297 SK_ColorTRANSPARENT, 300 SK_ColorTRANSPARENT,
298 vertex_opacity, 301 vertex_opacity,
299 flipped); 302 flipped);
300 quad_sink->Append(quad.PassAs<DrawQuad>()); 303 render_pass->AppendDrawQuad(quad.PassAs<DrawQuad>());
301 } 304 }
302 305
303 visible_rect = 306 visible_rect = occlusion_tracker.UnoccludedContentRect(
304 quad_sink->UnoccludedContentRect(this, layer_left, draw_transform()); 307 this->render_target(), layer_left, draw_transform());
305 if (!visible_rect.IsEmpty()) { 308 if (!visible_rect.IsEmpty()) {
306 quad = TextureDrawQuad::Create(); 309 quad = TextureDrawQuad::Create();
307 quad->SetNew(shared_quad_state, 310 quad->SetNew(shared_quad_state,
308 layer_left, 311 layer_left,
309 opaque_rect, 312 opaque_rect,
310 visible_rect, 313 visible_rect,
311 resource, 314 resource,
312 premultiplied_alpha, 315 premultiplied_alpha,
313 uv_left.origin(), 316 uv_left.origin(),
314 uv_left.bottom_right(), 317 uv_left.bottom_right(),
315 SK_ColorTRANSPARENT, 318 SK_ColorTRANSPARENT,
316 vertex_opacity, 319 vertex_opacity,
317 flipped); 320 flipped);
318 quad_sink->Append(quad.PassAs<DrawQuad>()); 321 render_pass->AppendDrawQuad(quad.PassAs<DrawQuad>());
319 } 322 }
320 323
321 visible_rect = 324 visible_rect = occlusion_tracker.UnoccludedContentRect(
322 quad_sink->UnoccludedContentRect(this, layer_right, draw_transform()); 325 this->render_target(), layer_right, draw_transform());
323 if (!visible_rect.IsEmpty()) { 326 if (!visible_rect.IsEmpty()) {
324 quad = TextureDrawQuad::Create(); 327 quad = TextureDrawQuad::Create();
325 quad->SetNew(shared_quad_state, 328 quad->SetNew(shared_quad_state,
326 layer_right, 329 layer_right,
327 opaque_rect, 330 opaque_rect,
328 layer_right, 331 layer_right,
329 resource, 332 resource,
330 premultiplied_alpha, 333 premultiplied_alpha,
331 uv_right.origin(), 334 uv_right.origin(),
332 uv_right.bottom_right(), 335 uv_right.bottom_right(),
333 SK_ColorTRANSPARENT, 336 SK_ColorTRANSPARENT,
334 vertex_opacity, 337 vertex_opacity,
335 flipped); 338 flipped);
336 quad_sink->Append(quad.PassAs<DrawQuad>()); 339 render_pass->AppendDrawQuad(quad.PassAs<DrawQuad>());
337 } 340 }
338 341
339 visible_rect = 342 visible_rect = occlusion_tracker.UnoccludedContentRect(
340 quad_sink->UnoccludedContentRect(this, layer_bottom, draw_transform()); 343 this->render_target(), layer_bottom, draw_transform());
341 if (!visible_rect.IsEmpty()) { 344 if (!visible_rect.IsEmpty()) {
342 quad = TextureDrawQuad::Create(); 345 quad = TextureDrawQuad::Create();
343 quad->SetNew(shared_quad_state, 346 quad->SetNew(shared_quad_state,
344 layer_bottom, 347 layer_bottom,
345 opaque_rect, 348 opaque_rect,
346 visible_rect, 349 visible_rect,
347 resource, 350 resource,
348 premultiplied_alpha, 351 premultiplied_alpha,
349 uv_bottom.origin(), 352 uv_bottom.origin(),
350 uv_bottom.bottom_right(), 353 uv_bottom.bottom_right(),
351 SK_ColorTRANSPARENT, 354 SK_ColorTRANSPARENT,
352 vertex_opacity, 355 vertex_opacity,
353 flipped); 356 flipped);
354 quad_sink->Append(quad.PassAs<DrawQuad>()); 357 render_pass->AppendDrawQuad(quad.PassAs<DrawQuad>());
355 } 358 }
356 359
357 if (fill_center_) { 360 if (fill_center_) {
358 visible_rect = 361 visible_rect = occlusion_tracker.UnoccludedContentRect(
359 quad_sink->UnoccludedContentRect(this, layer_center, draw_transform()); 362 this->render_target(), layer_center, draw_transform());
360 if (!visible_rect.IsEmpty()) { 363 if (!visible_rect.IsEmpty()) {
361 quad = TextureDrawQuad::Create(); 364 quad = TextureDrawQuad::Create();
362 quad->SetNew(shared_quad_state, 365 quad->SetNew(shared_quad_state,
363 layer_center, 366 layer_center,
364 opaque_rect, 367 opaque_rect,
365 visible_rect, 368 visible_rect,
366 resource, 369 resource,
367 premultiplied_alpha, 370 premultiplied_alpha,
368 uv_center.origin(), 371 uv_center.origin(),
369 uv_center.bottom_right(), 372 uv_center.bottom_right(),
370 SK_ColorTRANSPARENT, 373 SK_ColorTRANSPARENT,
371 vertex_opacity, 374 vertex_opacity,
372 flipped); 375 flipped);
373 quad_sink->Append(quad.PassAs<DrawQuad>()); 376 render_pass->AppendDrawQuad(quad.PassAs<DrawQuad>());
374 } 377 }
375 } 378 }
376 } 379 }
377 380
378 const char* NinePatchLayerImpl::LayerTypeAsString() const { 381 const char* NinePatchLayerImpl::LayerTypeAsString() const {
379 return "cc::NinePatchLayerImpl"; 382 return "cc::NinePatchLayerImpl";
380 } 383 }
381 384
382 base::DictionaryValue* NinePatchLayerImpl::LayerTreeAsJson() const { 385 base::DictionaryValue* NinePatchLayerImpl::LayerTreeAsJson() const {
383 base::DictionaryValue* result = LayerImpl::LayerTreeAsJson(); 386 base::DictionaryValue* result = LayerImpl::LayerTreeAsJson();
(...skipping 13 matching lines...) Expand all
397 result->Set("Border", MathUtil::AsValue(border_).release()); 400 result->Set("Border", MathUtil::AsValue(border_).release());
398 401
399 base::FundamentalValue* fill_center = 402 base::FundamentalValue* fill_center =
400 base::Value::CreateBooleanValue(fill_center_); 403 base::Value::CreateBooleanValue(fill_center_);
401 result->Set("FillCenter", fill_center); 404 result->Set("FillCenter", fill_center);
402 405
403 return result; 406 return result;
404 } 407 }
405 408
406 } // namespace cc 409 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698