summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cc/layers/delegated_frame_provider_unittest.cc1
-rw-r--r--cc/layers/delegated_renderer_layer_impl.cc7
-rw-r--r--cc/layers/delegated_renderer_layer_impl_unittest.cc102
-rw-r--r--cc/layers/heads_up_display_layer_impl.cc2
-rw-r--r--cc/layers/io_surface_layer_impl.cc2
-rw-r--r--cc/layers/layer_impl.cc6
-rw-r--r--cc/layers/nine_patch_layer_impl.cc9
-rw-r--r--cc/layers/painted_scrollbar_layer_impl.cc4
-rw-r--r--cc/layers/picture_layer_impl.cc22
-rw-r--r--cc/layers/render_surface_impl.cc7
-rw-r--r--cc/layers/solid_color_layer_impl.cc16
-rw-r--r--cc/layers/solid_color_scrollbar_layer_impl.cc6
-rw-r--r--cc/layers/surface_layer_impl.cc3
-rw-r--r--cc/layers/texture_layer_impl.cc2
-rw-r--r--cc/layers/tiled_layer_impl.cc12
-rw-r--r--cc/layers/ui_resource_layer_impl.cc10
-rw-r--r--cc/layers/video_layer_impl.cc24
-rw-r--r--cc/output/renderer_pixeltest.cc325
-rw-r--r--cc/output/software_renderer_unittest.cc8
-rw-r--r--cc/quads/checkerboard_draw_quad.cc2
-rw-r--r--cc/quads/checkerboard_draw_quad.h1
-rw-r--r--cc/quads/content_draw_quad_base.cc2
-rw-r--r--cc/quads/content_draw_quad_base.h1
-rw-r--r--cc/quads/debug_border_draw_quad.cc2
-rw-r--r--cc/quads/debug_border_draw_quad.h1
-rw-r--r--cc/quads/draw_quad_unittest.cc103
-rw-r--r--cc/quads/io_surface_draw_quad.cc2
-rw-r--r--cc/quads/io_surface_draw_quad.h1
-rw-r--r--cc/quads/picture_draw_quad.cc18
-rw-r--r--cc/quads/picture_draw_quad.h1
-rw-r--r--cc/quads/render_pass_draw_quad.cc2
-rw-r--r--cc/quads/render_pass_draw_quad.h1
-rw-r--r--cc/quads/render_pass_unittest.cc45
-rw-r--r--cc/quads/solid_color_draw_quad.cc2
-rw-r--r--cc/quads/solid_color_draw_quad.h1
-rw-r--r--cc/quads/stream_video_draw_quad.cc2
-rw-r--r--cc/quads/stream_video_draw_quad.h1
-rw-r--r--cc/quads/surface_draw_quad.cc11
-rw-r--r--cc/quads/surface_draw_quad.h9
-rw-r--r--cc/quads/texture_draw_quad.cc5
-rw-r--r--cc/quads/texture_draw_quad.h1
-rw-r--r--cc/quads/tile_draw_quad.cc10
-rw-r--r--cc/quads/tile_draw_quad.h1
-rw-r--r--cc/quads/yuv_video_draw_quad.cc2
-rw-r--r--cc/quads/yuv_video_draw_quad.h1
-rw-r--r--cc/surfaces/surface_aggregator_test_helpers.cc7
-rw-r--r--cc/surfaces/surface_aggregator_unittest.cc4
-rw-r--r--cc/surfaces/surfaces_pixeltest.cc10
-rw-r--r--cc/test/render_pass_test_common.cc27
-rw-r--r--cc/test/render_pass_test_utils.cc28
-rw-r--r--cc/trees/layer_tree_host_impl.cc13
-rw-r--r--cc/trees/layer_tree_host_impl_unittest.cc6
-rw-r--r--cc/trees/layer_tree_host_unittest_delegated.cc6
-rw-r--r--cc/trees/quad_culler.cc7
-rw-r--r--cc/trees/quad_culler_unittest.cc10
55 files changed, 600 insertions, 314 deletions
diff --git a/cc/layers/delegated_frame_provider_unittest.cc b/cc/layers/delegated_frame_provider_unittest.cc
index f29488d..a8e1683 100644
--- a/cc/layers/delegated_frame_provider_unittest.cc
+++ b/cc/layers/delegated_frame_provider_unittest.cc
@@ -50,6 +50,7 @@ class DelegatedFrameProviderTest
quad->SetNew(sqs.get(),
gfx::Rect(0, 0, 10, 10),
gfx::Rect(0, 0, 10, 10),
+ gfx::Rect(0, 0, 10, 10),
resource_id,
false,
gfx::PointF(0.f, 0.f),
diff --git a/cc/layers/delegated_renderer_layer_impl.cc b/cc/layers/delegated_renderer_layer_impl.cc
index fc3c448..31b5292 100644
--- a/cc/layers/delegated_renderer_layer_impl.cc
+++ b/cc/layers/delegated_renderer_layer_impl.cc
@@ -364,12 +364,14 @@ void DelegatedRendererLayerImpl::AppendRainbowDebugBorder(
if (!top.IsEmpty()) {
scoped_ptr<SolidColorDrawQuad> top_quad = SolidColorDrawQuad::Create();
- top_quad->SetNew(shared_quad_state, top, colors[i % kNumColors], false);
+ top_quad->SetNew(
+ shared_quad_state, top, top, colors[i % kNumColors], false);
quad_sink->Append(top_quad.PassAs<DrawQuad>(), append_quads_data);
scoped_ptr<SolidColorDrawQuad> bottom_quad = SolidColorDrawQuad::Create();
bottom_quad->SetNew(shared_quad_state,
bottom,
+ bottom,
colors[kNumColors - 1 - (i % kNumColors)],
false);
quad_sink->Append(bottom_quad.PassAs<DrawQuad>(), append_quads_data);
@@ -378,13 +380,14 @@ void DelegatedRendererLayerImpl::AppendRainbowDebugBorder(
scoped_ptr<SolidColorDrawQuad> left_quad = SolidColorDrawQuad::Create();
left_quad->SetNew(shared_quad_state,
left,
+ left,
colors[kNumColors - 1 - (i % kNumColors)],
false);
quad_sink->Append(left_quad.PassAs<DrawQuad>(), append_quads_data);
scoped_ptr<SolidColorDrawQuad> right_quad = SolidColorDrawQuad::Create();
right_quad->SetNew(
- shared_quad_state, right, colors[i % kNumColors], false);
+ shared_quad_state, right, right, colors[i % kNumColors], false);
quad_sink->Append(right_quad.PassAs<DrawQuad>(), append_quads_data);
}
}
diff --git a/cc/layers/delegated_renderer_layer_impl_unittest.cc b/cc/layers/delegated_renderer_layer_impl_unittest.cc
index 5b6a890..f398894 100644
--- a/cc/layers/delegated_renderer_layer_impl_unittest.cc
+++ b/cc/layers/delegated_renderer_layer_impl_unittest.cc
@@ -552,11 +552,19 @@ class DelegatedRendererLayerImplTestTransform
scoped_ptr<SolidColorDrawQuad> color_quad;
color_quad = SolidColorDrawQuad::Create();
- color_quad->SetNew(shared_quad_state, gfx::Rect(20, 20, 3, 7), 1u, false);
+ color_quad->SetNew(shared_quad_state,
+ gfx::Rect(20, 20, 3, 7),
+ gfx::Rect(20, 20, 3, 7),
+ 1u,
+ false);
quad_sink.Append(color_quad.PassAs<DrawQuad>(), &data);
color_quad = SolidColorDrawQuad::Create();
- color_quad->SetNew(shared_quad_state, gfx::Rect(23, 20, 4, 7), 1u, false);
+ color_quad->SetNew(shared_quad_state,
+ gfx::Rect(23, 20, 4, 7),
+ gfx::Rect(23, 20, 4, 7),
+ 1u,
+ false);
quad_sink.Append(color_quad.PassAs<DrawQuad>(), &data);
}
@@ -589,31 +597,48 @@ class DelegatedRendererLayerImplTestTransform
RenderPassDrawQuad::Create();
render_pass_quad->SetNew(
shared_quad_state,
- gfx::Rect(5, 5, 7, 7), // rect
+ gfx::Rect(5, 5, 7, 7), // quad_rect
+ gfx::Rect(5, 5, 7, 7), // visible_rect
RenderPass::Id(10, 7), // render_pass_id
- false, // is_replica
- 0, // mask_resource_id
- child_pass_rect, // contents_changed_since_last_frame
- gfx::RectF(), // mask_uv_rect
- FilterOperations(), // filters
- FilterOperations()); // background_filters
+ false, // is_replica
+ 0, // mask_resource_id
+ child_pass_rect, // contents_changed_since_last_frame
+ gfx::RectF(), // mask_uv_rect
+ FilterOperations(), // filters
+ FilterOperations()); // background_filters
quad_sink.Append(render_pass_quad.PassAs<DrawQuad>(), &data);
scoped_ptr<SolidColorDrawQuad> color_quad;
color_quad = SolidColorDrawQuad::Create();
- color_quad->SetNew(shared_quad_state, gfx::Rect(0, 0, 10, 10), 1u, false);
+ color_quad->SetNew(shared_quad_state,
+ gfx::Rect(0, 0, 10, 10),
+ gfx::Rect(0, 0, 10, 10),
+ 1u,
+ false);
quad_sink.Append(color_quad.PassAs<DrawQuad>(), &data);
color_quad = SolidColorDrawQuad::Create();
- color_quad->SetNew(shared_quad_state, gfx::Rect(0, 10, 10, 10), 2u, false);
+ color_quad->SetNew(shared_quad_state,
+ gfx::Rect(0, 10, 10, 10),
+ gfx::Rect(0, 10, 10, 10),
+ 2u,
+ false);
quad_sink.Append(color_quad.PassAs<DrawQuad>(), &data);
color_quad = SolidColorDrawQuad::Create();
- color_quad->SetNew(shared_quad_state, gfx::Rect(10, 0, 10, 10), 3u, false);
+ color_quad->SetNew(shared_quad_state,
+ gfx::Rect(10, 0, 10, 10),
+ gfx::Rect(10, 0, 10, 10),
+ 3u,
+ false);
quad_sink.Append(color_quad.PassAs<DrawQuad>(), &data);
color_quad = SolidColorDrawQuad::Create();
- color_quad->SetNew(shared_quad_state, gfx::Rect(10, 10, 10, 10), 4u, false);
+ color_quad->SetNew(shared_quad_state,
+ gfx::Rect(10, 10, 10, 10),
+ gfx::Rect(10, 10, 10, 10),
+ 4u,
+ false);
quad_sink.Append(color_quad.PassAs<DrawQuad>(), &data);
delegated_renderer_layer->SetFrameDataForRenderPasses(
@@ -960,11 +985,19 @@ class DelegatedRendererLayerImplTestClip
scoped_ptr<SolidColorDrawQuad> color_quad;
color_quad = SolidColorDrawQuad::Create();
- color_quad->SetNew(shared_quad_state, gfx::Rect(20, 20, 3, 7), 1u, false);
+ color_quad->SetNew(shared_quad_state,
+ gfx::Rect(20, 20, 3, 7),
+ gfx::Rect(20, 20, 3, 7),
+ 1u,
+ false);
quad_sink.Append(color_quad.PassAs<DrawQuad>(), &data);
color_quad = SolidColorDrawQuad::Create();
- color_quad->SetNew(shared_quad_state, gfx::Rect(23, 20, 4, 7), 1u, false);
+ color_quad->SetNew(shared_quad_state,
+ gfx::Rect(23, 20, 4, 7),
+ gfx::Rect(23, 20, 4, 7),
+ 1u,
+ false);
quad_sink.Append(color_quad.PassAs<DrawQuad>(), &data);
}
@@ -995,31 +1028,48 @@ class DelegatedRendererLayerImplTestClip
RenderPassDrawQuad::Create();
render_pass_quad->SetNew(
shared_quad_state,
- gfx::Rect(5, 5, 7, 7), // rect
+ gfx::Rect(5, 5, 7, 7), // quad_rect
+ gfx::Rect(5, 5, 7, 7), // visible_quad_rect
RenderPass::Id(10, 7), // render_pass_id
- false, // is_replica
- 0, // mask_resource_id
- child_pass_rect, // contents_changed_since_last_frame
- gfx::RectF(), // mask_uv_rect
- FilterOperations(), // filters
- FilterOperations()); // background_filters
+ false, // is_replica
+ 0, // mask_resource_id
+ child_pass_rect, // contents_changed_since_last_frame
+ gfx::RectF(), // mask_uv_rect
+ FilterOperations(), // filters
+ FilterOperations()); // background_filters
quad_sink.Append(render_pass_quad.PassAs<DrawQuad>(), &data);
scoped_ptr<SolidColorDrawQuad> color_quad;
color_quad = SolidColorDrawQuad::Create();
- color_quad->SetNew(shared_quad_state, gfx::Rect(0, 0, 10, 10), 1u, false);
+ color_quad->SetNew(shared_quad_state,
+ gfx::Rect(0, 0, 10, 10),
+ gfx::Rect(0, 0, 10, 10),
+ 1u,
+ false);
quad_sink.Append(color_quad.PassAs<DrawQuad>(), &data);
color_quad = SolidColorDrawQuad::Create();
- color_quad->SetNew(shared_quad_state, gfx::Rect(0, 10, 10, 10), 2u, false);
+ color_quad->SetNew(shared_quad_state,
+ gfx::Rect(0, 10, 10, 10),
+ gfx::Rect(0, 10, 10, 10),
+ 2u,
+ false);
quad_sink.Append(color_quad.PassAs<DrawQuad>(), &data);
color_quad = SolidColorDrawQuad::Create();
- color_quad->SetNew(shared_quad_state, gfx::Rect(10, 0, 10, 10), 3u, false);
+ color_quad->SetNew(shared_quad_state,
+ gfx::Rect(10, 0, 10, 10),
+ gfx::Rect(10, 0, 10, 10),
+ 3u,
+ false);
quad_sink.Append(color_quad.PassAs<DrawQuad>(), &data);
color_quad = SolidColorDrawQuad::Create();
- color_quad->SetNew(shared_quad_state, gfx::Rect(10, 10, 10, 10), 4u, false);
+ color_quad->SetNew(shared_quad_state,
+ gfx::Rect(10, 10, 10, 10),
+ gfx::Rect(10, 10, 10, 10),
+ 4u,
+ false);
quad_sink.Append(color_quad.PassAs<DrawQuad>(), &data);
delegated_renderer_layer->SetFrameDataForRenderPasses(
diff --git a/cc/layers/heads_up_display_layer_impl.cc b/cc/layers/heads_up_display_layer_impl.cc
index be5af99..e98880a 100644
--- a/cc/layers/heads_up_display_layer_impl.cc
+++ b/cc/layers/heads_up_display_layer_impl.cc
@@ -115,6 +115,7 @@ void HeadsUpDisplayLayerImpl::AppendQuads(QuadSink* quad_sink,
gfx::Rect quad_rect(content_bounds());
gfx::Rect opaque_rect(contents_opaque() ? quad_rect : gfx::Rect());
+ gfx::Rect visible_quad_rect(quad_rect);
bool premultiplied_alpha = true;
gfx::PointF uv_top_left(0.f, 0.f);
gfx::PointF uv_bottom_right(1.f, 1.f);
@@ -124,6 +125,7 @@ void HeadsUpDisplayLayerImpl::AppendQuads(QuadSink* quad_sink,
quad->SetNew(shared_quad_state,
quad_rect,
opaque_rect,
+ visible_quad_rect,
hud_resource_->id(),
premultiplied_alpha,
uv_top_left,
diff --git a/cc/layers/io_surface_layer_impl.cc b/cc/layers/io_surface_layer_impl.cc
index b8d6919..8779086 100644
--- a/cc/layers/io_surface_layer_impl.cc
+++ b/cc/layers/io_surface_layer_impl.cc
@@ -113,10 +113,12 @@ void IOSurfaceLayerImpl::AppendQuads(QuadSink* quad_sink,
gfx::Rect quad_rect(content_bounds());
gfx::Rect opaque_rect(contents_opaque() ? quad_rect : gfx::Rect());
+ gfx::Rect visible_quad_rect(quad_rect);
scoped_ptr<IOSurfaceDrawQuad> quad = IOSurfaceDrawQuad::Create();
quad->SetNew(shared_quad_state,
quad_rect,
opaque_rect,
+ visible_quad_rect,
io_surface_size_,
io_surface_resource_id_,
IOSurfaceDrawQuad::FLIPPED);
diff --git a/cc/layers/layer_impl.cc b/cc/layers/layer_impl.cc
index 05f3e1b..46fa012 100644
--- a/cc/layers/layer_impl.cc
+++ b/cc/layers/layer_impl.cc
@@ -304,10 +304,12 @@ void LayerImpl::AppendDebugBorderQuad(QuadSink* quad_sink,
if (!ShowDebugBorders())
return;
- gfx::Rect content_rect(content_bounds());
+ gfx::Rect quad_rect(content_bounds());
+ gfx::Rect visible_quad_rect(quad_rect);
scoped_ptr<DebugBorderDrawQuad> debug_border_quad =
DebugBorderDrawQuad::Create();
- debug_border_quad->SetNew(shared_quad_state, content_rect, color, width);
+ debug_border_quad->SetNew(
+ shared_quad_state, quad_rect, visible_quad_rect, color, width);
quad_sink->Append(debug_border_quad.PassAs<DrawQuad>(), append_quads_data);
}
diff --git a/cc/layers/nine_patch_layer_impl.cc b/cc/layers/nine_patch_layer_impl.cc
index a053d5e1..4d36446 100644
--- a/cc/layers/nine_patch_layer_impl.cc
+++ b/cc/layers/nine_patch_layer_impl.cc
@@ -224,6 +224,7 @@ void NinePatchLayerImpl::AppendQuads(QuadSink* quad_sink,
quad->SetNew(shared_quad_state,
layer_top_left,
opaque_rect,
+ layer_top_left,
resource,
premultiplied_alpha,
uv_top_left.origin(),
@@ -237,6 +238,7 @@ void NinePatchLayerImpl::AppendQuads(QuadSink* quad_sink,
quad->SetNew(shared_quad_state,
layer_top_right,
opaque_rect,
+ layer_top_right,
resource,
premultiplied_alpha,
uv_top_right.origin(),
@@ -250,6 +252,7 @@ void NinePatchLayerImpl::AppendQuads(QuadSink* quad_sink,
quad->SetNew(shared_quad_state,
layer_bottom_left,
opaque_rect,
+ layer_bottom_left,
resource,
premultiplied_alpha,
uv_bottom_left.origin(),
@@ -263,6 +266,7 @@ void NinePatchLayerImpl::AppendQuads(QuadSink* quad_sink,
quad->SetNew(shared_quad_state,
layer_bottom_right,
opaque_rect,
+ layer_bottom_right,
resource,
premultiplied_alpha,
uv_bottom_right.origin(),
@@ -276,6 +280,7 @@ void NinePatchLayerImpl::AppendQuads(QuadSink* quad_sink,
quad->SetNew(shared_quad_state,
layer_top,
opaque_rect,
+ layer_top,
resource,
premultiplied_alpha,
uv_top.origin(),
@@ -289,6 +294,7 @@ void NinePatchLayerImpl::AppendQuads(QuadSink* quad_sink,
quad->SetNew(shared_quad_state,
layer_left,
opaque_rect,
+ layer_left,
resource,
premultiplied_alpha,
uv_left.origin(),
@@ -302,6 +308,7 @@ void NinePatchLayerImpl::AppendQuads(QuadSink* quad_sink,
quad->SetNew(shared_quad_state,
layer_right,
opaque_rect,
+ layer_right,
resource,
premultiplied_alpha,
uv_right.origin(),
@@ -315,6 +322,7 @@ void NinePatchLayerImpl::AppendQuads(QuadSink* quad_sink,
quad->SetNew(shared_quad_state,
layer_bottom,
opaque_rect,
+ layer_bottom,
resource,
premultiplied_alpha,
uv_bottom.origin(),
@@ -329,6 +337,7 @@ void NinePatchLayerImpl::AppendQuads(QuadSink* quad_sink,
quad->SetNew(shared_quad_state,
layer_center,
opaque_rect,
+ layer_center,
resource,
premultiplied_alpha,
uv_center.origin(),
diff --git a/cc/layers/painted_scrollbar_layer_impl.cc b/cc/layers/painted_scrollbar_layer_impl.cc
index 2af722d..bddd7e1 100644
--- a/cc/layers/painted_scrollbar_layer_impl.cc
+++ b/cc/layers/painted_scrollbar_layer_impl.cc
@@ -83,6 +83,7 @@ void PaintedScrollbarLayerImpl::AppendQuads(
AppendDebugBorderQuad(quad_sink, shared_quad_state, append_quads_data);
gfx::Rect thumb_quad_rect = ComputeThumbQuadRect();
+ gfx::Rect visible_thumb_quad_rect = thumb_quad_rect;
ResourceProvider::ResourceId thumb_resource_id =
layer_tree_impl()->ResourceIdForUIResource(thumb_ui_resource_id_);
@@ -96,6 +97,7 @@ void PaintedScrollbarLayerImpl::AppendQuads(
quad->SetNew(shared_quad_state,
thumb_quad_rect,
opaque_rect,
+ visible_thumb_quad_rect,
thumb_resource_id,
premultipled_alpha,
uv_top_left,
@@ -107,6 +109,7 @@ void PaintedScrollbarLayerImpl::AppendQuads(
}
gfx::Rect track_quad_rect = content_bounds_rect;
+ gfx::Rect visible_track_quad_rect = track_quad_rect;
if (track_resource_id && !track_quad_rect.IsEmpty()) {
gfx::Rect opaque_rect(contents_opaque() ? track_quad_rect : gfx::Rect());
const float opacity[] = {1.0f, 1.0f, 1.0f, 1.0f};
@@ -114,6 +117,7 @@ void PaintedScrollbarLayerImpl::AppendQuads(
quad->SetNew(shared_quad_state,
track_quad_rect,
opaque_rect,
+ visible_track_quad_rect,
track_resource_id,
premultipled_alpha,
uv_top_left,
diff --git a/cc/layers/picture_layer_impl.cc b/cc/layers/picture_layer_impl.cc
index fc8647c..f2c3c3e 100644
--- a/cc/layers/picture_layer_impl.cc
+++ b/cc/layers/picture_layer_impl.cc
@@ -139,6 +139,7 @@ void PictureLayerImpl::AppendQuads(QuadSink* quad_sink,
gfx::Rect geometry_rect = rect;
gfx::Rect opaque_rect = contents_opaque() ? geometry_rect : gfx::Rect();
+ gfx::Rect visible_geometry_rect = geometry_rect;
gfx::Size texture_size = rect.size();
gfx::RectF texture_rect = gfx::RectF(texture_size);
gfx::Rect quad_content_rect = rect;
@@ -148,6 +149,7 @@ void PictureLayerImpl::AppendQuads(QuadSink* quad_sink,
quad->SetNew(shared_quad_state,
geometry_rect,
opaque_rect,
+ visible_geometry_rect,
texture_rect,
texture_size,
RGBA_8888,
@@ -198,7 +200,12 @@ void PictureLayerImpl::AppendQuads(QuadSink* quad_sink,
scoped_ptr<DebugBorderDrawQuad> debug_border_quad =
DebugBorderDrawQuad::Create();
gfx::Rect geometry_rect = iter.geometry_rect();
- debug_border_quad->SetNew(shared_quad_state, geometry_rect, color, width);
+ gfx::Rect visible_geometry_rect = geometry_rect;
+ debug_border_quad->SetNew(shared_quad_state,
+ geometry_rect,
+ visible_geometry_rect,
+ color,
+ width);
quad_sink->Append(debug_border_quad.PassAs<DrawQuad>(),
append_quads_data);
}
@@ -213,18 +220,24 @@ void PictureLayerImpl::AppendQuads(QuadSink* quad_sink,
iter;
++iter) {
gfx::Rect geometry_rect = iter.geometry_rect();
+ gfx::Rect visible_geometry_rect = geometry_rect;
if (!*iter || !iter->IsReadyToDraw()) {
if (DrawCheckerboardForMissingTiles()) {
// TODO(enne): Figure out how to show debug "invalidated checker" color
scoped_ptr<CheckerboardDrawQuad> quad = CheckerboardDrawQuad::Create();
SkColor color = DebugColors::DefaultCheckerboardColor();
- quad->SetNew(shared_quad_state, geometry_rect, color);
+ quad->SetNew(
+ shared_quad_state, geometry_rect, visible_geometry_rect, color);
if (quad_sink->Append(quad.PassAs<DrawQuad>(), append_quads_data))
append_quads_data->num_missing_tiles++;
} else {
SkColor color = SafeOpaqueBackgroundColor();
scoped_ptr<SolidColorDrawQuad> quad = SolidColorDrawQuad::Create();
- quad->SetNew(shared_quad_state, geometry_rect, color, false);
+ quad->SetNew(shared_quad_state,
+ geometry_rect,
+ visible_geometry_rect,
+ color,
+ false);
if (quad_sink->Append(quad.PassAs<DrawQuad>(), append_quads_data))
append_quads_data->num_missing_tiles++;
}
@@ -249,6 +262,7 @@ void PictureLayerImpl::AppendQuads(QuadSink* quad_sink,
quad->SetNew(shared_quad_state,
geometry_rect,
opaque_rect,
+ visible_geometry_rect,
tile_version.get_resource_id(),
texture_rect,
iter.texture_size(),
@@ -269,6 +283,7 @@ void PictureLayerImpl::AppendQuads(QuadSink* quad_sink,
quad->SetNew(shared_quad_state,
geometry_rect,
opaque_rect,
+ visible_geometry_rect,
texture_rect,
iter.texture_size(),
format,
@@ -282,6 +297,7 @@ void PictureLayerImpl::AppendQuads(QuadSink* quad_sink,
scoped_ptr<SolidColorDrawQuad> quad = SolidColorDrawQuad::Create();
quad->SetNew(shared_quad_state,
geometry_rect,
+ visible_geometry_rect,
tile_version.get_solid_color(),
false);
draw_quad = quad.PassAs<DrawQuad>();
diff --git a/cc/layers/render_surface_impl.cc b/cc/layers/render_surface_impl.cc
index 6c0ec34..a87d692 100644
--- a/cc/layers/render_surface_impl.cc
+++ b/cc/layers/render_surface_impl.cc
@@ -154,6 +154,8 @@ void RenderSurfaceImpl::AppendQuads(QuadSink* quad_sink,
owning_layer_->blend_mode());
if (owning_layer_->ShowDebugBorders()) {
+ gfx::Rect quad_rect = content_rect_;
+ gfx::Rect visible_quad_rect = quad_rect;
SkColor color = for_replica ?
DebugColors::SurfaceReplicaBorderColor() :
DebugColors::SurfaceBorderColor();
@@ -164,7 +166,8 @@ void RenderSurfaceImpl::AppendQuads(QuadSink* quad_sink,
owning_layer_->layer_tree_impl());
scoped_ptr<DebugBorderDrawQuad> debug_border_quad =
DebugBorderDrawQuad::Create();
- debug_border_quad->SetNew(shared_quad_state, content_rect_, color, width);
+ debug_border_quad->SetNew(
+ shared_quad_state, quad_rect, visible_quad_rect, color, width);
quad_sink->Append(debug_border_quad.PassAs<DrawQuad>(), append_quads_data);
}
@@ -209,6 +212,7 @@ void RenderSurfaceImpl::AppendQuads(QuadSink* quad_sink,
uv_scale_y);
}
+ gfx::Rect visible_content_rect(content_rect_);
ResourceProvider::ResourceId mask_resource_id =
mask_layer ? mask_layer->ContentsResourceId() : 0;
gfx::Rect contents_changed_since_last_frame =
@@ -217,6 +221,7 @@ void RenderSurfaceImpl::AppendQuads(QuadSink* quad_sink,
scoped_ptr<RenderPassDrawQuad> quad = RenderPassDrawQuad::Create();
quad->SetNew(shared_quad_state,
content_rect_,
+ visible_content_rect,
render_pass_id,
for_replica,
mask_resource_id,
diff --git a/cc/layers/solid_color_layer_impl.cc b/cc/layers/solid_color_layer_impl.cc
index faa967b..b5514e7 100644
--- a/cc/layers/solid_color_layer_impl.cc
+++ b/cc/layers/solid_color_layer_impl.cc
@@ -34,13 +34,17 @@ void SolidColorLayerImpl::AppendQuads(QuadSink* quad_sink,
int height = content_bounds().height();
for (int x = 0; x < width; x += tile_size_) {
for (int y = 0; y < height; y += tile_size_) {
- gfx::Rect solid_tile_rect(x,
- y,
- std::min(width - x, tile_size_),
- std::min(height - y, tile_size_));
+ gfx::Rect quad_rect(x,
+ y,
+ std::min(width - x, tile_size_),
+ std::min(height - y, tile_size_));
+ gfx::Rect visible_quad_rect(quad_rect);
scoped_ptr<SolidColorDrawQuad> quad = SolidColorDrawQuad::Create();
- quad->SetNew(
- shared_quad_state, solid_tile_rect, background_color(), false);
+ quad->SetNew(shared_quad_state,
+ quad_rect,
+ visible_quad_rect,
+ background_color(),
+ false);
quad_sink->Append(quad.PassAs<DrawQuad>(), append_quads_data);
}
}
diff --git a/cc/layers/solid_color_scrollbar_layer_impl.cc b/cc/layers/solid_color_scrollbar_layer_impl.cc
index 0cfc853..027e122 100644
--- a/cc/layers/solid_color_scrollbar_layer_impl.cc
+++ b/cc/layers/solid_color_scrollbar_layer_impl.cc
@@ -91,14 +91,16 @@ bool SolidColorScrollbarLayerImpl::IsThumbResizable() const {
void SolidColorScrollbarLayerImpl::AppendQuads(QuadSink* quad_sink,
AppendQuadsData* append_quads_data) {
- gfx::Rect thumb_quad_rect = ComputeThumbQuadRect();
+ gfx::Rect thumb_quad_rect(ComputeThumbQuadRect());
+ gfx::Rect visible_quad_rect(thumb_quad_rect);
SharedQuadState* shared_quad_state =
quad_sink->UseSharedQuadState(CreateSharedQuadState());
AppendDebugBorderQuad(quad_sink, shared_quad_state, append_quads_data);
scoped_ptr<SolidColorDrawQuad> quad = SolidColorDrawQuad::Create();
- quad->SetNew(shared_quad_state, thumb_quad_rect, color_, false);
+ quad->SetNew(
+ shared_quad_state, thumb_quad_rect, visible_quad_rect, color_, false);
quad_sink->Append(quad.PassAs<DrawQuad>(), append_quads_data);
}
diff --git a/cc/layers/surface_layer_impl.cc b/cc/layers/surface_layer_impl.cc
index 6906f4e..1d7f735 100644
--- a/cc/layers/surface_layer_impl.cc
+++ b/cc/layers/surface_layer_impl.cc
@@ -46,7 +46,8 @@ void SurfaceLayerImpl::AppendQuads(QuadSink* quad_sink,
scoped_ptr<SurfaceDrawQuad> quad = SurfaceDrawQuad::Create();
gfx::Rect quad_rect(content_bounds());
- quad->SetNew(shared_quad_state, quad_rect, surface_id_);
+ gfx::Rect visible_quad_rect(quad_rect);
+ quad->SetNew(shared_quad_state, quad_rect, visible_quad_rect, surface_id_);
quad_sink->Append(quad.PassAs<DrawQuad>(), append_quads_data);
}
diff --git a/cc/layers/texture_layer_impl.cc b/cc/layers/texture_layer_impl.cc
index cafe542..5deb73a 100644
--- a/cc/layers/texture_layer_impl.cc
+++ b/cc/layers/texture_layer_impl.cc
@@ -172,12 +172,14 @@ void TextureLayerImpl::AppendQuads(QuadSink* quad_sink,
gfx::Rect quad_rect(content_bounds());
gfx::Rect opaque_rect = opaque ? quad_rect : gfx::Rect();
+ gfx::Rect visible_quad_rect(quad_rect);
scoped_ptr<TextureDrawQuad> quad = TextureDrawQuad::Create();
ResourceProvider::ResourceId id =
valid_texture_copy_ ? texture_copy_->id() : external_texture_resource_;
quad->SetNew(shared_quad_state,
quad_rect,
opaque_rect,
+ visible_quad_rect,
id,
premultiplied_alpha_,
uv_top_left_,
diff --git a/cc/layers/tiled_layer_impl.cc b/cc/layers/tiled_layer_impl.cc
index d2767cf..cc58112 100644
--- a/cc/layers/tiled_layer_impl.cc
+++ b/cc/layers/tiled_layer_impl.cc
@@ -170,6 +170,7 @@ void TiledLayerImpl::AppendQuads(QuadSink* quad_sink,
for (int i = left; i <= right; ++i) {
DrawableTile* tile = TileAt(i, j);
gfx::Rect tile_rect = tiler_->tile_bounds(i, j);
+ gfx::Rect visible_tile_rect = tile_rect;
SkColor border_color;
float border_width;
@@ -182,8 +183,11 @@ void TiledLayerImpl::AppendQuads(QuadSink* quad_sink,
}
scoped_ptr<DebugBorderDrawQuad> debug_border_quad =
DebugBorderDrawQuad::Create();
- debug_border_quad->SetNew(
- shared_quad_state, tile_rect, border_color, border_width);
+ debug_border_quad->SetNew(shared_quad_state,
+ tile_rect,
+ visible_tile_rect,
+ border_color,
+ border_width);
quad_sink->Append(debug_border_quad.PassAs<DrawQuad>(),
append_quads_data);
}
@@ -199,6 +203,7 @@ void TiledLayerImpl::AppendQuads(QuadSink* quad_sink,
gfx::Rect tile_rect = tiler_->tile_bounds(i, j);
gfx::Rect display_rect = tile_rect;
tile_rect.Intersect(content_rect);
+ gfx::Rect visible_tile_rect = tile_rect;
// Skip empty tiles.
if (tile_rect.IsEmpty())
@@ -217,7 +222,7 @@ void TiledLayerImpl::AppendQuads(QuadSink* quad_sink,
scoped_ptr<CheckerboardDrawQuad> checkerboard_quad =
CheckerboardDrawQuad::Create();
checkerboard_quad->SetNew(
- shared_quad_state, tile_rect, checker_color);
+ shared_quad_state, tile_rect, visible_tile_rect, checker_color);
if (quad_sink->Append(checkerboard_quad.PassAs<DrawQuad>(),
append_quads_data))
append_quads_data->num_missing_tiles++;
@@ -244,6 +249,7 @@ void TiledLayerImpl::AppendQuads(QuadSink* quad_sink,
quad->SetNew(shared_quad_state,
tile_rect,
tile_opaque_rect,
+ visible_tile_rect,
tile->resource_id(),
tex_coord_rect,
texture_size,
diff --git a/cc/layers/ui_resource_layer_impl.cc b/cc/layers/ui_resource_layer_impl.cc
index ad7fd2c..65b930c 100644
--- a/cc/layers/ui_resource_layer_impl.cc
+++ b/cc/layers/ui_resource_layer_impl.cc
@@ -111,17 +111,17 @@ void UIResourceLayerImpl::AppendQuads(QuadSink* quad_sink,
DCHECK(!bounds().IsEmpty());
- gfx::Rect quad_rect(bounds());
-
bool opaque = layer_tree_impl()->IsUIResourceOpaque(ui_resource_id_) ||
contents_opaque();
- gfx::Rect opaque_rect(opaque ? quad_rect : gfx::Rect());
- scoped_ptr<TextureDrawQuad> quad;
- quad = TextureDrawQuad::Create();
+ gfx::Rect quad_rect(bounds());
+ gfx::Rect opaque_rect(opaque ? quad_rect : gfx::Rect());
+ gfx::Rect visible_quad_rect(quad_rect);
+ scoped_ptr<TextureDrawQuad> quad = TextureDrawQuad::Create();
quad->SetNew(shared_quad_state,
quad_rect,
opaque_rect,
+ visible_quad_rect,
resource,
premultiplied_alpha,
uv_top_left_,
diff --git a/cc/layers/video_layer_impl.cc b/cc/layers/video_layer_impl.cc
index 9a772c5..20c8c44 100644
--- a/cc/layers/video_layer_impl.cc
+++ b/cc/layers/video_layer_impl.cc
@@ -134,6 +134,7 @@ void VideoLayerImpl::AppendQuads(QuadSink* quad_sink,
gfx::Rect quad_rect(content_bounds());
gfx::Rect opaque_rect(contents_opaque() ? quad_rect : gfx::Rect());
+ gfx::Rect visible_quad_rect(quad_rect);
gfx::Rect visible_rect = frame_->visible_rect();
gfx::Size coded_size = frame_->coded_size();
@@ -159,6 +160,7 @@ void VideoLayerImpl::AppendQuads(QuadSink* quad_sink,
texture_quad->SetNew(shared_quad_state,
quad_rect,
opaque_rect,
+ visible_quad_rect,
software_resources_[0],
premultiplied_alpha,
uv_top_left,
@@ -175,15 +177,16 @@ void VideoLayerImpl::AppendQuads(QuadSink* quad_sink,
break;
gfx::SizeF tex_scale(tex_width_scale, tex_height_scale);
scoped_ptr<YUVVideoDrawQuad> yuv_video_quad = YUVVideoDrawQuad::Create();
- yuv_video_quad->SetNew(shared_quad_state,
- quad_rect,
- opaque_rect,
- tex_scale,
- frame_resources_[0],
- frame_resources_[1],
- frame_resources_[2],
- frame_resources_.size() > 3 ?
- frame_resources_[3] : 0);
+ yuv_video_quad->SetNew(
+ shared_quad_state,
+ quad_rect,
+ opaque_rect,
+ visible_quad_rect,
+ tex_scale,
+ frame_resources_[0],
+ frame_resources_[1],
+ frame_resources_[2],
+ frame_resources_.size() > 3 ? frame_resources_[3] : 0);
quad_sink->Append(yuv_video_quad.PassAs<DrawQuad>(), append_quads_data);
break;
}
@@ -200,6 +203,7 @@ void VideoLayerImpl::AppendQuads(QuadSink* quad_sink,
texture_quad->SetNew(shared_quad_state,
quad_rect,
opaque_rect,
+ visible_quad_rect,
frame_resources_[0],
premultiplied_alpha,
uv_top_left,
@@ -222,6 +226,7 @@ void VideoLayerImpl::AppendQuads(QuadSink* quad_sink,
shared_quad_state,
quad_rect,
opaque_rect,
+ visible_quad_rect,
frame_resources_[0],
scale * provider_client_impl_->stream_texture_matrix());
quad_sink->Append(stream_video_quad.PassAs<DrawQuad>(),
@@ -238,6 +243,7 @@ void VideoLayerImpl::AppendQuads(QuadSink* quad_sink,
io_surface_quad->SetNew(shared_quad_state,
quad_rect,
opaque_rect,
+ visible_quad_rect,
visible_size,
frame_resources_[0],
IOSurfaceDrawQuad::UNFLIPPED);
diff --git a/cc/output/renderer_pixeltest.cc b/cc/output/renderer_pixeltest.cc
index 3157e48..d934d17 100644
--- a/cc/output/renderer_pixeltest.cc
+++ b/cc/output/renderer_pixeltest.cc
@@ -92,6 +92,7 @@ scoped_ptr<DrawQuad> CreateTestRenderPassDrawQuad(
scoped_ptr<RenderPassDrawQuad> quad = RenderPassDrawQuad::Create();
quad->SetNew(shared_state,
rect,
+ rect,
pass_id,
false, // is_replica
0, // mask_resource_id
@@ -136,6 +137,7 @@ scoped_ptr<TextureDrawQuad> CreateTestTextureDrawQuad(
quad->SetNew(shared_state,
rect,
gfx::Rect(),
+ rect,
resource,
premultiplied_alpha,
gfx::PointF(0.0f, 0.0f), // uv_top_left
@@ -205,7 +207,7 @@ TYPED_TEST(RendererPixelTest, SimpleGreenRect) {
CreateTestSharedQuadState(gfx::Transform(), rect);
scoped_ptr<SolidColorDrawQuad> color_quad = SolidColorDrawQuad::Create();
- color_quad->SetNew(shared_state.get(), rect, SK_ColorGREEN, false);
+ color_quad->SetNew(shared_state.get(), rect, rect, SK_ColorGREEN, false);
pass->quad_list.push_back(color_quad.PassAs<DrawQuad>());
@@ -231,7 +233,8 @@ TYPED_TEST(RendererPixelTest, SimpleGreenRect_NonRootRenderPass) {
CreateTestSharedQuadState(gfx::Transform(), small_rect);
scoped_ptr<SolidColorDrawQuad> color_quad = SolidColorDrawQuad::Create();
- color_quad->SetNew(child_shared_state.get(), rect, SK_ColorGREEN, false);
+ color_quad->SetNew(
+ child_shared_state.get(), rect, rect, SK_ColorGREEN, false);
child_pass->quad_list.push_back(color_quad.PassAs<DrawQuad>());
RenderPass::Id root_id(1, 1);
@@ -280,7 +283,7 @@ TYPED_TEST(RendererPixelTest, PremultipliedTextureWithoutBackground) {
pass->quad_list.push_back(texture_quad.PassAs<DrawQuad>());
scoped_ptr<SolidColorDrawQuad> color_quad = SolidColorDrawQuad::Create();
- color_quad->SetNew(shared_state.get(), rect, SK_ColorWHITE, false);
+ color_quad->SetNew(shared_state.get(), rect, rect, SK_ColorWHITE, false);
pass->quad_list.push_back(color_quad.PassAs<DrawQuad>());
RenderPassList pass_list;
@@ -315,7 +318,7 @@ TYPED_TEST(RendererPixelTest, PremultipliedTextureWithBackground) {
scoped_ptr<SharedQuadState> color_quad_state =
CreateTestSharedQuadState(gfx::Transform(), rect);
scoped_ptr<SolidColorDrawQuad> color_quad = SolidColorDrawQuad::Create();
- color_quad->SetNew(color_quad_state.get(), rect, SK_ColorWHITE, false);
+ color_quad->SetNew(color_quad_state.get(), rect, rect, SK_ColorWHITE, false);
pass->quad_list.push_back(color_quad.PassAs<DrawQuad>());
RenderPassList pass_list;
@@ -348,7 +351,7 @@ TEST_F(GLRendererPixelTest, NonPremultipliedTextureWithoutBackground) {
pass->quad_list.push_back(texture_quad.PassAs<DrawQuad>());
scoped_ptr<SolidColorDrawQuad> color_quad = SolidColorDrawQuad::Create();
- color_quad->SetNew(shared_state.get(), rect, SK_ColorWHITE, false);
+ color_quad->SetNew(shared_state.get(), rect, rect, SK_ColorWHITE, false);
pass->quad_list.push_back(color_quad.PassAs<DrawQuad>());
RenderPassList pass_list;
@@ -384,7 +387,7 @@ TEST_F(GLRendererPixelTest, NonPremultipliedTextureWithBackground) {
scoped_ptr<SharedQuadState> color_quad_state =
CreateTestSharedQuadState(gfx::Transform(), rect);
scoped_ptr<SolidColorDrawQuad> color_quad = SolidColorDrawQuad::Create();
- color_quad->SetNew(color_quad_state.get(), rect, SK_ColorWHITE, false);
+ color_quad->SetNew(color_quad_state.get(), rect, rect, SK_ColorWHITE, false);
pass->quad_list.push_back(color_quad.PassAs<DrawQuad>());
RenderPassList pass_list;
@@ -461,8 +464,15 @@ class VideoGLRendererPixelTest : public GLRendererPixelTest {
}
scoped_ptr<YUVVideoDrawQuad> yuv_quad = YUVVideoDrawQuad::Create();
- yuv_quad->SetNew(shared_state, rect, opaque_rect, gfx::Size(),
- y_resource, u_resource, v_resource, a_resource);
+ yuv_quad->SetNew(shared_state,
+ rect,
+ opaque_rect,
+ rect,
+ gfx::Size(),
+ y_resource,
+ u_resource,
+ v_resource,
+ a_resource);
return yuv_quad.Pass();
}
};
@@ -506,7 +516,7 @@ TEST_F(VideoGLRendererPixelTest, SimpleYUVARect) {
pass->quad_list.push_back(yuv_quad.PassAs<DrawQuad>());
scoped_ptr<SolidColorDrawQuad> color_quad = SolidColorDrawQuad::Create();
- color_quad->SetNew(shared_state.get(), rect, SK_ColorWHITE, false);
+ color_quad->SetNew(shared_state.get(), rect, rect, SK_ColorWHITE, false);
pass->quad_list.push_back(color_quad.PassAs<DrawQuad>());
@@ -535,7 +545,7 @@ TEST_F(VideoGLRendererPixelTest, FullyTransparentYUVARect) {
pass->quad_list.push_back(yuv_quad.PassAs<DrawQuad>());
scoped_ptr<SolidColorDrawQuad> color_quad = SolidColorDrawQuad::Create();
- color_quad->SetNew(shared_state.get(), rect, SK_ColorBLACK, false);
+ color_quad->SetNew(shared_state.get(), rect, rect, SK_ColorBLACK, false);
pass->quad_list.push_back(color_quad.PassAs<DrawQuad>());
@@ -567,31 +577,26 @@ TYPED_TEST(RendererPixelTest, FastPassColorFilterAlpha) {
CreateTestSharedQuadState(content_to_target_transform, viewport_rect);
shared_state->opacity = 0.5f;
+ gfx::Rect blue_rect(0,
+ 0,
+ this->device_viewport_size_.width(),
+ this->device_viewport_size_.height() / 2);
scoped_ptr<SolidColorDrawQuad> blue = SolidColorDrawQuad::Create();
- blue->SetNew(shared_state.get(),
- gfx::Rect(0,
- 0,
- this->device_viewport_size_.width(),
- this->device_viewport_size_.height() / 2),
- SK_ColorBLUE,
- false);
+ blue->SetNew(shared_state.get(), blue_rect, blue_rect, SK_ColorBLUE, false);
+ gfx::Rect yellow_rect(0,
+ this->device_viewport_size_.height() / 2,
+ this->device_viewport_size_.width(),
+ this->device_viewport_size_.height() / 2);
scoped_ptr<SolidColorDrawQuad> yellow = SolidColorDrawQuad::Create();
- yellow->SetNew(shared_state.get(),
- gfx::Rect(0,
- this->device_viewport_size_.height() / 2,
- this->device_viewport_size_.width(),
- this->device_viewport_size_.height() / 2),
- SK_ColorYELLOW,
- false);
+ yellow->SetNew(
+ shared_state.get(), yellow_rect, yellow_rect, SK_ColorYELLOW, false);
scoped_ptr<SharedQuadState> blank_state =
CreateTestSharedQuadState(content_to_target_transform, viewport_rect);
scoped_ptr<SolidColorDrawQuad> white = SolidColorDrawQuad::Create();
- white->SetNew(blank_state.get(),
- viewport_rect,
- SK_ColorWHITE,
- false);
+ white->SetNew(
+ blank_state.get(), viewport_rect, viewport_rect, SK_ColorWHITE, false);
child_pass->quad_list.push_back(blue.PassAs<DrawQuad>());
child_pass->quad_list.push_back(yellow.PassAs<DrawQuad>());
@@ -627,6 +632,7 @@ TYPED_TEST(RendererPixelTest, FastPassColorFilterAlpha) {
RenderPassDrawQuad::Create();
render_pass_quad->SetNew(pass_shared_state.get(),
pass_rect,
+ pass_rect,
child_pass_id,
false,
0,
@@ -668,31 +674,26 @@ TYPED_TEST(RendererPixelTest, FastPassSaturateFilter) {
CreateTestSharedQuadState(content_to_target_transform, viewport_rect);
shared_state->opacity = 0.5f;
+ gfx::Rect blue_rect(0,
+ 0,
+ this->device_viewport_size_.width(),
+ this->device_viewport_size_.height() / 2);
scoped_ptr<SolidColorDrawQuad> blue = SolidColorDrawQuad::Create();
- blue->SetNew(shared_state.get(),
- gfx::Rect(0,
- 0,
- this->device_viewport_size_.width(),
- this->device_viewport_size_.height() / 2),
- SK_ColorBLUE,
- false);
+ blue->SetNew(shared_state.get(), blue_rect, blue_rect, SK_ColorBLUE, false);
+ gfx::Rect yellow_rect(0,
+ this->device_viewport_size_.height() / 2,
+ this->device_viewport_size_.width(),
+ this->device_viewport_size_.height() / 2);
scoped_ptr<SolidColorDrawQuad> yellow = SolidColorDrawQuad::Create();
- yellow->SetNew(shared_state.get(),
- gfx::Rect(0,
- this->device_viewport_size_.height() / 2,
- this->device_viewport_size_.width(),
- this->device_viewport_size_.height() / 2),
- SK_ColorYELLOW,
- false);
+ yellow->SetNew(
+ shared_state.get(), yellow_rect, yellow_rect, SK_ColorYELLOW, false);
scoped_ptr<SharedQuadState> blank_state =
CreateTestSharedQuadState(content_to_target_transform, viewport_rect);
scoped_ptr<SolidColorDrawQuad> white = SolidColorDrawQuad::Create();
- white->SetNew(blank_state.get(),
- viewport_rect,
- SK_ColorWHITE,
- false);
+ white->SetNew(
+ blank_state.get(), viewport_rect, viewport_rect, SK_ColorWHITE, false);
child_pass->quad_list.push_back(blue.PassAs<DrawQuad>());
child_pass->quad_list.push_back(yellow.PassAs<DrawQuad>());
@@ -708,6 +709,7 @@ TYPED_TEST(RendererPixelTest, FastPassSaturateFilter) {
RenderPassDrawQuad::Create();
render_pass_quad->SetNew(pass_shared_state.get(),
pass_rect,
+ pass_rect,
child_pass_id,
false,
0,
@@ -747,31 +749,26 @@ TYPED_TEST(RendererPixelTest, FastPassFilterChain) {
CreateTestSharedQuadState(content_to_target_transform, viewport_rect);
shared_state->opacity = 0.5f;
+ gfx::Rect blue_rect(0,
+ 0,
+ this->device_viewport_size_.width(),
+ this->device_viewport_size_.height() / 2);
scoped_ptr<SolidColorDrawQuad> blue = SolidColorDrawQuad::Create();
- blue->SetNew(shared_state.get(),
- gfx::Rect(0,
- 0,
- this->device_viewport_size_.width(),
- this->device_viewport_size_.height() / 2),
- SK_ColorBLUE,
- false);
+ blue->SetNew(shared_state.get(), blue_rect, blue_rect, SK_ColorBLUE, false);
+ gfx::Rect yellow_rect(0,
+ this->device_viewport_size_.height() / 2,
+ this->device_viewport_size_.width(),
+ this->device_viewport_size_.height() / 2);
scoped_ptr<SolidColorDrawQuad> yellow = SolidColorDrawQuad::Create();
- yellow->SetNew(shared_state.get(),
- gfx::Rect(0,
- this->device_viewport_size_.height() / 2,
- this->device_viewport_size_.width(),
- this->device_viewport_size_.height() / 2),
- SK_ColorYELLOW,
- false);
+ yellow->SetNew(
+ shared_state.get(), yellow_rect, yellow_rect, SK_ColorYELLOW, false);
scoped_ptr<SharedQuadState> blank_state =
CreateTestSharedQuadState(content_to_target_transform, viewport_rect);
scoped_ptr<SolidColorDrawQuad> white = SolidColorDrawQuad::Create();
- white->SetNew(blank_state.get(),
- viewport_rect,
- SK_ColorWHITE,
- false);
+ white->SetNew(
+ blank_state.get(), viewport_rect, viewport_rect, SK_ColorWHITE, false);
child_pass->quad_list.push_back(blue.PassAs<DrawQuad>());
child_pass->quad_list.push_back(yellow.PassAs<DrawQuad>());
@@ -788,6 +785,7 @@ TYPED_TEST(RendererPixelTest, FastPassFilterChain) {
RenderPassDrawQuad::Create();
render_pass_quad->SetNew(pass_shared_state.get(),
pass_rect,
+ pass_rect,
child_pass_id,
false,
0,
@@ -827,31 +825,26 @@ TYPED_TEST(RendererPixelTest, FastPassColorFilterAlphaTranslation) {
CreateTestSharedQuadState(content_to_target_transform, viewport_rect);
shared_state->opacity = 0.5f;
+ gfx::Rect blue_rect(0,
+ 0,
+ this->device_viewport_size_.width(),
+ this->device_viewport_size_.height() / 2);
scoped_ptr<SolidColorDrawQuad> blue = SolidColorDrawQuad::Create();
- blue->SetNew(shared_state.get(),
- gfx::Rect(0,
- 0,
- this->device_viewport_size_.width(),
- this->device_viewport_size_.height() / 2),
- SK_ColorBLUE,
- false);
+ blue->SetNew(shared_state.get(), blue_rect, blue_rect, SK_ColorBLUE, false);
+ gfx::Rect yellow_rect(0,
+ this->device_viewport_size_.height() / 2,
+ this->device_viewport_size_.width(),
+ this->device_viewport_size_.height() / 2);
scoped_ptr<SolidColorDrawQuad> yellow = SolidColorDrawQuad::Create();
- yellow->SetNew(shared_state.get(),
- gfx::Rect(0,
- this->device_viewport_size_.height() / 2,
- this->device_viewport_size_.width(),
- this->device_viewport_size_.height() / 2),
- SK_ColorYELLOW,
- false);
+ yellow->SetNew(
+ shared_state.get(), yellow_rect, yellow_rect, SK_ColorYELLOW, false);
scoped_ptr<SharedQuadState> blank_state =
CreateTestSharedQuadState(content_to_target_transform, viewport_rect);
scoped_ptr<SolidColorDrawQuad> white = SolidColorDrawQuad::Create();
- white->SetNew(blank_state.get(),
- viewport_rect,
- SK_ColorWHITE,
- false);
+ white->SetNew(
+ blank_state.get(), viewport_rect, viewport_rect, SK_ColorWHITE, false);
child_pass->quad_list.push_back(blue.PassAs<DrawQuad>());
child_pass->quad_list.push_back(yellow.PassAs<DrawQuad>());
@@ -890,6 +883,7 @@ TYPED_TEST(RendererPixelTest, FastPassColorFilterAlphaTranslation) {
RenderPassDrawQuad::Create();
render_pass_quad->SetNew(pass_shared_state.get(),
pass_rect,
+ pass_rect,
child_pass_id,
false,
0,
@@ -930,22 +924,19 @@ TYPED_TEST(RendererPixelTest, EnlargedRenderPassTexture) {
scoped_ptr<SharedQuadState> shared_state =
CreateTestSharedQuadState(content_to_target_transform, viewport_rect);
+ gfx::Rect blue_rect(0,
+ 0,
+ this->device_viewport_size_.width(),
+ this->device_viewport_size_.height() / 2);
scoped_ptr<SolidColorDrawQuad> blue = SolidColorDrawQuad::Create();
- blue->SetNew(shared_state.get(),
- gfx::Rect(0,
- 0,
- this->device_viewport_size_.width(),
- this->device_viewport_size_.height() / 2),
- SK_ColorBLUE,
- false);
+ blue->SetNew(shared_state.get(), blue_rect, blue_rect, SK_ColorBLUE, false);
+ gfx::Rect yellow_rect(0,
+ this->device_viewport_size_.height() / 2,
+ this->device_viewport_size_.width(),
+ this->device_viewport_size_.height() / 2);
scoped_ptr<SolidColorDrawQuad> yellow = SolidColorDrawQuad::Create();
- yellow->SetNew(shared_state.get(),
- gfx::Rect(0,
- this->device_viewport_size_.height() / 2,
- this->device_viewport_size_.width(),
- this->device_viewport_size_.height() / 2),
- SK_ColorYELLOW,
- false);
+ yellow->SetNew(
+ shared_state.get(), yellow_rect, yellow_rect, SK_ColorYELLOW, false);
child_pass->quad_list.push_back(blue.PassAs<DrawQuad>());
child_pass->quad_list.push_back(yellow.PassAs<DrawQuad>());
@@ -987,22 +978,19 @@ TYPED_TEST(RendererPixelTest, EnlargedRenderPassTextureWithAntiAliasing) {
scoped_ptr<SharedQuadState> shared_state =
CreateTestSharedQuadState(content_to_target_transform, viewport_rect);
+ gfx::Rect blue_rect(0,
+ 0,
+ this->device_viewport_size_.width(),
+ this->device_viewport_size_.height() / 2);
scoped_ptr<SolidColorDrawQuad> blue = SolidColorDrawQuad::Create();
- blue->SetNew(shared_state.get(),
- gfx::Rect(0,
- 0,
- this->device_viewport_size_.width(),
- this->device_viewport_size_.height() / 2),
- SK_ColorBLUE,
- false);
+ blue->SetNew(shared_state.get(), blue_rect, blue_rect, SK_ColorBLUE, false);
+ gfx::Rect yellow_rect(0,
+ this->device_viewport_size_.height() / 2,
+ this->device_viewport_size_.width(),
+ this->device_viewport_size_.height() / 2);
scoped_ptr<SolidColorDrawQuad> yellow = SolidColorDrawQuad::Create();
- yellow->SetNew(shared_state.get(),
- gfx::Rect(0,
- this->device_viewport_size_.height() / 2,
- this->device_viewport_size_.width(),
- this->device_viewport_size_.height() / 2),
- SK_ColorYELLOW,
- false);
+ yellow->SetNew(
+ shared_state.get(), yellow_rect, yellow_rect, SK_ColorYELLOW, false);
child_pass->quad_list.push_back(blue.PassAs<DrawQuad>());
child_pass->quad_list.push_back(yellow.PassAs<DrawQuad>());
@@ -1022,6 +1010,7 @@ TYPED_TEST(RendererPixelTest, EnlargedRenderPassTextureWithAntiAliasing) {
scoped_ptr<SolidColorDrawQuad> background = SolidColorDrawQuad::Create();
background->SetNew(root_shared_state.get(),
gfx::Rect(this->device_viewport_size_),
+ gfx::Rect(this->device_viewport_size_),
SK_ColorWHITE,
false);
root_pass->quad_list.push_back(background.PassAs<DrawQuad>());
@@ -1060,7 +1049,11 @@ TYPED_TEST(RendererPixelTest, RenderPassAndMaskWithPartialQuad) {
// The child render pass is just a green box.
static const SkColor kCSSGreen = 0xff008000;
scoped_ptr<SolidColorDrawQuad> green = SolidColorDrawQuad::Create();
- green->SetNew(child_pass_shared_state.get(), viewport_rect, kCSSGreen, false);
+ green->SetNew(child_pass_shared_state.get(),
+ viewport_rect,
+ viewport_rect,
+ kCSSGreen,
+ false);
child_pass->quad_list.push_back(green.PassAs<DrawQuad>());
// Make a mask.
@@ -1112,6 +1105,7 @@ TYPED_TEST(RendererPixelTest, RenderPassAndMaskWithPartialQuad) {
scoped_ptr<RenderPassDrawQuad> mask_quad = RenderPassDrawQuad::Create();
mask_quad->SetNew(root_pass_shared_state.get(),
sub_rect,
+ sub_rect,
child_pass_id,
false, // is_replica
mask_resource_id,
@@ -1123,8 +1117,11 @@ TYPED_TEST(RendererPixelTest, RenderPassAndMaskWithPartialQuad) {
// White background behind the masked render pass.
scoped_ptr<SolidColorDrawQuad> white = SolidColorDrawQuad::Create();
- white->SetNew(
- root_pass_shared_state.get(), viewport_rect, SK_ColorWHITE, false);
+ white->SetNew(root_pass_shared_state.get(),
+ viewport_rect,
+ viewport_rect,
+ SK_ColorWHITE,
+ false);
root_pass->quad_list.push_back(white.PassAs<DrawQuad>());
RenderPassList pass_list;
@@ -1167,6 +1164,7 @@ class RendererPixelTestWithBackgroundFilter
scoped_ptr<SolidColorDrawQuad> color_quad = SolidColorDrawQuad::Create();
color_quad->SetNew(shared_state.get(),
filter_pass_content_rect_,
+ filter_pass_content_rect_,
SK_ColorTRANSPARENT,
false);
filter_pass->quad_list.push_back(color_quad.PassAs<DrawQuad>());
@@ -1182,12 +1180,13 @@ class RendererPixelTestWithBackgroundFilter
filter_pass_quad->SetNew(
shared_state.get(),
filter_pass_content_rect_,
+ filter_pass_content_rect_,
filter_pass_id,
- false, // is_replica
- 0, // mask_resource_id
+ false, // is_replica
+ 0, // mask_resource_id
filter_pass_content_rect_, // contents_changed_since_last_frame
- gfx::RectF(), // mask_uv_rect
- FilterOperations(), // filters
+ gfx::RectF(), // mask_uv_rect
+ FilterOperations(), // filters
this->background_filters_);
root_pass->quad_list.push_back(filter_pass_quad.PassAs<DrawQuad>());
root_pass->shared_quad_state_list.push_back(shared_state.Pass());
@@ -1201,7 +1200,8 @@ class RendererPixelTestWithBackgroundFilter
CreateTestSharedQuadState(identity_content_to_target_transform,
left_rect);
scoped_ptr<SolidColorDrawQuad> color_quad = SolidColorDrawQuad::Create();
- color_quad->SetNew(shared_state.get(), left_rect, SK_ColorGREEN, false);
+ color_quad->SetNew(
+ shared_state.get(), left_rect, left_rect, SK_ColorGREEN, false);
root_pass->quad_list.push_back(color_quad.PassAs<DrawQuad>());
root_pass->shared_quad_state_list.push_back(shared_state.Pass());
left_rect += gfx::Vector2d(0, left_rect.height() + 1);
@@ -1213,7 +1213,8 @@ class RendererPixelTestWithBackgroundFilter
CreateTestSharedQuadState(identity_content_to_target_transform,
middle_rect);
scoped_ptr<SolidColorDrawQuad> color_quad = SolidColorDrawQuad::Create();
- color_quad->SetNew(shared_state.get(), middle_rect, SK_ColorRED, false);
+ color_quad->SetNew(
+ shared_state.get(), middle_rect, middle_rect, SK_ColorRED, false);
root_pass->quad_list.push_back(color_quad.PassAs<DrawQuad>());
root_pass->shared_quad_state_list.push_back(shared_state.Pass());
middle_rect += gfx::Vector2d(0, middle_rect.height() + 1);
@@ -1225,7 +1226,8 @@ class RendererPixelTestWithBackgroundFilter
CreateTestSharedQuadState(identity_content_to_target_transform,
right_rect);
scoped_ptr<SolidColorDrawQuad> color_quad = SolidColorDrawQuad::Create();
- color_quad->SetNew(shared_state.get(), right_rect, SK_ColorBLUE, false);
+ color_quad->SetNew(
+ shared_state.get(), right_rect, right_rect, SK_ColorBLUE, false);
root_pass->quad_list.push_back(color_quad.PassAs<DrawQuad>());
root_pass->shared_quad_state_list.push_back(shared_state.Pass());
right_rect += gfx::Vector2d(0, right_rect.height() + 1);
@@ -1238,6 +1240,7 @@ class RendererPixelTestWithBackgroundFilter
SolidColorDrawQuad::Create();
background_quad->SetNew(shared_state.get(),
device_viewport_rect,
+ device_viewport_rect,
SK_ColorWHITE,
false);
root_pass->quad_list.push_back(background_quad.PassAs<DrawQuad>());
@@ -1322,7 +1325,7 @@ TEST_F(ExternalStencilPixelTest, StencilTestEnabled) {
scoped_ptr<SharedQuadState> blue_shared_state =
CreateTestSharedQuadState(gfx::Transform(), rect);
scoped_ptr<SolidColorDrawQuad> blue = SolidColorDrawQuad::Create();
- blue->SetNew(blue_shared_state.get(), rect, SK_ColorBLUE, false);
+ blue->SetNew(blue_shared_state.get(), rect, rect, SK_ColorBLUE, false);
pass->quad_list.push_back(blue.PassAs<DrawQuad>());
pass->has_transparent_background = false;
RenderPassList pass_list;
@@ -1346,7 +1349,7 @@ TEST_F(ExternalStencilPixelTest, StencilTestDisabled) {
scoped_ptr<SharedQuadState> green_shared_state =
CreateTestSharedQuadState(gfx::Transform(), rect);
scoped_ptr<SolidColorDrawQuad> green = SolidColorDrawQuad::Create();
- green->SetNew(green_shared_state.get(), rect, SK_ColorGREEN, false);
+ green->SetNew(green_shared_state.get(), rect, rect, SK_ColorGREEN, false);
pass->quad_list.push_back(green.PassAs<DrawQuad>());
RenderPassList pass_list;
pass_list.push_back(pass.Pass());
@@ -1381,14 +1384,12 @@ TEST_F(ExternalStencilPixelTest, RenderSurfacesIgnoreStencil) {
scoped_ptr<SharedQuadState> shared_state =
CreateTestSharedQuadState(content_to_target_transform, viewport_rect);
+ gfx::Rect blue_rect(0,
+ 0,
+ this->device_viewport_size_.width(),
+ this->device_viewport_size_.height());
scoped_ptr<SolidColorDrawQuad> blue = SolidColorDrawQuad::Create();
- blue->SetNew(shared_state.get(),
- gfx::Rect(0,
- 0,
- this->device_viewport_size_.width(),
- this->device_viewport_size_.height()),
- SK_ColorBLUE,
- false);
+ blue->SetNew(shared_state.get(), blue_rect, blue_rect, SK_ColorBLUE, false);
child_pass->quad_list.push_back(blue.PassAs<DrawQuad>());
scoped_ptr<SharedQuadState> pass_shared_state =
@@ -1421,7 +1422,7 @@ TEST_F(ExternalStencilPixelTest, DeviceClip) {
scoped_ptr<SharedQuadState> blue_shared_state =
CreateTestSharedQuadState(gfx::Transform(), rect);
scoped_ptr<SolidColorDrawQuad> blue = SolidColorDrawQuad::Create();
- blue->SetNew(blue_shared_state.get(), rect, SK_ColorBLUE, false);
+ blue->SetNew(blue_shared_state.get(), rect, rect, SK_ColorBLUE, false);
pass->quad_list.push_back(blue.PassAs<DrawQuad>());
RenderPassList pass_list;
pass_list.push_back(pass.Pass());
@@ -1446,7 +1447,7 @@ TEST_F(GLRendererPixelTest, AntiAliasing) {
CreateTestSharedQuadState(red_content_to_target_transform, rect);
scoped_ptr<SolidColorDrawQuad> red = SolidColorDrawQuad::Create();
- red->SetNew(red_shared_state.get(), rect, SK_ColorRED, false);
+ red->SetNew(red_shared_state.get(), rect, rect, SK_ColorRED, false);
pass->quad_list.push_back(red.PassAs<DrawQuad>());
@@ -1456,7 +1457,7 @@ TEST_F(GLRendererPixelTest, AntiAliasing) {
CreateTestSharedQuadState(yellow_content_to_target_transform, rect);
scoped_ptr<SolidColorDrawQuad> yellow = SolidColorDrawQuad::Create();
- yellow->SetNew(yellow_shared_state.get(), rect, SK_ColorYELLOW, false);
+ yellow->SetNew(yellow_shared_state.get(), rect, rect, SK_ColorYELLOW, false);
pass->quad_list.push_back(yellow.PassAs<DrawQuad>());
@@ -1465,7 +1466,7 @@ TEST_F(GLRendererPixelTest, AntiAliasing) {
CreateTestSharedQuadState(blue_content_to_target_transform, rect);
scoped_ptr<SolidColorDrawQuad> blue = SolidColorDrawQuad::Create();
- blue->SetNew(blue_shared_state.get(), rect, SK_ColorBLUE, false);
+ blue->SetNew(blue_shared_state.get(), rect, rect, SK_ColorBLUE, false);
pass->quad_list.push_back(blue.PassAs<DrawQuad>());
@@ -1498,7 +1499,7 @@ TEST_F(GLRendererPixelTest, AxisAligned) {
CreateTestSharedQuadState(red_content_to_target_transform, rect);
scoped_ptr<SolidColorDrawQuad> red = SolidColorDrawQuad::Create();
- red->SetNew(red_shared_state.get(), rect, SK_ColorRED, false);
+ red->SetNew(red_shared_state.get(), rect, rect, SK_ColorRED, false);
pass->quad_list.push_back(red.PassAs<DrawQuad>());
@@ -1509,7 +1510,7 @@ TEST_F(GLRendererPixelTest, AxisAligned) {
CreateTestSharedQuadState(yellow_content_to_target_transform, rect);
scoped_ptr<SolidColorDrawQuad> yellow = SolidColorDrawQuad::Create();
- yellow->SetNew(yellow_shared_state.get(), rect, SK_ColorYELLOW, false);
+ yellow->SetNew(yellow_shared_state.get(), rect, rect, SK_ColorYELLOW, false);
pass->quad_list.push_back(yellow.PassAs<DrawQuad>());
@@ -1518,7 +1519,7 @@ TEST_F(GLRendererPixelTest, AxisAligned) {
CreateTestSharedQuadState(blue_content_to_target_transform, rect);
scoped_ptr<SolidColorDrawQuad> blue = SolidColorDrawQuad::Create();
- blue->SetNew(blue_shared_state.get(), rect, SK_ColorBLUE, false);
+ blue->SetNew(blue_shared_state.get(), rect, rect, SK_ColorBLUE, false);
pass->quad_list.push_back(blue.PassAs<DrawQuad>());
@@ -1560,7 +1561,7 @@ TEST_F(GLRendererPixelTest, ForceAntiAliasingOff) {
CreateTestSharedQuadState(green_content_to_target_transform, rect);
scoped_ptr<SolidColorDrawQuad> green = SolidColorDrawQuad::Create();
- green->SetNew(green_shared_state.get(), rect, SK_ColorGREEN, false);
+ green->SetNew(green_shared_state.get(), rect, rect, SK_ColorGREEN, false);
pass->quad_list.push_back(green.PassAs<DrawQuad>());
@@ -1589,20 +1590,21 @@ TEST_F(GLRendererPixelTest, AntiAliasingPerspective) {
scoped_ptr<SharedQuadState> red_shared_state =
CreateTestSharedQuadState(red_content_to_target_transform, red_rect);
scoped_ptr<SolidColorDrawQuad> red = SolidColorDrawQuad::Create();
- red->SetNew(red_shared_state.get(), red_rect, SK_ColorRED, false);
+ red->SetNew(red_shared_state.get(), red_rect, red_rect, SK_ColorRED, false);
pass->quad_list.push_back(red.PassAs<DrawQuad>());
gfx::Rect green_rect(19, 7, 180, 10);
scoped_ptr<SharedQuadState> green_shared_state =
CreateTestSharedQuadState(gfx::Transform(), green_rect);
scoped_ptr<SolidColorDrawQuad> green = SolidColorDrawQuad::Create();
- green->SetNew(green_shared_state.get(), green_rect, SK_ColorGREEN, false);
+ green->SetNew(
+ green_shared_state.get(), green_rect, green_rect, SK_ColorGREEN, false);
pass->quad_list.push_back(green.PassAs<DrawQuad>());
scoped_ptr<SharedQuadState> blue_shared_state =
CreateTestSharedQuadState(gfx::Transform(), rect);
scoped_ptr<SolidColorDrawQuad> blue = SolidColorDrawQuad::Create();
- blue->SetNew(blue_shared_state.get(), rect, SK_ColorBLUE, false);
+ blue->SetNew(blue_shared_state.get(), rect, rect, SK_ColorBLUE, false);
pass->quad_list.push_back(blue.PassAs<DrawQuad>());
RenderPassList pass_list;
@@ -1656,6 +1658,7 @@ TYPED_TEST(RendererPixelTest, PictureDrawQuadIdentityScale) {
viewport, // Intentionally bigger than clip.
gfx::Rect(),
viewport,
+ gfx::RectF(viewport),
viewport.size(),
texture_format,
viewport,
@@ -1679,6 +1682,7 @@ TYPED_TEST(RendererPixelTest, PictureDrawQuadIdentityScale) {
green_quad->SetNew(green_shared_state.get(),
viewport,
gfx::Rect(),
+ viewport,
gfx::RectF(0.f, 0.f, 1.f, 1.f),
viewport.size(),
texture_format,
@@ -1725,6 +1729,7 @@ TYPED_TEST(RendererPixelTest, PictureDrawQuadOpacity) {
green_quad->SetNew(green_shared_state.get(),
viewport,
gfx::Rect(),
+ viewport,
gfx::RectF(0, 0, 1, 1),
viewport.size(),
texture_format,
@@ -1749,6 +1754,7 @@ TYPED_TEST(RendererPixelTest, PictureDrawQuadOpacity) {
white_quad->SetNew(white_shared_state.get(),
viewport,
gfx::Rect(),
+ viewport,
gfx::RectF(0, 0, 1, 1),
viewport.size(),
texture_format,
@@ -1823,14 +1829,15 @@ TYPED_TEST(RendererPixelTest, PictureDrawQuadDisableImageFiltering) {
scoped_ptr<PictureDrawQuad> quad = PictureDrawQuad::Create();
quad->SetNew(shared_state.get(),
- viewport,
- gfx::Rect(),
- gfx::RectF(0, 0, 2, 2),
- viewport.size(),
- texture_format,
- viewport,
- 1.f,
- pile);
+ viewport,
+ gfx::Rect(),
+ viewport,
+ gfx::RectF(0, 0, 2, 2),
+ viewport.size(),
+ texture_format,
+ viewport,
+ 1.f,
+ pile);
pass->quad_list.push_back(quad.PassAs<DrawQuad>());
RenderPassList pass_list;
@@ -1881,6 +1888,7 @@ TYPED_TEST(RendererPixelTest, PictureDrawQuadNonIdentityScale) {
green_quad1->SetNew(top_right_green_shared_quad_state.get(),
green_rect1,
gfx::Rect(),
+ green_rect1,
gfx::RectF(green_rect1.size()),
green_rect1.size(),
texture_format,
@@ -1893,6 +1901,7 @@ TYPED_TEST(RendererPixelTest, PictureDrawQuadNonIdentityScale) {
green_quad2->SetNew(top_right_green_shared_quad_state.get(),
green_rect2,
gfx::Rect(),
+ green_rect2,
gfx::RectF(green_rect2.size()),
green_rect2.size(),
texture_format,
@@ -1911,8 +1920,11 @@ TYPED_TEST(RendererPixelTest, PictureDrawQuadNonIdentityScale) {
green_content_to_target_transform, viewport, bottom_right_rect);
scoped_ptr<SolidColorDrawQuad> bottom_right_color_quad =
SolidColorDrawQuad::Create();
- bottom_right_color_quad->SetNew(
- bottom_right_green_shared_state.get(), viewport, SK_ColorGREEN, false);
+ bottom_right_color_quad->SetNew(bottom_right_green_shared_state.get(),
+ viewport,
+ viewport,
+ SK_ColorGREEN,
+ false);
pass->quad_list.push_back(bottom_right_color_quad.PassAs<DrawQuad>());
// Add two blue checkerboards taking up the bottom left and top right,
@@ -1965,6 +1977,7 @@ TYPED_TEST(RendererPixelTest, PictureDrawQuadNonIdentityScale) {
quad_content_rect,
gfx::Rect(),
quad_content_rect,
+ gfx::RectF(quad_content_rect),
content_union_rect.size(),
texture_format,
content_union_rect,
@@ -1979,8 +1992,11 @@ TYPED_TEST(RendererPixelTest, PictureDrawQuadNonIdentityScale) {
CreateTestSharedQuadState(half_green_content_to_target_transform,
half_green_rect);
scoped_ptr<SolidColorDrawQuad> half_color_quad = SolidColorDrawQuad::Create();
- half_color_quad->SetNew(
- half_green_shared_state.get(), half_green_rect, SK_ColorGREEN, false);
+ half_color_quad->SetNew(half_green_shared_state.get(),
+ half_green_rect,
+ half_green_rect,
+ SK_ColorGREEN,
+ false);
pass->quad_list.push_back(half_color_quad.PassAs<DrawQuad>());
RenderPassList pass_list;
@@ -2034,10 +2050,11 @@ TYPED_TEST(RendererPixelTest, WrapModeRepeat) {
shared_state.get(),
gfx::Rect(this->device_viewport_size_),
gfx::Rect(),
+ gfx::Rect(this->device_viewport_size_),
resource,
- true, // premultiplied_alpha
+ true, // premultiplied_alpha
gfx::PointF(0.0f, 0.0f), // uv_top_left
- gfx::PointF( // uv_bottom_right
+ gfx::PointF( // uv_bottom_right
this->device_viewport_size_.width() / texture_rect.width(),
this->device_viewport_size_.height() / texture_rect.height()),
SK_ColorWHITE,
diff --git a/cc/output/software_renderer_unittest.cc b/cc/output/software_renderer_unittest.cc
index c4ffdc2..3673314 100644
--- a/cc/output/software_renderer_unittest.cc
+++ b/cc/output/software_renderer_unittest.cc
@@ -78,9 +78,10 @@ TEST_F(SoftwareRendererTest, SolidColorQuad) {
root_render_pass_id, outer_rect, outer_rect, gfx::Transform());
scoped_ptr<SolidColorDrawQuad> outer_quad = SolidColorDrawQuad::Create();
outer_quad->SetNew(
- shared_quad_state.get(), outer_rect, SK_ColorYELLOW, false);
+ shared_quad_state.get(), outer_rect, outer_rect, SK_ColorYELLOW, false);
scoped_ptr<SolidColorDrawQuad> inner_quad = SolidColorDrawQuad::Create();
- inner_quad->SetNew(shared_quad_state.get(), inner_rect, SK_ColorCYAN, false);
+ inner_quad->SetNew(
+ shared_quad_state.get(), inner_rect, inner_rect, SK_ColorCYAN, false);
inner_quad->visible_rect = visible_rect;
root_render_pass->AppendQuad(inner_quad.PassAs<DrawQuad>());
root_render_pass->AppendQuad(outer_quad.PassAs<DrawQuad>());
@@ -173,6 +174,7 @@ TEST_F(SoftwareRendererTest, TileQuad) {
outer_quad->SetNew(shared_quad_state.get(),
outer_rect,
outer_rect,
+ outer_rect,
resource_yellow,
gfx::RectF(outer_size),
outer_size,
@@ -181,6 +183,7 @@ TEST_F(SoftwareRendererTest, TileQuad) {
inner_quad->SetNew(shared_quad_state.get(),
inner_rect,
inner_rect,
+ inner_rect,
resource_cyan,
gfx::RectF(inner_size),
inner_size,
@@ -262,6 +265,7 @@ TEST_F(SoftwareRendererTest, TileQuadVisibleRect) {
quad->SetNew(shared_quad_state.get(),
tile_rect,
tile_rect,
+ tile_rect,
resource_cyan,
gfx::RectF(tile_size),
tile_size,
diff --git a/cc/quads/checkerboard_draw_quad.cc b/cc/quads/checkerboard_draw_quad.cc
index 57f776d..921a553 100644
--- a/cc/quads/checkerboard_draw_quad.cc
+++ b/cc/quads/checkerboard_draw_quad.cc
@@ -17,9 +17,9 @@ scoped_ptr<CheckerboardDrawQuad> CheckerboardDrawQuad::Create() {
void CheckerboardDrawQuad::SetNew(const SharedQuadState* shared_quad_state,
const gfx::Rect& rect,
+ const gfx::Rect& visible_rect,
SkColor color) {
gfx::Rect opaque_rect = SkColorGetA(color) == 255 ? rect : gfx::Rect();
- gfx::Rect visible_rect = rect;
bool needs_blending = false;
DrawQuad::SetAll(shared_quad_state, DrawQuad::CHECKERBOARD, rect, opaque_rect,
visible_rect, needs_blending);
diff --git a/cc/quads/checkerboard_draw_quad.h b/cc/quads/checkerboard_draw_quad.h
index ffa016f..d59e53f 100644
--- a/cc/quads/checkerboard_draw_quad.h
+++ b/cc/quads/checkerboard_draw_quad.h
@@ -18,6 +18,7 @@ class CC_EXPORT CheckerboardDrawQuad : public DrawQuad {
void SetNew(const SharedQuadState* shared_quad_state,
const gfx::Rect& rect,
+ const gfx::Rect& visible_rect,
SkColor color);
void SetAll(const SharedQuadState* shared_quad_state,
diff --git a/cc/quads/content_draw_quad_base.cc b/cc/quads/content_draw_quad_base.cc
index a802b19..18d3d10 100644
--- a/cc/quads/content_draw_quad_base.cc
+++ b/cc/quads/content_draw_quad_base.cc
@@ -21,10 +21,10 @@ void ContentDrawQuadBase::SetNew(const SharedQuadState* shared_quad_state,
DrawQuad::Material material,
const gfx::Rect& rect,
const gfx::Rect& opaque_rect,
+ const gfx::Rect& visible_rect,
const gfx::RectF& tex_coord_rect,
const gfx::Size& texture_size,
bool swizzle_contents) {
- gfx::Rect visible_rect = rect;
bool needs_blending = false;
DrawQuad::SetAll(shared_quad_state, material, rect, opaque_rect,
visible_rect, needs_blending);
diff --git a/cc/quads/content_draw_quad_base.h b/cc/quads/content_draw_quad_base.h
index 44f8bd0..a286e10 100644
--- a/cc/quads/content_draw_quad_base.h
+++ b/cc/quads/content_draw_quad_base.h
@@ -20,6 +20,7 @@ class CC_EXPORT ContentDrawQuadBase : public DrawQuad {
DrawQuad::Material material,
const gfx::Rect& rect,
const gfx::Rect& opaque_rect,
+ const gfx::Rect& visible_rect,
const gfx::RectF& tex_coord_rect,
const gfx::Size& texture_size,
bool swizzle_contents);
diff --git a/cc/quads/debug_border_draw_quad.cc b/cc/quads/debug_border_draw_quad.cc
index dc79a22..9c575aa 100644
--- a/cc/quads/debug_border_draw_quad.cc
+++ b/cc/quads/debug_border_draw_quad.cc
@@ -20,10 +20,10 @@ scoped_ptr<DebugBorderDrawQuad> DebugBorderDrawQuad::Create() {
void DebugBorderDrawQuad::SetNew(const SharedQuadState* shared_quad_state,
const gfx::Rect& rect,
+ const gfx::Rect& visible_rect,
SkColor color,
int width) {
gfx::Rect opaque_rect;
- gfx::Rect visible_rect = rect;
bool needs_blending = SkColorGetA(color) < 255;
DrawQuad::SetAll(shared_quad_state, DrawQuad::DEBUG_BORDER, rect, opaque_rect,
visible_rect, needs_blending);
diff --git a/cc/quads/debug_border_draw_quad.h b/cc/quads/debug_border_draw_quad.h
index bcdaff9..2bfccc4 100644
--- a/cc/quads/debug_border_draw_quad.h
+++ b/cc/quads/debug_border_draw_quad.h
@@ -18,6 +18,7 @@ class CC_EXPORT DebugBorderDrawQuad : public DrawQuad {
void SetNew(const SharedQuadState* shared_quad_state,
const gfx::Rect& rect,
+ const gfx::Rect& visible_rect,
SkColor color,
int width);
diff --git a/cc/quads/draw_quad_unittest.cc b/cc/quads/draw_quad_unittest.cc
index 316accd..1918a515 100644
--- a/cc/quads/draw_quad_unittest.cc
+++ b/cc/quads/draw_quad_unittest.cc
@@ -329,11 +329,13 @@ void CompareDrawQuad(DrawQuad* quad,
SETUP_AND_COPY_QUAD_ALL(Type, quad_all);
TEST(DrawQuadTest, CopyCheckerboardDrawQuad) {
+ gfx::Rect visible_rect(40, 50, 30, 20);
SkColor color = 0xfabb0011;
CREATE_SHARED_STATE();
- CREATE_QUAD_1_NEW(CheckerboardDrawQuad, color);
+ CREATE_QUAD_2_NEW(CheckerboardDrawQuad, visible_rect, color);
EXPECT_EQ(DrawQuad::CHECKERBOARD, copy_quad->material);
+ EXPECT_RECT_EQ(visible_rect, copy_quad->visible_rect);
EXPECT_EQ(color, copy_quad->color);
CREATE_QUAD_1_ALL(CheckerboardDrawQuad, color);
@@ -342,12 +344,14 @@ TEST(DrawQuadTest, CopyCheckerboardDrawQuad) {
}
TEST(DrawQuadTest, CopyDebugBorderDrawQuad) {
+ gfx::Rect visible_rect(40, 50, 30, 20);
SkColor color = 0xfabb0011;
int width = 99;
CREATE_SHARED_STATE();
- CREATE_QUAD_2_NEW(DebugBorderDrawQuad, color, width);
+ CREATE_QUAD_3_NEW(DebugBorderDrawQuad, visible_rect, color, width);
EXPECT_EQ(DrawQuad::DEBUG_BORDER, copy_quad->material);
+ EXPECT_RECT_EQ(visible_rect, copy_quad->visible_rect);
EXPECT_EQ(color, copy_quad->color);
EXPECT_EQ(width, copy_quad->width);
@@ -359,14 +363,20 @@ TEST(DrawQuadTest, CopyDebugBorderDrawQuad) {
TEST(DrawQuadTest, CopyIOSurfaceDrawQuad) {
gfx::Rect opaque_rect(33, 47, 10, 12);
+ gfx::Rect visible_rect(40, 50, 30, 20);
gfx::Size size(58, 95);
ResourceProvider::ResourceId resource_id = 72;
IOSurfaceDrawQuad::Orientation orientation = IOSurfaceDrawQuad::UNFLIPPED;
CREATE_SHARED_STATE();
- CREATE_QUAD_4_NEW(
- IOSurfaceDrawQuad, opaque_rect, size, resource_id, orientation);
+ CREATE_QUAD_5_NEW(IOSurfaceDrawQuad,
+ opaque_rect,
+ visible_rect,
+ size,
+ resource_id,
+ orientation);
EXPECT_EQ(DrawQuad::IO_SURFACE_CONTENT, copy_quad->material);
+ EXPECT_RECT_EQ(visible_rect, copy_quad->visible_rect);
EXPECT_RECT_EQ(opaque_rect, copy_quad->opaque_rect);
EXPECT_EQ(size, copy_quad->io_surface_size);
EXPECT_EQ(resource_id, copy_quad->io_surface_resource_id);
@@ -380,6 +390,7 @@ TEST(DrawQuadTest, CopyIOSurfaceDrawQuad) {
}
TEST(DrawQuadTest, CopyRenderPassDrawQuad) {
+ gfx::Rect visible_rect(40, 50, 30, 20);
RenderPass::Id render_pass_id(22, 64);
bool is_replica = true;
ResourceProvider::ResourceId mask_resource_id = 78;
@@ -394,7 +405,8 @@ TEST(DrawQuadTest, CopyRenderPassDrawQuad) {
RenderPass::Id copied_render_pass_id(235, 11);
CREATE_SHARED_STATE();
- CREATE_QUAD_7_NEW_1(RenderPassDrawQuad,
+ CREATE_QUAD_8_NEW_1(RenderPassDrawQuad,
+ visible_rect,
render_pass_id,
is_replica,
mask_resource_id,
@@ -404,6 +416,7 @@ TEST(DrawQuadTest, CopyRenderPassDrawQuad) {
background_filters,
copied_render_pass_id);
EXPECT_EQ(DrawQuad::RENDER_PASS, copy_quad->material);
+ EXPECT_RECT_EQ(visible_rect, copy_quad->visible_rect);
EXPECT_EQ(copied_render_pass_id, copy_quad->render_pass_id);
EXPECT_EQ(is_replica, copy_quad->is_replica);
EXPECT_EQ(mask_resource_id, copy_quad->mask_resource_id);
@@ -434,12 +447,15 @@ TEST(DrawQuadTest, CopyRenderPassDrawQuad) {
}
TEST(DrawQuadTest, CopySolidColorDrawQuad) {
+ gfx::Rect visible_rect(40, 50, 30, 20);
SkColor color = 0x49494949;
bool force_anti_aliasing_off = false;
CREATE_SHARED_STATE();
- CREATE_QUAD_2_NEW(SolidColorDrawQuad, color, force_anti_aliasing_off);
+ CREATE_QUAD_3_NEW(
+ SolidColorDrawQuad, visible_rect, color, force_anti_aliasing_off);
EXPECT_EQ(DrawQuad::SOLID_COLOR, copy_quad->material);
+ EXPECT_RECT_EQ(visible_rect, copy_quad->visible_rect);
EXPECT_EQ(color, copy_quad->color);
EXPECT_EQ(force_anti_aliasing_off, copy_quad->force_anti_aliasing_off);
@@ -451,12 +467,15 @@ TEST(DrawQuadTest, CopySolidColorDrawQuad) {
TEST(DrawQuadTest, CopyStreamVideoDrawQuad) {
gfx::Rect opaque_rect(33, 47, 10, 12);
+ gfx::Rect visible_rect(40, 50, 30, 20);
ResourceProvider::ResourceId resource_id = 64;
gfx::Transform matrix = gfx::Transform(0.5, 0.25, 1, 0.75, 0, 1);
CREATE_SHARED_STATE();
- CREATE_QUAD_3_NEW(StreamVideoDrawQuad, opaque_rect, resource_id, matrix);
+ CREATE_QUAD_4_NEW(
+ StreamVideoDrawQuad, opaque_rect, visible_rect, resource_id, matrix);
EXPECT_EQ(DrawQuad::STREAM_VIDEO_CONTENT, copy_quad->material);
+ EXPECT_RECT_EQ(visible_rect, copy_quad->visible_rect);
EXPECT_RECT_EQ(opaque_rect, copy_quad->opaque_rect);
EXPECT_EQ(resource_id, copy_quad->resource_id);
EXPECT_EQ(matrix, copy_quad->matrix);
@@ -468,11 +487,13 @@ TEST(DrawQuadTest, CopyStreamVideoDrawQuad) {
}
TEST(DrawQuadTest, CopySurfaceDrawQuad) {
+ gfx::Rect visible_rect(40, 50, 30, 20);
int surface_id = 1234;
CREATE_SHARED_STATE();
- CREATE_QUAD_1_NEW(SurfaceDrawQuad, surface_id);
+ CREATE_QUAD_2_NEW(SurfaceDrawQuad, visible_rect, surface_id);
EXPECT_EQ(DrawQuad::SURFACE_CONTENT, copy_quad->material);
+ EXPECT_RECT_EQ(visible_rect, copy_quad->visible_rect);
EXPECT_EQ(surface_id, copy_quad->surface_id);
CREATE_QUAD_1_ALL(SurfaceDrawQuad, surface_id);
@@ -483,6 +504,7 @@ TEST(DrawQuadTest, CopySurfaceDrawQuad) {
TEST(DrawQuadTest, CopyTextureDrawQuad) {
gfx::Rect opaque_rect(33, 47, 10, 12);
+ gfx::Rect visible_rect(40, 50, 30, 20);
unsigned resource_id = 82;
bool premultiplied_alpha = true;
gfx::PointF uv_top_left(0.5f, 224.f);
@@ -491,8 +513,9 @@ TEST(DrawQuadTest, CopyTextureDrawQuad) {
bool flipped = true;
CREATE_SHARED_STATE();
- CREATE_QUAD_8_NEW(TextureDrawQuad,
+ CREATE_QUAD_9_NEW(TextureDrawQuad,
opaque_rect,
+ visible_rect,
resource_id,
premultiplied_alpha,
uv_top_left,
@@ -501,6 +524,7 @@ TEST(DrawQuadTest, CopyTextureDrawQuad) {
vertex_opacity,
flipped);
EXPECT_EQ(DrawQuad::TEXTURE_CONTENT, copy_quad->material);
+ EXPECT_RECT_EQ(visible_rect, copy_quad->visible_rect);
EXPECT_RECT_EQ(opaque_rect, copy_quad->opaque_rect);
EXPECT_EQ(resource_id, copy_quad->resource_id);
EXPECT_EQ(premultiplied_alpha, copy_quad->premultiplied_alpha);
@@ -528,20 +552,23 @@ TEST(DrawQuadTest, CopyTextureDrawQuad) {
TEST(DrawQuadTest, CopyTileDrawQuad) {
gfx::Rect opaque_rect(33, 44, 22, 33);
+ gfx::Rect visible_rect(40, 50, 30, 20);
unsigned resource_id = 104;
gfx::RectF tex_coord_rect(31.f, 12.f, 54.f, 20.f);
gfx::Size texture_size(85, 32);
bool swizzle_contents = true;
CREATE_SHARED_STATE();
- CREATE_QUAD_5_NEW(TileDrawQuad,
+ CREATE_QUAD_6_NEW(TileDrawQuad,
opaque_rect,
+ visible_rect,
resource_id,
tex_coord_rect,
texture_size,
swizzle_contents);
EXPECT_EQ(DrawQuad::TILED_CONTENT, copy_quad->material);
EXPECT_RECT_EQ(opaque_rect, copy_quad->opaque_rect);
+ EXPECT_RECT_EQ(visible_rect, copy_quad->visible_rect);
EXPECT_EQ(resource_id, copy_quad->resource_id);
EXPECT_EQ(tex_coord_rect, copy_quad->tex_coord_rect);
EXPECT_EQ(texture_size, copy_quad->texture_size);
@@ -561,6 +588,7 @@ TEST(DrawQuadTest, CopyTileDrawQuad) {
TEST(DrawQuadTest, CopyYUVVideoDrawQuad) {
gfx::Rect opaque_rect(33, 47, 10, 12);
+ gfx::Rect visible_rect(40, 50, 30, 20);
gfx::SizeF tex_scale(0.75f, 0.5f);
ResourceProvider::ResourceId y_plane_resource_id = 45;
ResourceProvider::ResourceId u_plane_resource_id = 532;
@@ -568,8 +596,9 @@ TEST(DrawQuadTest, CopyYUVVideoDrawQuad) {
ResourceProvider::ResourceId a_plane_resource_id = 63;
CREATE_SHARED_STATE();
- CREATE_QUAD_6_NEW(YUVVideoDrawQuad,
+ CREATE_QUAD_7_NEW(YUVVideoDrawQuad,
opaque_rect,
+ visible_rect,
tex_scale,
y_plane_resource_id,
u_plane_resource_id,
@@ -577,6 +606,7 @@ TEST(DrawQuadTest, CopyYUVVideoDrawQuad) {
a_plane_resource_id);
EXPECT_EQ(DrawQuad::YUV_VIDEO_CONTENT, copy_quad->material);
EXPECT_RECT_EQ(opaque_rect, copy_quad->opaque_rect);
+ EXPECT_RECT_EQ(visible_rect, copy_quad->visible_rect);
EXPECT_EQ(tex_scale, copy_quad->tex_scale);
EXPECT_EQ(y_plane_resource_id, copy_quad->y_plane_resource_id);
EXPECT_EQ(u_plane_resource_id, copy_quad->u_plane_resource_id);
@@ -599,6 +629,7 @@ TEST(DrawQuadTest, CopyYUVVideoDrawQuad) {
TEST(DrawQuadTest, CopyPictureDrawQuad) {
gfx::Rect opaque_rect(33, 44, 22, 33);
+ gfx::Rect visible_rect(40, 50, 30, 20);
gfx::RectF tex_coord_rect(31.f, 12.f, 54.f, 20.f);
gfx::Size texture_size(85, 32);
ResourceFormat texture_format = RGBA_8888;
@@ -607,8 +638,9 @@ TEST(DrawQuadTest, CopyPictureDrawQuad) {
scoped_refptr<PicturePileImpl> picture_pile = PicturePileImpl::Create();
CREATE_SHARED_STATE();
- CREATE_QUAD_7_NEW(PictureDrawQuad,
+ CREATE_QUAD_8_NEW(PictureDrawQuad,
opaque_rect,
+ visible_rect,
tex_coord_rect,
texture_size,
texture_format,
@@ -617,6 +649,7 @@ TEST(DrawQuadTest, CopyPictureDrawQuad) {
picture_pile);
EXPECT_EQ(DrawQuad::PICTURE_CONTENT, copy_quad->material);
EXPECT_RECT_EQ(opaque_rect, copy_quad->opaque_rect);
+ EXPECT_RECT_EQ(visible_rect, copy_quad->visible_rect);
EXPECT_EQ(tex_coord_rect, copy_quad->tex_coord_rect);
EXPECT_EQ(texture_size, copy_quad->texture_size);
EXPECT_EQ(texture_format, copy_quad->texture_format);
@@ -660,37 +693,45 @@ class DrawQuadIteratorTest : public testing::Test {
};
TEST_F(DrawQuadIteratorTest, CheckerboardDrawQuad) {
+ gfx::Rect visible_rect(40, 50, 30, 20);
SkColor color = 0xfabb0011;
CREATE_SHARED_STATE();
- CREATE_QUAD_1_NEW(CheckerboardDrawQuad, color);
+ CREATE_QUAD_2_NEW(CheckerboardDrawQuad, visible_rect, color);
EXPECT_EQ(0, IterateAndCount(quad_new.get()));
}
TEST_F(DrawQuadIteratorTest, DebugBorderDrawQuad) {
+ gfx::Rect visible_rect(40, 50, 30, 20);
SkColor color = 0xfabb0011;
int width = 99;
CREATE_SHARED_STATE();
- CREATE_QUAD_2_NEW(DebugBorderDrawQuad, color, width);
+ CREATE_QUAD_3_NEW(DebugBorderDrawQuad, visible_rect, color, width);
EXPECT_EQ(0, IterateAndCount(quad_new.get()));
}
TEST_F(DrawQuadIteratorTest, IOSurfaceDrawQuad) {
gfx::Rect opaque_rect(33, 47, 10, 12);
+ gfx::Rect visible_rect(40, 50, 30, 20);
gfx::Size size(58, 95);
ResourceProvider::ResourceId resource_id = 72;
IOSurfaceDrawQuad::Orientation orientation = IOSurfaceDrawQuad::UNFLIPPED;
CREATE_SHARED_STATE();
- CREATE_QUAD_4_NEW(
- IOSurfaceDrawQuad, opaque_rect, size, resource_id, orientation);
+ CREATE_QUAD_5_NEW(IOSurfaceDrawQuad,
+ opaque_rect,
+ visible_rect,
+ size,
+ resource_id,
+ orientation);
EXPECT_EQ(resource_id, quad_new->io_surface_resource_id);
EXPECT_EQ(1, IterateAndCount(quad_new.get()));
EXPECT_EQ(resource_id + 1, quad_new->io_surface_resource_id);
}
TEST_F(DrawQuadIteratorTest, RenderPassDrawQuad) {
+ gfx::Rect visible_rect(40, 50, 30, 20);
RenderPass::Id render_pass_id(22, 64);
bool is_replica = true;
ResourceProvider::ResourceId mask_resource_id = 78;
@@ -705,7 +746,8 @@ TEST_F(DrawQuadIteratorTest, RenderPassDrawQuad) {
RenderPass::Id copied_render_pass_id(235, 11);
CREATE_SHARED_STATE();
- CREATE_QUAD_7_NEW_1(RenderPassDrawQuad,
+ CREATE_QUAD_8_NEW_1(RenderPassDrawQuad,
+ visible_rect,
render_pass_id,
is_replica,
mask_resource_id,
@@ -723,36 +765,42 @@ TEST_F(DrawQuadIteratorTest, RenderPassDrawQuad) {
}
TEST_F(DrawQuadIteratorTest, SolidColorDrawQuad) {
+ gfx::Rect visible_rect(40, 50, 30, 20);
SkColor color = 0x49494949;
bool force_anti_aliasing_off = false;
CREATE_SHARED_STATE();
- CREATE_QUAD_2_NEW(SolidColorDrawQuad, color, force_anti_aliasing_off);
+ CREATE_QUAD_3_NEW(
+ SolidColorDrawQuad, visible_rect, color, force_anti_aliasing_off);
EXPECT_EQ(0, IterateAndCount(quad_new.get()));
}
TEST_F(DrawQuadIteratorTest, StreamVideoDrawQuad) {
gfx::Rect opaque_rect(33, 47, 10, 12);
+ gfx::Rect visible_rect(40, 50, 30, 20);
ResourceProvider::ResourceId resource_id = 64;
gfx::Transform matrix = gfx::Transform(0.5, 0.25, 1, 0.75, 0, 1);
CREATE_SHARED_STATE();
- CREATE_QUAD_3_NEW(StreamVideoDrawQuad, opaque_rect, resource_id, matrix);
+ CREATE_QUAD_4_NEW(
+ StreamVideoDrawQuad, opaque_rect, visible_rect, resource_id, matrix);
EXPECT_EQ(resource_id, quad_new->resource_id);
EXPECT_EQ(1, IterateAndCount(quad_new.get()));
EXPECT_EQ(resource_id + 1, quad_new->resource_id);
}
TEST_F(DrawQuadIteratorTest, SurfaceDrawQuad) {
+ gfx::Rect visible_rect(40, 50, 30, 20);
int surface_id = 4321;
CREATE_SHARED_STATE();
- CREATE_QUAD_1_NEW(SurfaceDrawQuad, surface_id);
+ CREATE_QUAD_2_NEW(SurfaceDrawQuad, visible_rect, surface_id);
EXPECT_EQ(0, IterateAndCount(quad_new.get()));
}
TEST_F(DrawQuadIteratorTest, TextureDrawQuad) {
gfx::Rect opaque_rect(33, 47, 10, 12);
+ gfx::Rect visible_rect(40, 50, 30, 20);
unsigned resource_id = 82;
bool premultiplied_alpha = true;
gfx::PointF uv_top_left(0.5f, 224.f);
@@ -761,8 +809,9 @@ TEST_F(DrawQuadIteratorTest, TextureDrawQuad) {
bool flipped = true;
CREATE_SHARED_STATE();
- CREATE_QUAD_8_NEW(TextureDrawQuad,
+ CREATE_QUAD_9_NEW(TextureDrawQuad,
opaque_rect,
+ visible_rect,
resource_id,
premultiplied_alpha,
uv_top_left,
@@ -777,14 +826,16 @@ TEST_F(DrawQuadIteratorTest, TextureDrawQuad) {
TEST_F(DrawQuadIteratorTest, TileDrawQuad) {
gfx::Rect opaque_rect(33, 44, 22, 33);
+ gfx::Rect visible_rect(40, 50, 30, 20);
unsigned resource_id = 104;
gfx::RectF tex_coord_rect(31.f, 12.f, 54.f, 20.f);
gfx::Size texture_size(85, 32);
bool swizzle_contents = true;
CREATE_SHARED_STATE();
- CREATE_QUAD_5_NEW(TileDrawQuad,
+ CREATE_QUAD_6_NEW(TileDrawQuad,
opaque_rect,
+ visible_rect,
resource_id,
tex_coord_rect,
texture_size,
@@ -796,6 +847,7 @@ TEST_F(DrawQuadIteratorTest, TileDrawQuad) {
TEST_F(DrawQuadIteratorTest, YUVVideoDrawQuad) {
gfx::Rect opaque_rect(33, 47, 10, 12);
+ gfx::Rect visible_rect(40, 50, 30, 20);
gfx::SizeF tex_scale(0.75f, 0.5f);
ResourceProvider::ResourceId y_plane_resource_id = 45;
ResourceProvider::ResourceId u_plane_resource_id = 532;
@@ -803,8 +855,9 @@ TEST_F(DrawQuadIteratorTest, YUVVideoDrawQuad) {
ResourceProvider::ResourceId a_plane_resource_id = 63;
CREATE_SHARED_STATE();
- CREATE_QUAD_6_NEW(YUVVideoDrawQuad,
+ CREATE_QUAD_7_NEW(YUVVideoDrawQuad,
opaque_rect,
+ visible_rect,
tex_scale,
y_plane_resource_id,
u_plane_resource_id,
@@ -825,6 +878,7 @@ TEST_F(DrawQuadIteratorTest, YUVVideoDrawQuad) {
// Disabled until picture draw quad is supported for ubercomp: crbug.com/231715
TEST_F(DrawQuadIteratorTest, DISABLED_PictureDrawQuad) {
gfx::Rect opaque_rect(33, 44, 22, 33);
+ gfx::Rect visible_rect(40, 50, 30, 20);
gfx::RectF tex_coord_rect(31.f, 12.f, 54.f, 20.f);
gfx::Size texture_size(85, 32);
ResourceFormat texture_format = RGBA_8888;
@@ -833,8 +887,9 @@ TEST_F(DrawQuadIteratorTest, DISABLED_PictureDrawQuad) {
scoped_refptr<PicturePileImpl> picture_pile = PicturePileImpl::Create();
CREATE_SHARED_STATE();
- CREATE_QUAD_7_NEW(PictureDrawQuad,
+ CREATE_QUAD_8_NEW(PictureDrawQuad,
opaque_rect,
+ visible_rect,
tex_coord_rect,
texture_size,
texture_format,
diff --git a/cc/quads/io_surface_draw_quad.cc b/cc/quads/io_surface_draw_quad.cc
index d19b2ad..a7a8f69 100644
--- a/cc/quads/io_surface_draw_quad.cc
+++ b/cc/quads/io_surface_draw_quad.cc
@@ -22,10 +22,10 @@ scoped_ptr<IOSurfaceDrawQuad> IOSurfaceDrawQuad::Create() {
void IOSurfaceDrawQuad::SetNew(const SharedQuadState* shared_quad_state,
const gfx::Rect& rect,
const gfx::Rect& opaque_rect,
+ const gfx::Rect& visible_rect,
const gfx::Size& io_surface_size,
unsigned io_surface_resource_id,
Orientation orientation) {
- gfx::Rect visible_rect = rect;
bool needs_blending = false;
DrawQuad::SetAll(shared_quad_state, DrawQuad::IO_SURFACE_CONTENT, rect,
opaque_rect, visible_rect, needs_blending);
diff --git a/cc/quads/io_surface_draw_quad.h b/cc/quads/io_surface_draw_quad.h
index 39975c8..a23e54c 100644
--- a/cc/quads/io_surface_draw_quad.h
+++ b/cc/quads/io_surface_draw_quad.h
@@ -25,6 +25,7 @@ class CC_EXPORT IOSurfaceDrawQuad : public DrawQuad {
void SetNew(const SharedQuadState* shared_quad_state,
const gfx::Rect& rect,
const gfx::Rect& opaque_rect,
+ const gfx::Rect& visible_rect,
const gfx::Size& io_surface_size,
unsigned io_surface_resource_id,
Orientation orientation);
diff --git a/cc/quads/picture_draw_quad.cc b/cc/quads/picture_draw_quad.cc
index a092c8d..37bb07e 100644
--- a/cc/quads/picture_draw_quad.cc
+++ b/cc/quads/picture_draw_quad.cc
@@ -23,20 +23,22 @@ scoped_ptr<PictureDrawQuad> PictureDrawQuad::Create() {
void PictureDrawQuad::SetNew(const SharedQuadState* shared_quad_state,
const gfx::Rect& rect,
const gfx::Rect& opaque_rect,
+ const gfx::Rect& visible_rect,
const gfx::RectF& tex_coord_rect,
const gfx::Size& texture_size,
ResourceFormat texture_format,
const gfx::Rect& content_rect,
float contents_scale,
scoped_refptr<PicturePileImpl> picture_pile) {
- ContentDrawQuadBase::SetNew(shared_quad_state,
- DrawQuad::PICTURE_CONTENT,
- rect,
- opaque_rect,
- tex_coord_rect,
- texture_size,
- !PlatformColor::SameComponentOrder(
- texture_format));
+ ContentDrawQuadBase::SetNew(
+ shared_quad_state,
+ DrawQuad::PICTURE_CONTENT,
+ rect,
+ opaque_rect,
+ visible_rect,
+ tex_coord_rect,
+ texture_size,
+ !PlatformColor::SameComponentOrder(texture_format));
this->content_rect = content_rect;
this->contents_scale = contents_scale;
this->picture_pile = picture_pile;
diff --git a/cc/quads/picture_draw_quad.h b/cc/quads/picture_draw_quad.h
index 76d64b0b..ea1735f 100644
--- a/cc/quads/picture_draw_quad.h
+++ b/cc/quads/picture_draw_quad.h
@@ -25,6 +25,7 @@ class CC_EXPORT PictureDrawQuad : public ContentDrawQuadBase {
void SetNew(const SharedQuadState* shared_quad_state,
const gfx::Rect& rect,
const gfx::Rect& opaque_rect,
+ const gfx::Rect& visible_rect,
const gfx::RectF& tex_coord_rect,
const gfx::Size& texture_size,
ResourceFormat texture_format,
diff --git a/cc/quads/render_pass_draw_quad.cc b/cc/quads/render_pass_draw_quad.cc
index b26eaf9..81b0da2 100644
--- a/cc/quads/render_pass_draw_quad.cc
+++ b/cc/quads/render_pass_draw_quad.cc
@@ -37,6 +37,7 @@ scoped_ptr<RenderPassDrawQuad> RenderPassDrawQuad::Copy(
void RenderPassDrawQuad::SetNew(
const SharedQuadState* shared_quad_state,
const gfx::Rect& rect,
+ const gfx::Rect& visible_rect,
RenderPass::Id render_pass_id,
bool is_replica,
ResourceProvider::ResourceId mask_resource_id,
@@ -48,7 +49,6 @@ void RenderPassDrawQuad::SetNew(
DCHECK_GE(render_pass_id.index, 0);
gfx::Rect opaque_rect;
- gfx::Rect visible_rect = rect;
bool needs_blending = false;
SetAll(shared_quad_state, rect, opaque_rect, visible_rect, needs_blending,
render_pass_id, is_replica, mask_resource_id,
diff --git a/cc/quads/render_pass_draw_quad.h b/cc/quads/render_pass_draw_quad.h
index 28b58db..1f6217dd 100644
--- a/cc/quads/render_pass_draw_quad.h
+++ b/cc/quads/render_pass_draw_quad.h
@@ -22,6 +22,7 @@ class CC_EXPORT RenderPassDrawQuad : public DrawQuad {
void SetNew(const SharedQuadState* shared_quad_state,
const gfx::Rect& rect,
+ const gfx::Rect& visible_rect,
RenderPass::Id render_pass_id,
bool is_replica,
ResourceProvider::ResourceId mask_resource_id,
diff --git a/cc/quads/render_pass_unittest.cc b/cc/quads/render_pass_unittest.cc
index e70a33dd..fd58523 100644
--- a/cc/quads/render_pass_unittest.cc
+++ b/cc/quads/render_pass_unittest.cc
@@ -92,7 +92,7 @@ TEST(RenderPassTest, CopyShouldBeIdenticalExceptIdAndQuads) {
scoped_ptr<CheckerboardDrawQuad> checkerboard_quad =
CheckerboardDrawQuad::Create();
checkerboard_quad->SetNew(
- pass->shared_quad_state_list.back(), gfx::Rect(), SkColor());
+ pass->shared_quad_state_list.back(), gfx::Rect(), gfx::Rect(), SkColor());
pass->quad_list.push_back(checkerboard_quad.PassAs<DrawQuad>());
RenderPass::Id new_id(63, 4);
@@ -142,14 +142,18 @@ TEST(RenderPassTest, CopyAllShouldBeIdentical) {
scoped_ptr<CheckerboardDrawQuad> checkerboard_quad1 =
CheckerboardDrawQuad::Create();
- checkerboard_quad1->SetNew(
- pass->shared_quad_state_list.back(), gfx::Rect(1, 1, 1, 1), SkColor());
+ checkerboard_quad1->SetNew(pass->shared_quad_state_list.back(),
+ gfx::Rect(1, 1, 1, 1),
+ gfx::Rect(1, 1, 1, 1),
+ SkColor());
pass->quad_list.push_back(checkerboard_quad1.PassAs<DrawQuad>());
scoped_ptr<CheckerboardDrawQuad> checkerboard_quad2 =
CheckerboardDrawQuad::Create();
- checkerboard_quad2->SetNew(
- pass->shared_quad_state_list.back(), gfx::Rect(2, 2, 2, 2), SkColor());
+ checkerboard_quad2->SetNew(pass->shared_quad_state_list.back(),
+ gfx::Rect(2, 2, 2, 2),
+ gfx::Rect(2, 2, 2, 2),
+ SkColor());
pass->quad_list.push_back(checkerboard_quad2.PassAs<DrawQuad>());
// And two quads using another shared state.
@@ -165,14 +169,18 @@ TEST(RenderPassTest, CopyAllShouldBeIdentical) {
scoped_ptr<CheckerboardDrawQuad> checkerboard_quad3 =
CheckerboardDrawQuad::Create();
- checkerboard_quad3->SetNew(
- pass->shared_quad_state_list.back(), gfx::Rect(3, 3, 3, 3), SkColor());
+ checkerboard_quad3->SetNew(pass->shared_quad_state_list.back(),
+ gfx::Rect(3, 3, 3, 3),
+ gfx::Rect(3, 3, 3, 3),
+ SkColor());
pass->quad_list.push_back(checkerboard_quad3.PassAs<DrawQuad>());
scoped_ptr<CheckerboardDrawQuad> checkerboard_quad4 =
CheckerboardDrawQuad::Create();
- checkerboard_quad4->SetNew(
- pass->shared_quad_state_list.back(), gfx::Rect(4, 4, 4, 4), SkColor());
+ checkerboard_quad4->SetNew(pass->shared_quad_state_list.back(),
+ gfx::Rect(4, 4, 4, 4),
+ gfx::Rect(4, 4, 4, 4),
+ SkColor());
pass->quad_list.push_back(checkerboard_quad4.PassAs<DrawQuad>());
// A second render pass with a quad.
@@ -202,14 +210,17 @@ TEST(RenderPassTest, CopyAllShouldBeIdentical) {
scoped_ptr<CheckerboardDrawQuad> contrib_quad =
CheckerboardDrawQuad::Create();
- contrib_quad->SetNew(
- contrib->shared_quad_state_list.back(), gfx::Rect(3, 3, 3, 3), SkColor());
+ contrib_quad->SetNew(contrib->shared_quad_state_list.back(),
+ gfx::Rect(3, 3, 3, 3),
+ gfx::Rect(3, 3, 3, 3),
+ SkColor());
contrib->quad_list.push_back(contrib_quad.PassAs<DrawQuad>());
// And a RenderPassDrawQuad for the contributing pass.
scoped_ptr<RenderPassDrawQuad> pass_quad = RenderPassDrawQuad::Create();
pass_quad->SetNew(pass->shared_quad_state_list.back(),
contrib_output_rect,
+ contrib_output_rect,
contrib_id,
false, // is_replica
0, // mask_resource_id
@@ -259,8 +270,10 @@ TEST(RenderPassTest, CopyAllWithCulledQuads) {
scoped_ptr<CheckerboardDrawQuad> checkerboard_quad1 =
CheckerboardDrawQuad::Create();
- checkerboard_quad1->SetNew(
- pass->shared_quad_state_list.back(), gfx::Rect(1, 1, 1, 1), SkColor());
+ checkerboard_quad1->SetNew(pass->shared_quad_state_list.back(),
+ gfx::Rect(1, 1, 1, 1),
+ gfx::Rect(1, 1, 1, 1),
+ SkColor());
pass->quad_list.push_back(checkerboard_quad1.PassAs<DrawQuad>());
// A shared state with no quads, they were culled.
@@ -298,8 +311,10 @@ TEST(RenderPassTest, CopyAllWithCulledQuads) {
scoped_ptr<CheckerboardDrawQuad> checkerboard_quad2 =
CheckerboardDrawQuad::Create();
- checkerboard_quad2->SetNew(
- pass->shared_quad_state_list.back(), gfx::Rect(3, 3, 3, 3), SkColor());
+ checkerboard_quad2->SetNew(pass->shared_quad_state_list.back(),
+ gfx::Rect(3, 3, 3, 3),
+ gfx::Rect(3, 3, 3, 3),
+ SkColor());
pass->quad_list.push_back(checkerboard_quad2.PassAs<DrawQuad>());
pass_list.push_back(pass.PassAs<RenderPass>());
diff --git a/cc/quads/solid_color_draw_quad.cc b/cc/quads/solid_color_draw_quad.cc
index d0b9ec8..7c0b554 100644
--- a/cc/quads/solid_color_draw_quad.cc
+++ b/cc/quads/solid_color_draw_quad.cc
@@ -18,10 +18,10 @@ scoped_ptr<SolidColorDrawQuad> SolidColorDrawQuad::Create() {
void SolidColorDrawQuad::SetNew(const SharedQuadState* shared_quad_state,
const gfx::Rect& rect,
+ const gfx::Rect& visible_rect,
SkColor color,
bool force_anti_aliasing_off) {
gfx::Rect opaque_rect = SkColorGetA(color) == 255 ? rect : gfx::Rect();
- gfx::Rect visible_rect = rect;
bool needs_blending = false;
DrawQuad::SetAll(shared_quad_state, DrawQuad::SOLID_COLOR, rect, opaque_rect,
visible_rect, needs_blending);
diff --git a/cc/quads/solid_color_draw_quad.h b/cc/quads/solid_color_draw_quad.h
index a13e8ee..4b8b9a3 100644
--- a/cc/quads/solid_color_draw_quad.h
+++ b/cc/quads/solid_color_draw_quad.h
@@ -18,6 +18,7 @@ class CC_EXPORT SolidColorDrawQuad : public DrawQuad {
void SetNew(const SharedQuadState* shared_quad_state,
const gfx::Rect& rect,
+ const gfx::Rect& visible_rect,
SkColor color,
bool force_anti_aliasing_off);
diff --git a/cc/quads/stream_video_draw_quad.cc b/cc/quads/stream_video_draw_quad.cc
index 0ae3962..a9a75bc 100644
--- a/cc/quads/stream_video_draw_quad.cc
+++ b/cc/quads/stream_video_draw_quad.cc
@@ -19,9 +19,9 @@ scoped_ptr<StreamVideoDrawQuad> StreamVideoDrawQuad::Create() {
void StreamVideoDrawQuad::SetNew(const SharedQuadState* shared_quad_state,
const gfx::Rect& rect,
const gfx::Rect& opaque_rect,
+ const gfx::Rect& visible_rect,
unsigned resource_id,
const gfx::Transform& matrix) {
- gfx::Rect visible_rect = rect;
bool needs_blending = false;
DrawQuad::SetAll(shared_quad_state, DrawQuad::STREAM_VIDEO_CONTENT, rect,
opaque_rect, visible_rect, needs_blending);
diff --git a/cc/quads/stream_video_draw_quad.h b/cc/quads/stream_video_draw_quad.h
index 27a6765..bc85325 100644
--- a/cc/quads/stream_video_draw_quad.h
+++ b/cc/quads/stream_video_draw_quad.h
@@ -19,6 +19,7 @@ class CC_EXPORT StreamVideoDrawQuad : public DrawQuad {
void SetNew(const SharedQuadState* shared_quad_state,
const gfx::Rect& rect,
const gfx::Rect& opaque_rect,
+ const gfx::Rect& visible_rect,
unsigned resource_id,
const gfx::Transform& matrix);
diff --git a/cc/quads/surface_draw_quad.cc b/cc/quads/surface_draw_quad.cc
index e079108..e7d09d5 100644
--- a/cc/quads/surface_draw_quad.cc
+++ b/cc/quads/surface_draw_quad.cc
@@ -16,21 +16,20 @@ scoped_ptr<SurfaceDrawQuad> SurfaceDrawQuad::Create() {
}
void SurfaceDrawQuad::SetNew(const SharedQuadState* shared_quad_state,
- gfx::Rect rect,
+ const gfx::Rect& rect,
+ const gfx::Rect& visible_rect,
int surface_id) {
gfx::Rect opaque_rect;
- gfx::Rect visible_rect = rect;
bool needs_blending = false;
DrawQuad::SetAll(shared_quad_state, DrawQuad::SURFACE_CONTENT, rect,
opaque_rect, visible_rect, needs_blending);
this->surface_id = surface_id;
}
-
void SurfaceDrawQuad::SetAll(const SharedQuadState* shared_quad_state,
- gfx::Rect rect,
- gfx::Rect opaque_rect,
- gfx::Rect visible_rect,
+ const gfx::Rect& rect,
+ const gfx::Rect& opaque_rect,
+ const gfx::Rect& visible_rect,
bool needs_blending,
int surface_id) {
DrawQuad::SetAll(shared_quad_state, DrawQuad::SURFACE_CONTENT, rect,
diff --git a/cc/quads/surface_draw_quad.h b/cc/quads/surface_draw_quad.h
index b1e614122..f309211 100644
--- a/cc/quads/surface_draw_quad.h
+++ b/cc/quads/surface_draw_quad.h
@@ -16,13 +16,14 @@ class CC_EXPORT SurfaceDrawQuad : public DrawQuad {
static scoped_ptr<SurfaceDrawQuad> Create();
void SetNew(const SharedQuadState* shared_quad_state,
- gfx::Rect rect,
+ const gfx::Rect& rect,
+ const gfx::Rect& visible_rect,
int surface_id);
void SetAll(const SharedQuadState* shared_quad_state,
- gfx::Rect rect,
- gfx::Rect opaque_rect,
- gfx::Rect visible_rect,
+ const gfx::Rect& rect,
+ const gfx::Rect& opaque_rect,
+ const gfx::Rect& visible_rect,
bool needs_blending,
int surface_id);
diff --git a/cc/quads/texture_draw_quad.cc b/cc/quads/texture_draw_quad.cc
index 31fd07a..fd57feb 100644
--- a/cc/quads/texture_draw_quad.cc
+++ b/cc/quads/texture_draw_quad.cc
@@ -29,13 +29,14 @@ scoped_ptr<TextureDrawQuad> TextureDrawQuad::Create() {
void TextureDrawQuad::SetNew(const SharedQuadState* shared_quad_state,
const gfx::Rect& rect,
const gfx::Rect& opaque_rect,
- unsigned resource_id, bool premultiplied_alpha,
+ const gfx::Rect& visible_rect,
+ unsigned resource_id,
+ bool premultiplied_alpha,
const gfx::PointF& uv_top_left,
const gfx::PointF& uv_bottom_right,
SkColor background_color,
const float vertex_opacity[4],
bool flipped) {
- gfx::Rect visible_rect = rect;
bool needs_blending = vertex_opacity[0] != 1.0f || vertex_opacity[1] != 1.0f
|| vertex_opacity[2] != 1.0f || vertex_opacity[3] != 1.0f;
DrawQuad::SetAll(shared_quad_state, DrawQuad::TEXTURE_CONTENT, rect,
diff --git a/cc/quads/texture_draw_quad.h b/cc/quads/texture_draw_quad.h
index 19b5483..7fba634 100644
--- a/cc/quads/texture_draw_quad.h
+++ b/cc/quads/texture_draw_quad.h
@@ -19,6 +19,7 @@ class CC_EXPORT TextureDrawQuad : public DrawQuad {
void SetNew(const SharedQuadState* shared_quad_state,
const gfx::Rect& rect,
const gfx::Rect& opaque_rect,
+ const gfx::Rect& visible_rect,
unsigned resource_id,
bool premultiplied_alpha,
const gfx::PointF& uv_top_left,
diff --git a/cc/quads/tile_draw_quad.cc b/cc/quads/tile_draw_quad.cc
index c17bb99..6e28607 100644
--- a/cc/quads/tile_draw_quad.cc
+++ b/cc/quads/tile_draw_quad.cc
@@ -24,12 +24,18 @@ scoped_ptr<TileDrawQuad> TileDrawQuad::Create() {
void TileDrawQuad::SetNew(const SharedQuadState* shared_quad_state,
const gfx::Rect& rect,
const gfx::Rect& opaque_rect,
+ const gfx::Rect& visible_rect,
unsigned resource_id,
const gfx::RectF& tex_coord_rect,
const gfx::Size& texture_size,
bool swizzle_contents) {
- ContentDrawQuadBase::SetNew(shared_quad_state, DrawQuad::TILED_CONTENT, rect,
- opaque_rect, tex_coord_rect, texture_size,
+ ContentDrawQuadBase::SetNew(shared_quad_state,
+ DrawQuad::TILED_CONTENT,
+ rect,
+ opaque_rect,
+ visible_rect,
+ tex_coord_rect,
+ texture_size,
swizzle_contents);
this->resource_id = resource_id;
}
diff --git a/cc/quads/tile_draw_quad.h b/cc/quads/tile_draw_quad.h
index 75eb4d4..71911ea 100644
--- a/cc/quads/tile_draw_quad.h
+++ b/cc/quads/tile_draw_quad.h
@@ -17,6 +17,7 @@ class CC_EXPORT TileDrawQuad : public ContentDrawQuadBase {
void SetNew(const SharedQuadState* shared_quad_state,
const gfx::Rect& rect,
const gfx::Rect& opaque_rect,
+ const gfx::Rect& visible_rect,
unsigned resource_id,
const gfx::RectF& tex_coord_rect,
const gfx::Size& texture_size,
diff --git a/cc/quads/yuv_video_draw_quad.cc b/cc/quads/yuv_video_draw_quad.cc
index ea5363e..e410757 100644
--- a/cc/quads/yuv_video_draw_quad.cc
+++ b/cc/quads/yuv_video_draw_quad.cc
@@ -24,12 +24,12 @@ scoped_ptr<YUVVideoDrawQuad> YUVVideoDrawQuad::Create() {
void YUVVideoDrawQuad::SetNew(const SharedQuadState* shared_quad_state,
const gfx::Rect& rect,
const gfx::Rect& opaque_rect,
+ const gfx::Rect& visible_rect,
const gfx::SizeF& tex_scale,
unsigned y_plane_resource_id,
unsigned u_plane_resource_id,
unsigned v_plane_resource_id,
unsigned a_plane_resource_id) {
- gfx::Rect visible_rect = rect;
bool needs_blending = false;
DrawQuad::SetAll(shared_quad_state, DrawQuad::YUV_VIDEO_CONTENT, rect,
opaque_rect, visible_rect, needs_blending);
diff --git a/cc/quads/yuv_video_draw_quad.h b/cc/quads/yuv_video_draw_quad.h
index 175b41a..3ac2336 100644
--- a/cc/quads/yuv_video_draw_quad.h
+++ b/cc/quads/yuv_video_draw_quad.h
@@ -22,6 +22,7 @@ class CC_EXPORT YUVVideoDrawQuad : public DrawQuad {
void SetNew(const SharedQuadState* shared_quad_state,
const gfx::Rect& rect,
const gfx::Rect& opaque_rect,
+ const gfx::Rect& visible_rect,
const gfx::SizeF& tex_scale,
unsigned y_plane_resource_id,
unsigned u_plane_resource_id,
diff --git a/cc/surfaces/surface_aggregator_test_helpers.cc b/cc/surfaces/surface_aggregator_test_helpers.cc
index a1bb0be..d484d7e 100644
--- a/cc/surfaces/surface_aggregator_test_helpers.cc
+++ b/cc/surfaces/surface_aggregator_test_helpers.cc
@@ -46,8 +46,10 @@ void AddTestSurfaceQuad(TestRenderPass* pass,
scoped_ptr<SurfaceDrawQuad> surface_quad = SurfaceDrawQuad::Create();
gfx::Rect quad_rect = gfx::Rect(surface_size);
- surface_quad->SetNew(
- pass->shared_quad_state_list.back(), gfx::Rect(surface_size), surface_id);
+ surface_quad->SetNew(pass->shared_quad_state_list.back(),
+ gfx::Rect(surface_size),
+ gfx::Rect(surface_size),
+ surface_id);
pass->quad_list.push_back(surface_quad.PassAs<DrawQuad>());
}
void AddTestRenderPassQuad(TestRenderPass* pass,
@@ -67,6 +69,7 @@ void AddTestRenderPassQuad(TestRenderPass* pass,
scoped_ptr<RenderPassDrawQuad> quad = RenderPassDrawQuad::Create();
quad->SetNew(shared_state,
output_rect,
+ output_rect,
render_pass_id,
false,
0,
diff --git a/cc/surfaces/surface_aggregator_unittest.cc b/cc/surfaces/surface_aggregator_unittest.cc
index 83fddea..0e23389 100644
--- a/cc/surfaces/surface_aggregator_unittest.cc
+++ b/cc/surfaces/surface_aggregator_unittest.cc
@@ -431,6 +431,7 @@ void AddSolidColorQuadWithBlendMode(const gfx::Size& size,
scoped_ptr<SolidColorDrawQuad> color_quad = SolidColorDrawQuad::Create();
color_quad->SetNew(pass->shared_quad_state_list.back(),
visible_content_rect,
+ visible_content_rect,
SK_ColorGREEN,
force_anti_aliasing_off);
pass->quad_list.push_back(color_quad.PassAs<DrawQuad>());
@@ -498,6 +499,7 @@ TEST_F(SurfaceAggregatorValidSurfaceTest, AggregateSharedQuadStateProperties) {
SurfaceDrawQuad::Create();
grandchild_surface_quad->SetNew(child_one_pass->shared_quad_state_list.back(),
gfx::Rect(surface_size),
+ gfx::Rect(surface_size),
grandchild_surface.surface_id());
child_one_pass->quad_list.push_back(
grandchild_surface_quad.PassAs<DrawQuad>());
@@ -523,6 +525,7 @@ TEST_F(SurfaceAggregatorValidSurfaceTest, AggregateSharedQuadStateProperties) {
SurfaceDrawQuad::Create();
child_one_surface_quad->SetNew(root_pass->shared_quad_state_list.back(),
gfx::Rect(surface_size),
+ gfx::Rect(surface_size),
child_one_surface.surface_id());
root_pass->quad_list.push_back(child_one_surface_quad.PassAs<DrawQuad>());
AddSolidColorQuadWithBlendMode(surface_size, root_pass.get(), blend_modes[4]);
@@ -530,6 +533,7 @@ TEST_F(SurfaceAggregatorValidSurfaceTest, AggregateSharedQuadStateProperties) {
SurfaceDrawQuad::Create();
child_two_surface_quad->SetNew(root_pass->shared_quad_state_list.back(),
gfx::Rect(surface_size),
+ gfx::Rect(surface_size),
child_two_surface.surface_id());
root_pass->quad_list.push_back(child_two_surface_quad.PassAs<DrawQuad>());
AddSolidColorQuadWithBlendMode(surface_size, root_pass.get(), blend_modes[6]);
diff --git a/cc/surfaces/surfaces_pixeltest.cc b/cc/surfaces/surfaces_pixeltest.cc
index 54d40d7..fd5951c 100644
--- a/cc/surfaces/surfaces_pixeltest.cc
+++ b/cc/surfaces/surfaces_pixeltest.cc
@@ -57,6 +57,7 @@ TEST_F(SurfacesPixelTest, DrawSimpleFrame) {
bool force_anti_aliasing_off = false;
color_quad->SetNew(pass->shared_quad_state_list.back(),
rect,
+ rect,
SK_ColorGREEN,
force_anti_aliasing_off);
pass->quad_list.push_back(color_quad.PassAs<DrawQuad>());
@@ -102,6 +103,7 @@ TEST_F(SurfacesPixelTest, DrawSimpleAggregatedFrame) {
scoped_ptr<SurfaceDrawQuad> surface_quad = SurfaceDrawQuad::Create();
surface_quad->SetNew(pass->shared_quad_state_list.back(),
gfx::Rect(child_size),
+ gfx::Rect(child_size),
child_surface.surface_id());
pass->quad_list.push_back(surface_quad.PassAs<DrawQuad>());
@@ -109,6 +111,7 @@ TEST_F(SurfacesPixelTest, DrawSimpleAggregatedFrame) {
bool force_anti_aliasing_off = false;
color_quad->SetNew(pass->shared_quad_state_list.back(),
rect,
+ rect,
SK_ColorYELLOW,
force_anti_aliasing_off);
pass->quad_list.push_back(color_quad.PassAs<DrawQuad>());
@@ -135,6 +138,7 @@ TEST_F(SurfacesPixelTest, DrawSimpleAggregatedFrame) {
bool force_anti_aliasing_off = false;
color_quad->SetNew(pass->shared_quad_state_list.back(),
rect,
+ rect,
SK_ColorBLUE,
force_anti_aliasing_off);
pass->quad_list.push_back(color_quad.PassAs<DrawQuad>());
@@ -190,6 +194,7 @@ TEST_F(SurfacesPixelTest, DrawAggregatedFrameWithSurfaceTransforms) {
scoped_ptr<SurfaceDrawQuad> left_surface_quad = SurfaceDrawQuad::Create();
left_surface_quad->SetNew(pass->shared_quad_state_list.back(),
gfx::Rect(child_size),
+ gfx::Rect(child_size),
left_child.surface_id());
pass->quad_list.push_back(left_surface_quad.PassAs<DrawQuad>());
@@ -200,6 +205,7 @@ TEST_F(SurfacesPixelTest, DrawAggregatedFrameWithSurfaceTransforms) {
scoped_ptr<SurfaceDrawQuad> right_surface_quad = SurfaceDrawQuad::Create();
right_surface_quad->SetNew(pass->shared_quad_state_list.back(),
gfx::Rect(child_size),
+ gfx::Rect(child_size),
right_child.surface_id());
pass->quad_list.push_back(right_surface_quad.PassAs<DrawQuad>());
@@ -226,6 +232,7 @@ TEST_F(SurfacesPixelTest, DrawAggregatedFrameWithSurfaceTransforms) {
bool force_anti_aliasing_off = false;
top_color_quad->SetNew(pass->shared_quad_state_list.back(),
gfx::Rect(quad_size),
+ gfx::Rect(quad_size),
SK_ColorGREEN,
force_anti_aliasing_off);
pass->quad_list.push_back(top_color_quad.PassAs<DrawQuad>());
@@ -234,6 +241,7 @@ TEST_F(SurfacesPixelTest, DrawAggregatedFrameWithSurfaceTransforms) {
SolidColorDrawQuad::Create();
bottom_color_quad->SetNew(pass->shared_quad_state_list.back(),
gfx::Rect(0, 100, 100, 100),
+ gfx::Rect(0, 100, 100, 100),
SK_ColorBLUE,
force_anti_aliasing_off);
pass->quad_list.push_back(bottom_color_quad.PassAs<DrawQuad>());
@@ -261,6 +269,7 @@ TEST_F(SurfacesPixelTest, DrawAggregatedFrameWithSurfaceTransforms) {
bool force_anti_aliasing_off = false;
top_color_quad->SetNew(pass->shared_quad_state_list.back(),
gfx::Rect(quad_size),
+ gfx::Rect(quad_size),
SK_ColorBLUE,
force_anti_aliasing_off);
pass->quad_list.push_back(top_color_quad.PassAs<DrawQuad>());
@@ -269,6 +278,7 @@ TEST_F(SurfacesPixelTest, DrawAggregatedFrameWithSurfaceTransforms) {
SolidColorDrawQuad::Create();
bottom_color_quad->SetNew(pass->shared_quad_state_list.back(),
gfx::Rect(0, 100, 100, 100),
+ gfx::Rect(0, 100, 100, 100),
SK_ColorGREEN,
force_anti_aliasing_off);
pass->quad_list.push_back(bottom_color_quad.PassAs<DrawQuad>());
diff --git a/cc/test/render_pass_test_common.cc b/cc/test/render_pass_test_common.cc
index 72467dd..70df149 100644
--- a/cc/test/render_pass_test_common.cc
+++ b/cc/test/render_pass_test_common.cc
@@ -32,6 +32,7 @@ void TestRenderPass::AppendOneOfEveryQuadType(
RenderPass::Id child_pass) {
gfx::Rect rect(0, 0, 100, 100);
gfx::Rect opaque_rect(10, 10, 80, 80);
+ gfx::Rect visible_rect(0, 0, 100, 100);
const float vertex_opacity[] = {1.0f, 1.0f, 1.0f, 1.0f};
ResourceProvider::ResourceId resource1 = resource_provider->CreateResource(
gfx::Size(45, 5),
@@ -87,23 +88,21 @@ void TestRenderPass::AppendOneOfEveryQuadType(
scoped_ptr<CheckerboardDrawQuad> checkerboard_quad =
CheckerboardDrawQuad::Create();
- checkerboard_quad->SetNew(shared_state.get(),
- rect,
- SK_ColorRED);
+ checkerboard_quad->SetNew(
+ shared_state.get(), rect, visible_rect, SK_ColorRED);
AppendQuad(checkerboard_quad.PassAs<DrawQuad>());
scoped_ptr<DebugBorderDrawQuad> debug_border_quad =
DebugBorderDrawQuad::Create();
- debug_border_quad->SetNew(shared_state.get(),
- rect,
- SK_ColorRED,
- 1);
+ debug_border_quad->SetNew(
+ shared_state.get(), rect, visible_rect, SK_ColorRED, 1);
AppendQuad(debug_border_quad.PassAs<DrawQuad>());
scoped_ptr<IOSurfaceDrawQuad> io_surface_quad = IOSurfaceDrawQuad::Create();
io_surface_quad->SetNew(shared_state.get(),
rect,
opaque_rect,
+ visible_rect,
gfx::Size(50, 50),
resource7,
IOSurfaceDrawQuad::FLIPPED);
@@ -114,6 +113,7 @@ void TestRenderPass::AppendOneOfEveryQuadType(
RenderPassDrawQuad::Create();
render_pass_quad->SetNew(shared_state.get(),
rect,
+ visible_rect,
child_pass,
false,
resource5,
@@ -127,6 +127,7 @@ void TestRenderPass::AppendOneOfEveryQuadType(
RenderPassDrawQuad::Create();
render_pass_replica_quad->SetNew(shared_state.get(),
rect,
+ visible_rect,
child_pass,
true,
resource5,
@@ -139,10 +140,8 @@ void TestRenderPass::AppendOneOfEveryQuadType(
scoped_ptr<SolidColorDrawQuad> solid_color_quad =
SolidColorDrawQuad::Create();
- solid_color_quad->SetNew(shared_state.get(),
- rect,
- SK_ColorRED,
- false);
+ solid_color_quad->SetNew(
+ shared_state.get(), rect, visible_rect, SK_ColorRED, false);
AppendQuad(solid_color_quad.PassAs<DrawQuad>());
scoped_ptr<StreamVideoDrawQuad> stream_video_quad =
@@ -150,6 +149,7 @@ void TestRenderPass::AppendOneOfEveryQuadType(
stream_video_quad->SetNew(shared_state.get(),
rect,
opaque_rect,
+ visible_rect,
resource6,
gfx::Transform());
AppendQuad(stream_video_quad.PassAs<DrawQuad>());
@@ -158,6 +158,7 @@ void TestRenderPass::AppendOneOfEveryQuadType(
texture_quad->SetNew(shared_state.get(),
rect,
opaque_rect,
+ visible_rect,
resource1,
false,
gfx::PointF(0.f, 0.f),
@@ -171,6 +172,7 @@ void TestRenderPass::AppendOneOfEveryQuadType(
scaled_tile_quad->SetNew(shared_state.get(),
rect,
opaque_rect,
+ visible_rect,
resource2,
gfx::RectF(0, 0, 50, 50),
gfx::Size(50, 50),
@@ -186,6 +188,7 @@ void TestRenderPass::AppendOneOfEveryQuadType(
transformed_tile_quad->SetNew(transformed_state.get(),
rect,
opaque_rect,
+ visible_rect,
resource3,
gfx::RectF(0, 0, 100, 100),
gfx::Size(100, 100),
@@ -205,6 +208,7 @@ void TestRenderPass::AppendOneOfEveryQuadType(
tile_quad->SetNew(shared_state2.get(),
rect,
opaque_rect,
+ visible_rect,
resource4,
gfx::RectF(0, 0, 100, 100),
gfx::Size(100, 100),
@@ -225,6 +229,7 @@ void TestRenderPass::AppendOneOfEveryQuadType(
yuv_quad->SetNew(shared_state2.get(),
rect,
opaque_rect,
+ visible_rect,
gfx::Size(100, 100),
plane_resources[0],
plane_resources[1],
diff --git a/cc/test/render_pass_test_utils.cc b/cc/test/render_pass_test_utils.cc
index 8b018cf..5db6799 100644
--- a/cc/test/render_pass_test_utils.cc
+++ b/cc/test/render_pass_test_utils.cc
@@ -44,7 +44,7 @@ SolidColorDrawQuad* AddQuad(TestRenderPass* pass,
1,
SkXfermode::kSrcOver_Mode);
scoped_ptr<SolidColorDrawQuad> quad = SolidColorDrawQuad::Create();
- quad->SetNew(shared_state, rect, color, false);
+ quad->SetNew(shared_state, rect, rect, color, false);
SolidColorDrawQuad* quad_ptr = quad.get();
quad_sink.Append(quad.PassAs<DrawQuad>(), &data);
return quad_ptr;
@@ -65,7 +65,7 @@ SolidColorDrawQuad* AddClippedQuad(TestRenderPass* pass,
1,
SkXfermode::kSrcOver_Mode);
scoped_ptr<SolidColorDrawQuad> quad = SolidColorDrawQuad::Create();
- quad->SetNew(shared_state, rect, color, false);
+ quad->SetNew(shared_state, rect, rect, color, false);
SolidColorDrawQuad* quad_ptr = quad.get();
quad_sink.Append(quad.PassAs<DrawQuad>(), &data);
return quad_ptr;
@@ -82,7 +82,7 @@ SolidColorDrawQuad* AddTransformedQuad(TestRenderPass* pass,
shared_state->SetAll(
transform, rect.size(), rect, rect, false, 1, SkXfermode::kSrcOver_Mode);
scoped_ptr<SolidColorDrawQuad> quad = SolidColorDrawQuad::Create();
- quad->SetNew(shared_state, rect, color, false);
+ quad->SetNew(shared_state, rect, rect, color, false);
SolidColorDrawQuad* quad_ptr = quad.get();
quad_sink.Append(quad.PassAs<DrawQuad>(), &data);
return quad_ptr;
@@ -104,8 +104,15 @@ void AddRenderPassQuad(TestRenderPass* to_pass,
1,
SkXfermode::kSrcOver_Mode);
scoped_ptr<RenderPassDrawQuad> quad = RenderPassDrawQuad::Create();
- quad->SetNew(shared_state, output_rect, contributing_pass->id, false, 0,
- output_rect, gfx::RectF(), FilterOperations(),
+ quad->SetNew(shared_state,
+ output_rect,
+ output_rect,
+ contributing_pass->id,
+ false,
+ 0,
+ output_rect,
+ gfx::RectF(),
+ FilterOperations(),
FilterOperations());
quad_sink.Append(quad.PassAs<DrawQuad>(), &data);
}
@@ -129,8 +136,15 @@ void AddRenderPassQuad(TestRenderPass* to_pass,
1,
SkXfermode::kSrcOver_Mode);
scoped_ptr<RenderPassDrawQuad> quad = RenderPassDrawQuad::Create();
- quad->SetNew(shared_state, output_rect, contributing_pass->id, false,
- mask_resource_id, output_rect, gfx::RectF(), filters,
+ quad->SetNew(shared_state,
+ output_rect,
+ output_rect,
+ contributing_pass->id,
+ false,
+ mask_resource_id,
+ output_rect,
+ gfx::RectF(),
+ filters,
FilterOperations());
quad_sink.Append(quad.PassAs<DrawQuad>(), &data);
}
diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc
index 480fe3b..f34432f 100644
--- a/cc/trees/layer_tree_host_impl.cc
+++ b/cc/trees/layer_tree_host_impl.cc
@@ -662,11 +662,15 @@ static void AppendQuadsToFillScreen(
fill_rects.has_rect();
fill_rects.next()) {
gfx::Rect screen_space_rect = fill_rects.rect();
+ gfx::Rect visible_screen_space_rect = screen_space_rect;
// Skip the quad culler and just append the quads directly to avoid
// occlusion checks.
scoped_ptr<SolidColorDrawQuad> quad = SolidColorDrawQuad::Create();
- quad->SetNew(
- shared_quad_state, screen_space_rect, screen_background_color, false);
+ quad->SetNew(shared_quad_state,
+ screen_space_rect,
+ visible_screen_space_rect,
+ screen_background_color,
+ false);
quad_culler.Append(quad.PassAs<DrawQuad>(), &append_quads_data);
}
for (Region::Iterator fill_rects(overhang_region);
@@ -674,12 +678,15 @@ static void AppendQuadsToFillScreen(
fill_rects.next()) {
DCHECK(overhang_resource_id);
gfx::Rect screen_space_rect = fill_rects.rect();
+ gfx::Rect opaque_screen_space_rect = screen_space_rect;
+ gfx::Rect visible_screen_space_rect = screen_space_rect;
scoped_ptr<TextureDrawQuad> tex_quad = TextureDrawQuad::Create();
const float vertex_opacity[4] = {1.f, 1.f, 1.f, 1.f};
tex_quad->SetNew(
shared_quad_state,
screen_space_rect,
- screen_space_rect,
+ opaque_screen_space_rect,
+ visible_screen_space_rect,
overhang_resource_id,
false,
gfx::PointF(
diff --git a/cc/trees/layer_tree_host_impl_unittest.cc b/cc/trees/layer_tree_host_impl_unittest.cc
index 006ac196..95018a7 100644
--- a/cc/trees/layer_tree_host_impl_unittest.cc
+++ b/cc/trees/layer_tree_host_impl_unittest.cc
@@ -3171,6 +3171,7 @@ class BlendStateCheckLayer : public LayerImpl {
opaque_rect = quad_rect_;
else
opaque_rect = opaque_content_rect_;
+ gfx::Rect visible_quad_rect = quad_rect_;
SharedQuadState* shared_quad_state =
quad_sink->UseSharedQuadState(CreateSharedQuadState());
@@ -3178,6 +3179,7 @@ class BlendStateCheckLayer : public LayerImpl {
test_blending_draw_quad->SetNew(shared_quad_state,
quad_rect_,
opaque_rect,
+ visible_quad_rect,
resource_id_,
gfx::RectF(0.f, 0.f, 1.f, 1.f),
gfx::Size(1, 1),
@@ -3956,8 +3958,10 @@ class FakeLayerWithQuads : public LayerImpl {
SkColor gray = SkColorSetRGB(100, 100, 100);
gfx::Rect quad_rect(content_bounds());
+ gfx::Rect visible_quad_rect(quad_rect);
scoped_ptr<SolidColorDrawQuad> my_quad = SolidColorDrawQuad::Create();
- my_quad->SetNew(shared_quad_state, quad_rect, gray, false);
+ my_quad->SetNew(
+ shared_quad_state, quad_rect, visible_quad_rect, gray, false);
quad_sink->Append(my_quad.PassAs<DrawQuad>(), append_quads_data);
}
diff --git a/cc/trees/layer_tree_host_unittest_delegated.cc b/cc/trees/layer_tree_host_unittest_delegated.cc
index 7fe0ece..6ba1df4 100644
--- a/cc/trees/layer_tree_host_unittest_delegated.cc
+++ b/cc/trees/layer_tree_host_unittest_delegated.cc
@@ -103,6 +103,7 @@ class LayerTreeHostDelegatedTest : public LayerTreeTest {
gfx::Rect rect = root_output_rect;
gfx::Rect opaque_rect = root_output_rect;
+ gfx::Rect visible_rect = root_output_rect;
// An invalid resource id! The resource isn't part of the frame.
unsigned resource_id = 5;
bool premultiplied_alpha = false;
@@ -116,6 +117,7 @@ class LayerTreeHostDelegatedTest : public LayerTreeTest {
invalid_draw_quad->SetNew(shared_quad_state.get(),
rect,
opaque_rect,
+ visible_rect,
resource_id,
premultiplied_alpha,
uv_top_left,
@@ -152,6 +154,7 @@ class LayerTreeHostDelegatedTest : public LayerTreeTest {
quad->SetNew(sqs.get(),
gfx::Rect(0, 0, 10, 10),
gfx::Rect(0, 0, 10, 10),
+ gfx::Rect(0, 0, 10, 10),
resource_id,
false,
gfx::PointF(0.f, 0.f),
@@ -184,9 +187,10 @@ class LayerTreeHostDelegatedTest : public LayerTreeTest {
quad->SetNew(sqs.get(),
output_rect,
+ output_rect,
id,
false, // is_replica
- 0, // mask_resource_id
+ 0, // mask_resource_id
damage_rect,
gfx::Rect(0, 0, 1, 1), // mask_uv_rect
filters,
diff --git a/cc/trees/quad_culler.cc b/cc/trees/quad_culler.cc
index f4a8e27..bbbca9e 100644
--- a/cc/trees/quad_culler.cc
+++ b/cc/trees/quad_culler.cc
@@ -66,8 +66,11 @@ static inline bool AppendQuadInternal(
layer ? layer->layer_tree_impl() : NULL);
scoped_ptr<DebugBorderDrawQuad> debug_border_quad =
DebugBorderDrawQuad::Create();
- debug_border_quad->SetNew(
- draw_quad->shared_quad_state, draw_quad->visible_rect, color, width);
+ debug_border_quad->SetNew(draw_quad->shared_quad_state,
+ draw_quad->visible_rect,
+ draw_quad->visible_rect,
+ color,
+ width);
quad_list->push_back(debug_border_quad.PassAs<DrawQuad>());
}
diff --git a/cc/trees/quad_culler_unittest.cc b/cc/trees/quad_culler_unittest.cc
index 27e3de5..c716955 100644
--- a/cc/trees/quad_culler_unittest.cc
+++ b/cc/trees/quad_culler_unittest.cc
@@ -802,11 +802,13 @@ TEST_F(QuadCullerTest, PartialCullingNotDestroyed) {
SharedQuadState* sqs = culler.UseSharedQuadState(SharedQuadState::Create());
scoped_ptr<SolidColorDrawQuad> color_quad = SolidColorDrawQuad::Create();
- color_quad->SetNew(sqs, gfx::Rect(100, 100), SK_ColorRED, false);
+ color_quad->SetNew(
+ sqs, gfx::Rect(100, 100), gfx::Rect(100, 100), SK_ColorRED, false);
scoped_ptr<RenderPassDrawQuad> pass_quad = RenderPassDrawQuad::Create();
pass_quad->SetNew(sqs,
gfx::Rect(100, 100),
+ gfx::Rect(100, 100),
RenderPass::Id(10, 10),
false,
0,
@@ -818,6 +820,7 @@ TEST_F(QuadCullerTest, PartialCullingNotDestroyed) {
scoped_ptr<RenderPassDrawQuad> replica_quad = RenderPassDrawQuad::Create();
replica_quad->SetNew(sqs,
gfx::Rect(100, 100),
+ gfx::Rect(100, 100),
RenderPass::Id(10, 10),
true,
0,
@@ -878,11 +881,13 @@ TEST_F(QuadCullerTest, PartialCullingWithOcclusionNotDestroyed) {
SharedQuadState* sqs = culler.UseSharedQuadState(SharedQuadState::Create());
scoped_ptr<SolidColorDrawQuad> color_quad = SolidColorDrawQuad::Create();
- color_quad->SetNew(sqs, gfx::Rect(100, 100), SK_ColorRED, false);
+ color_quad->SetNew(
+ sqs, gfx::Rect(100, 100), gfx::Rect(100, 100), SK_ColorRED, false);
scoped_ptr<RenderPassDrawQuad> pass_quad = RenderPassDrawQuad::Create();
pass_quad->SetNew(sqs,
gfx::Rect(100, 100),
+ gfx::Rect(100, 100),
RenderPass::Id(10, 10),
false,
0,
@@ -894,6 +899,7 @@ TEST_F(QuadCullerTest, PartialCullingWithOcclusionNotDestroyed) {
scoped_ptr<RenderPassDrawQuad> replica_quad = RenderPassDrawQuad::Create();
replica_quad->SetNew(sqs,
gfx::Rect(100, 100),
+ gfx::Rect(100, 100),
RenderPass::Id(10, 10),
true,
0,