summaryrefslogtreecommitdiffstats
path: root/cc/quads
diff options
context:
space:
mode:
authorthildebr@chromium.org <thildebr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-06-19 06:49:28 +0000
committerthildebr@chromium.org <thildebr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-06-19 06:49:28 +0000
commita9d4d4f8ff5b837ff736c6019aae93386582e4d3 (patch)
tree3c2268be6b030bba8385dba19435ac002ed7ae92 /cc/quads
parent696bfd03c9ca0be794b3189cea1f6bd7ed16d5ba (diff)
downloadchromium_src-a9d4d4f8ff5b837ff736c6019aae93386582e4d3.zip
chromium_src-a9d4d4f8ff5b837ff736c6019aae93386582e4d3.tar.gz
chromium_src-a9d4d4f8ff5b837ff736c6019aae93386582e4d3.tar.bz2
Rendering context information added to SharedQuadState
Context IDs given to DrawQuads to identify when a rendering context changes, and whether or not a DrawQuad is in a 3D sorting context. Review URL: https://codereview.chromium.org/332873005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@278288 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/quads')
-rw-r--r--cc/quads/draw_quad_unittest.cc8
-rw-r--r--cc/quads/render_pass_unittest.cc24
-rw-r--r--cc/quads/shared_quad_state.cc10
-rw-r--r--cc/quads/shared_quad_state.h4
4 files changed, 33 insertions, 13 deletions
diff --git a/cc/quads/draw_quad_unittest.cc b/cc/quads/draw_quad_unittest.cc
index 7124db2..f0f7719 100644
--- a/cc/quads/draw_quad_unittest.cc
+++ b/cc/quads/draw_quad_unittest.cc
@@ -38,6 +38,7 @@ TEST(DrawQuadTest, CopySharedQuadState) {
bool is_clipped = true;
float opacity = 0.25f;
SkXfermode::Mode blend_mode = SkXfermode::kMultiply_Mode;
+ int sorting_context_id = 65536;
scoped_ptr<SharedQuadState> state(new SharedQuadState);
state->SetAll(quad_transform,
@@ -46,7 +47,8 @@ TEST(DrawQuadTest, CopySharedQuadState) {
clip_rect,
is_clipped,
opacity,
- blend_mode);
+ blend_mode,
+ sorting_context_id);
scoped_ptr<SharedQuadState> copy(new SharedQuadState);
copy->CopyFrom(state.get());
@@ -65,6 +67,7 @@ scoped_ptr<SharedQuadState> CreateSharedQuadState() {
gfx::Rect clip_rect(19, 21, 23, 25);
bool is_clipped = false;
float opacity = 1.f;
+ int sorting_context_id = 65536;
SkXfermode::Mode blend_mode = SkXfermode::kSrcOver_Mode;
scoped_ptr<SharedQuadState> state(new SharedQuadState);
@@ -74,7 +77,8 @@ scoped_ptr<SharedQuadState> CreateSharedQuadState() {
clip_rect,
is_clipped,
opacity,
- blend_mode);
+ blend_mode,
+ sorting_context_id);
return state.Pass();
}
diff --git a/cc/quads/render_pass_unittest.cc b/cc/quads/render_pass_unittest.cc
index 7f723a4..59af62d 100644
--- a/cc/quads/render_pass_unittest.cc
+++ b/cc/quads/render_pass_unittest.cc
@@ -86,7 +86,8 @@ TEST(RenderPassTest, CopyShouldBeIdenticalExceptIdAndQuads) {
gfx::Rect(),
false,
1,
- SkXfermode::kSrcOver_Mode);
+ SkXfermode::kSrcOver_Mode,
+ 0);
scoped_ptr<CheckerboardDrawQuad> checkerboard_quad =
CheckerboardDrawQuad::Create();
@@ -136,7 +137,8 @@ TEST(RenderPassTest, CopyAllShouldBeIdentical) {
gfx::Rect(),
false,
1,
- SkXfermode::kSrcOver_Mode);
+ SkXfermode::kSrcOver_Mode,
+ 0);
scoped_ptr<CheckerboardDrawQuad> checkerboard_quad1 =
CheckerboardDrawQuad::Create();
@@ -162,7 +164,8 @@ TEST(RenderPassTest, CopyAllShouldBeIdentical) {
gfx::Rect(),
false,
1,
- SkXfermode::kSrcOver_Mode);
+ SkXfermode::kSrcOver_Mode,
+ 0);
scoped_ptr<CheckerboardDrawQuad> checkerboard_quad3 =
CheckerboardDrawQuad::Create();
@@ -203,7 +206,8 @@ TEST(RenderPassTest, CopyAllShouldBeIdentical) {
gfx::Rect(),
false,
1,
- SkXfermode::kSrcOver_Mode);
+ SkXfermode::kSrcOver_Mode,
+ 0);
scoped_ptr<CheckerboardDrawQuad> contrib_quad =
CheckerboardDrawQuad::Create();
@@ -262,7 +266,8 @@ TEST(RenderPassTest, CopyAllWithCulledQuads) {
gfx::Rect(),
false,
1,
- SkXfermode::kSrcOver_Mode);
+ SkXfermode::kSrcOver_Mode,
+ 0);
scoped_ptr<CheckerboardDrawQuad> checkerboard_quad1 =
CheckerboardDrawQuad::Create();
@@ -280,7 +285,8 @@ TEST(RenderPassTest, CopyAllWithCulledQuads) {
gfx::Rect(),
false,
1,
- SkXfermode::kSrcOver_Mode);
+ SkXfermode::kSrcOver_Mode,
+ 0);
// A second shared state with no quads.
SharedQuadState* shared_state3 = pass->CreateAndAppendSharedQuadState();
@@ -290,7 +296,8 @@ TEST(RenderPassTest, CopyAllWithCulledQuads) {
gfx::Rect(),
false,
1,
- SkXfermode::kSrcOver_Mode);
+ SkXfermode::kSrcOver_Mode,
+ 0);
// A last shared state with a quad again.
SharedQuadState* shared_state4 = pass->CreateAndAppendSharedQuadState();
@@ -300,7 +307,8 @@ TEST(RenderPassTest, CopyAllWithCulledQuads) {
gfx::Rect(),
false,
1,
- SkXfermode::kSrcOver_Mode);
+ SkXfermode::kSrcOver_Mode,
+ 0);
scoped_ptr<CheckerboardDrawQuad> checkerboard_quad2 =
CheckerboardDrawQuad::Create();
diff --git a/cc/quads/shared_quad_state.cc b/cc/quads/shared_quad_state.cc
index 444d330..57959e3 100644
--- a/cc/quads/shared_quad_state.cc
+++ b/cc/quads/shared_quad_state.cc
@@ -11,7 +11,11 @@
namespace cc {
SharedQuadState::SharedQuadState()
- : is_clipped(false), opacity(0.f), blend_mode(SkXfermode::kSrcOver_Mode) {}
+ : is_clipped(false),
+ opacity(0.f),
+ blend_mode(SkXfermode::kSrcOver_Mode),
+ sorting_context_id(0) {
+}
SharedQuadState::~SharedQuadState() {
TRACE_EVENT_OBJECT_DELETED_WITH_ID(
@@ -29,7 +33,8 @@ void SharedQuadState::SetAll(const gfx::Transform& content_to_target_transform,
const gfx::Rect& clip_rect,
bool is_clipped,
float opacity,
- SkXfermode::Mode blend_mode) {
+ SkXfermode::Mode blend_mode,
+ int sorting_context_id) {
this->content_to_target_transform = content_to_target_transform;
this->content_bounds = content_bounds;
this->visible_content_rect = visible_content_rect;
@@ -37,6 +42,7 @@ void SharedQuadState::SetAll(const gfx::Transform& content_to_target_transform,
this->is_clipped = is_clipped;
this->opacity = opacity;
this->blend_mode = blend_mode;
+ this->sorting_context_id = sorting_context_id;
}
scoped_ptr<base::Value> SharedQuadState::AsValue() const {
diff --git a/cc/quads/shared_quad_state.h b/cc/quads/shared_quad_state.h
index d0e2afb..30a1e25 100644
--- a/cc/quads/shared_quad_state.h
+++ b/cc/quads/shared_quad_state.h
@@ -35,7 +35,8 @@ class CC_EXPORT SharedQuadState {
const gfx::Rect& clip_rect,
bool is_clipped,
float opacity,
- SkXfermode::Mode blend_mode);
+ SkXfermode::Mode blend_mode,
+ int sorting_context_id);
scoped_ptr<base::Value> AsValue() const;
// Transforms from quad's original content space to its target content space.
@@ -49,6 +50,7 @@ class CC_EXPORT SharedQuadState {
bool is_clipped;
float opacity;
SkXfermode::Mode blend_mode;
+ int sorting_context_id;
};
} // namespace cc