Index: cc/quads/render_pass_draw_quad.cc |
diff --git a/cc/quads/render_pass_draw_quad.cc b/cc/quads/render_pass_draw_quad.cc |
index 005aed5fd95ed8867f48c77beb0cbc040ac7911e..88f608d4ce8a3d9940f9b66712ab249637105143 100644 |
--- a/cc/quads/render_pass_draw_quad.cc |
+++ b/cc/quads/render_pass_draw_quad.cc |
@@ -25,7 +25,8 @@ void RenderPassDrawQuad::SetNew(const SharedQuadState* shared_quad_state, |
const gfx::Rect& visible_rect, |
RenderPassId render_pass_id, |
ResourceProvider::ResourceId mask_resource_id, |
- const gfx::RectF& mask_uv_rect, |
+ const gfx::Vector2dF& mask_uv_scale, |
+ const gfx::Size& mask_texture_size, |
const FilterOperations& filters, |
const gfx::Vector2dF& filters_scale, |
const FilterOperations& background_filters) { |
@@ -41,7 +42,8 @@ void RenderPassDrawQuad::SetNew(const SharedQuadState* shared_quad_state, |
needs_blending, |
render_pass_id, |
mask_resource_id, |
- mask_uv_rect, |
+ mask_uv_scale, |
+ mask_texture_size, |
filters, |
filters_scale, |
background_filters); |
@@ -54,7 +56,8 @@ void RenderPassDrawQuad::SetAll(const SharedQuadState* shared_quad_state, |
bool needs_blending, |
RenderPassId render_pass_id, |
ResourceProvider::ResourceId mask_resource_id, |
- const gfx::RectF& mask_uv_rect, |
+ const gfx::Vector2dF& mask_uv_scale, |
+ const gfx::Size& mask_texture_size, |
const FilterOperations& filters, |
const gfx::Vector2dF& filters_scale, |
const FilterOperations& background_filters) { |
@@ -65,7 +68,8 @@ void RenderPassDrawQuad::SetAll(const SharedQuadState* shared_quad_state, |
visible_rect, needs_blending); |
this->render_pass_id = render_pass_id; |
this->mask_resource_id = mask_resource_id; |
- this->mask_uv_rect = mask_uv_rect; |
+ this->mask_uv_scale = mask_uv_scale; |
+ this->mask_texture_size = mask_texture_size; |
this->filters = filters; |
this->filters_scale = filters_scale; |
this->background_filters = background_filters; |
@@ -77,6 +81,14 @@ void RenderPassDrawQuad::IterateResources( |
mask_resource_id = callback.Run(mask_resource_id); |
} |
+gfx::RectF RenderPassDrawQuad::MaskUVRect() const { |
+ gfx::RectF mask_uv_rect((mask_uv_scale.x() * rect.x()) / rect.width(), |
+ (mask_uv_scale.y() * rect.y()) / rect.height(), |
+ mask_uv_scale.x(), |
+ mask_uv_scale.y()); |
+ return mask_uv_rect; |
+} |
+ |
const RenderPassDrawQuad* RenderPassDrawQuad::MaterialCast( |
const DrawQuad* quad) { |
DCHECK_EQ(quad->material, DrawQuad::RENDER_PASS); |
@@ -87,8 +99,12 @@ void RenderPassDrawQuad::ExtendValue(base::debug::TracedValue* value) const { |
TracedValue::SetIDRef(render_pass_id.AsTracingId(), value, "render_pass_id"); |
value->SetInteger("mask_resource_id", mask_resource_id); |
- value->BeginArray("mask_uv_rect"); |
- MathUtil::AddToTracedValue(mask_uv_rect, value); |
+ value->BeginArray("mask_texture_size"); |
+ MathUtil::AddToTracedValue(mask_texture_size, value); |
+ value->EndArray(); |
+ |
+ value->BeginArray("mask_uv_scale"); |
+ MathUtil::AddToTracedValue(mask_uv_scale, value); |
value->EndArray(); |
value->BeginDictionary("filters"); |