Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / cc / layers / render_surface_impl.cc
index 2cc67af..9d36235 100644 (file)
@@ -20,7 +20,7 @@
 #include "cc/trees/damage_tracker.h"
 #include "cc/trees/occlusion_tracker.h"
 #include "third_party/skia/include/core/SkImageFilter.h"
-#include "ui/gfx/rect_conversions.h"
+#include "ui/gfx/geometry/rect_conversions.h"
 #include "ui/gfx/transform.h"
 
 namespace cc {
@@ -34,7 +34,7 @@ RenderSurfaceImpl::RenderSurfaceImpl(LayerImpl* owning_layer)
       is_clipped_(false),
       contributes_to_drawn_surface_(false),
       draw_opacity_(1),
-      nearest_occlusion_immune_ancestor_(NULL),
+      nearest_occlusion_immune_ancestor_(nullptr),
       target_render_surface_layer_index_history_(0),
       current_layer_index_history_(0) {
   damage_tracker_ = DamageTracker::Create();
@@ -107,11 +107,11 @@ void RenderSurfaceImpl::ClearLayerLists() {
   contributing_delegated_render_pass_layer_list_.clear();
 }
 
-RenderPass::Id RenderSurfaceImpl::RenderPassId() {
+RenderPassId RenderSurfaceImpl::GetRenderPassId() {
   int layer_id = owning_layer_->id();
   int sub_id = 0;
   DCHECK_GT(layer_id, 0);
-  return RenderPass::Id(layer_id, sub_id);
+  return RenderPassId(layer_id, sub_id);
 }
 
 void RenderSurfaceImpl::AppendRenderPasses(RenderPassSink* pass_sink) {
@@ -124,7 +124,7 @@ void RenderSurfaceImpl::AppendRenderPasses(RenderPassSink* pass_sink) {
   }
 
   scoped_ptr<RenderPass> pass = RenderPass::Create(layer_list_.size());
-  pass->SetNew(RenderPassId(),
+  pass->SetNew(GetRenderPassId(),
                content_rect_,
                gfx::IntersectRects(content_rect_,
                                    damage_tracker_->current_damage_rect()),
@@ -137,7 +137,7 @@ void RenderSurfaceImpl::AppendQuads(
     const OcclusionTracker<LayerImpl>& occlusion_tracker,
     AppendQuadsData* append_quads_data,
     bool for_replica,
-    RenderPass::Id render_pass_id) {
+    RenderPassId render_pass_id) {
   DCHECK(!for_replica || owning_layer_->has_replica());
 
   const gfx::Transform& draw_transform =
@@ -184,17 +184,20 @@ void RenderSurfaceImpl::AppendQuads(
   LayerImpl* mask_layer = owning_layer_->mask_layer();
   if (mask_layer &&
       (!mask_layer->DrawsContent() || mask_layer->bounds().IsEmpty()))
-    mask_layer = NULL;
+    mask_layer = nullptr;
 
   if (!mask_layer && for_replica) {
     mask_layer = owning_layer_->replica_layer()->mask_layer();
     if (mask_layer &&
         (!mask_layer->DrawsContent() || mask_layer->bounds().IsEmpty()))
-      mask_layer = NULL;
+      mask_layer = nullptr;
   }
 
-  gfx::RectF mask_uv_rect(0.f, 0.f, 1.f, 1.f);
+  ResourceProvider::ResourceId mask_resource_id = 0;
+  gfx::Size mask_texture_size;
+  gfx::Vector2dF mask_uv_scale;
   if (mask_layer) {
+    mask_layer->GetContentsResourceId(&mask_resource_id, &mask_texture_size);
     gfx::Vector2dF owning_layer_draw_scale =
         MathUtil::ComputeTransform2dScaleComponents(
             owning_layer_->draw_transform(), 1.f);
@@ -202,22 +205,11 @@ void RenderSurfaceImpl::AppendQuads(
         owning_layer_->content_bounds(),
         owning_layer_draw_scale.x(),
         owning_layer_draw_scale.y());
-
-    float uv_scale_x =
-        content_rect_.width() / unclipped_mask_target_size.width();
-    float uv_scale_y =
-        content_rect_.height() / unclipped_mask_target_size.height();
-
-    mask_uv_rect = gfx::RectF(
-        uv_scale_x * content_rect_.x() / content_rect_.width(),
-        uv_scale_y * content_rect_.y() / content_rect_.height(),
-        uv_scale_x,
-        uv_scale_y);
+    mask_uv_scale = gfx::Vector2dF(
+        content_rect_.width() / unclipped_mask_target_size.width(),
+        content_rect_.height() / unclipped_mask_target_size.height());
   }
 
-  ResourceProvider::ResourceId mask_resource_id =
-      mask_layer ? mask_layer->ContentsResourceId() : 0;
-
   DCHECK(owning_layer_->draw_properties().target_space_transform.IsScale2d());
   gfx::Vector2dF owning_layer_to_target_scale =
       owning_layer_->draw_properties().target_space_transform.Scale2d();
@@ -231,7 +223,8 @@ void RenderSurfaceImpl::AppendQuads(
                visible_content_rect,
                render_pass_id,
                mask_resource_id,
-               mask_uv_rect,
+               mask_uv_scale,
+               mask_texture_size,
                owning_layer_->filters(),
                owning_layer_to_target_scale,
                owning_layer_->background_filters());