Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / cc / quads / render_pass_draw_quad.cc
index 005aed5..88f608d 100644 (file)
@@ -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");