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

Side by Side Diff: cc/solid_color_draw_quad.cc

Issue 11649005: cc: Support anti-aliasing for solid color layers. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase and add DrawQuad::AntiAliasing struct. Created 7 years, 11 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 | 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/solid_color_draw_quad.h" 5 #include "cc/solid_color_draw_quad.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 8
9 namespace cc { 9 namespace cc {
10 10
11 SolidColorDrawQuad::SolidColorDrawQuad() : color(0) {} 11 SolidColorDrawQuad::SolidColorDrawQuad() : color(0) {
12 }
12 13
13 scoped_ptr<SolidColorDrawQuad> SolidColorDrawQuad::Create() { 14 scoped_ptr<SolidColorDrawQuad> SolidColorDrawQuad::Create() {
14 return make_scoped_ptr(new SolidColorDrawQuad); 15 return make_scoped_ptr(new SolidColorDrawQuad);
15 } 16 }
16 17
17 void SolidColorDrawQuad::SetNew(const SharedQuadState* shared_quad_state, 18 void SolidColorDrawQuad::SetNew(const SharedQuadState* shared_quad_state,
18 gfx::Rect rect, 19 gfx::Rect rect,
20 AntiAliasing anti_aliasing,
19 SkColor color) { 21 SkColor color) {
20 gfx::Rect opaque_rect = SkColorGetA(color) == 255 ? rect : gfx::Rect(); 22 gfx::Rect opaque_rect = SkColorGetA(color) == 255 ? rect : gfx::Rect();
21 gfx::Rect visible_rect = rect; 23 gfx::Rect visible_rect = rect;
22 bool needs_blending = false; 24 bool needs_blending = false;
23 DrawQuad::SetAll(shared_quad_state, DrawQuad::SOLID_COLOR, rect, opaque_rect, 25 DrawQuad::SetAll(shared_quad_state, DrawQuad::SOLID_COLOR, rect, opaque_rect,
24 visible_rect, needs_blending); 26 visible_rect, needs_blending, anti_aliasing);
25 this->color = color; 27 this->color = color;
28
29 // Override needs_blending after initializing the quad.
30 this->needs_blending = IsAntialiased();
26 } 31 }
27 32
28 void SolidColorDrawQuad::SetAll(const SharedQuadState* shared_quad_state, 33 void SolidColorDrawQuad::SetAll(const SharedQuadState* shared_quad_state,
29 gfx::Rect rect, 34 gfx::Rect rect,
30 gfx::Rect opaque_rect, 35 gfx::Rect opaque_rect,
31 gfx::Rect visible_rect, 36 gfx::Rect visible_rect,
32 bool needs_blending, 37 bool needs_blending,
38 AntiAliasing anti_aliasing,
33 SkColor color) { 39 SkColor color) {
34 DrawQuad::SetAll(shared_quad_state, DrawQuad::SOLID_COLOR, rect, opaque_rect, 40 DrawQuad::SetAll(shared_quad_state, DrawQuad::SOLID_COLOR, rect, opaque_rect,
35 visible_rect, needs_blending); 41 visible_rect, needs_blending, anti_aliasing);
36 this->color = color; 42 this->color = color;
37 } 43 }
38 44
39 const SolidColorDrawQuad* SolidColorDrawQuad::MaterialCast( 45 const SolidColorDrawQuad* SolidColorDrawQuad::MaterialCast(
40 const DrawQuad* quad) { 46 const DrawQuad* quad) {
41 DCHECK(quad->material == DrawQuad::SOLID_COLOR); 47 DCHECK(quad->material == DrawQuad::SOLID_COLOR);
42 return static_cast<const SolidColorDrawQuad*>(quad); 48 return static_cast<const SolidColorDrawQuad*>(quad);
43 } 49 }
44 50
45 } // namespacec cc 51 } // namespacec cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698