Commit 0463af04 authored by piman@chromium.org's avatar piman@chromium.org

Don't iterate over a 0 mask resource in RenderPassDrawQuad

A 0 mask resource means we don't use a mask, it's a valid value. Don't iterate
over it, because we never want to send 0 to the parent, nor do we want to look
up 0 in the child->parent map.

BUG=None

Review URL: https://codereview.chromium.org/14167007

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@194689 0039d316-1c4b-4281-b951-d872f2087c98
parent 76f08ac8
...@@ -770,6 +770,9 @@ TEST_F(DrawQuadIteratorTest, RenderPassDrawQuad) { ...@@ -770,6 +770,9 @@ TEST_F(DrawQuadIteratorTest, RenderPassDrawQuad) {
EXPECT_EQ(mask_resource_id, quad_new->mask_resource_id); EXPECT_EQ(mask_resource_id, quad_new->mask_resource_id);
EXPECT_EQ(1, IterateAndCount(quad_new.get())); EXPECT_EQ(1, IterateAndCount(quad_new.get()));
EXPECT_EQ(mask_resource_id + 1, quad_new->mask_resource_id); EXPECT_EQ(mask_resource_id + 1, quad_new->mask_resource_id);
quad_new->mask_resource_id = 0;
EXPECT_EQ(0, IterateAndCount(quad_new.get()));
EXPECT_EQ(0u, quad_new->mask_resource_id);
} }
TEST_F(DrawQuadIteratorTest, SolidColorDrawQuad) { TEST_F(DrawQuadIteratorTest, SolidColorDrawQuad) {
......
...@@ -83,7 +83,8 @@ void RenderPassDrawQuad::SetAll( ...@@ -83,7 +83,8 @@ void RenderPassDrawQuad::SetAll(
void RenderPassDrawQuad::IterateResources( void RenderPassDrawQuad::IterateResources(
const ResourceIteratorCallback& callback) { const ResourceIteratorCallback& callback) {
mask_resource_id = callback.Run(mask_resource_id); if (mask_resource_id)
mask_resource_id = callback.Run(mask_resource_id);
} }
const RenderPassDrawQuad* RenderPassDrawQuad::MaterialCast( const RenderPassDrawQuad* RenderPassDrawQuad::MaterialCast(
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment