Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(156)

Side by Side Diff: ui/compositor/layer.cc

Issue 12816002: Make zoom filter independent of the layer size. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « ui/compositor/layer.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ui/compositor/layer.h" 5 #include "ui/compositor/layer.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/debug/trace_event.h" 10 #include "base/debug/trace_event.h"
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 force_render_surface_(false), 51 force_render_surface_(false),
52 fills_bounds_opaquely_(true), 52 fills_bounds_opaquely_(true),
53 layer_updated_externally_(false), 53 layer_updated_externally_(false),
54 background_blur_radius_(0), 54 background_blur_radius_(0),
55 layer_saturation_(0.0f), 55 layer_saturation_(0.0f),
56 layer_brightness_(0.0f), 56 layer_brightness_(0.0f),
57 layer_grayscale_(0.0f), 57 layer_grayscale_(0.0f),
58 layer_inverted_(false), 58 layer_inverted_(false),
59 layer_mask_(NULL), 59 layer_mask_(NULL),
60 layer_mask_back_link_(NULL), 60 layer_mask_back_link_(NULL),
61 zoom_x_offset_(0),
62 zoom_y_offset_(0),
63 zoom_(1), 61 zoom_(1),
64 zoom_inset_(0), 62 zoom_inset_(0),
65 delegate_(NULL), 63 delegate_(NULL),
66 cc_layer_(NULL), 64 cc_layer_(NULL),
67 scale_content_(true), 65 scale_content_(true),
68 device_scale_factor_(1.0f) { 66 device_scale_factor_(1.0f) {
69 CreateWebLayer(); 67 CreateWebLayer();
70 } 68 }
71 69
72 Layer::Layer(LayerType type) 70 Layer::Layer(LayerType type)
73 : type_(type), 71 : type_(type),
74 compositor_(NULL), 72 compositor_(NULL),
75 parent_(NULL), 73 parent_(NULL),
76 visible_(true), 74 visible_(true),
77 is_drawn_(true), 75 is_drawn_(true),
78 force_render_surface_(false), 76 force_render_surface_(false),
79 fills_bounds_opaquely_(true), 77 fills_bounds_opaquely_(true),
80 layer_updated_externally_(false), 78 layer_updated_externally_(false),
81 background_blur_radius_(0), 79 background_blur_radius_(0),
82 layer_saturation_(0.0f), 80 layer_saturation_(0.0f),
83 layer_brightness_(0.0f), 81 layer_brightness_(0.0f),
84 layer_grayscale_(0.0f), 82 layer_grayscale_(0.0f),
85 layer_inverted_(false), 83 layer_inverted_(false),
86 layer_mask_(NULL), 84 layer_mask_(NULL),
87 layer_mask_back_link_(NULL), 85 layer_mask_back_link_(NULL),
88 zoom_x_offset_(0),
89 zoom_y_offset_(0),
90 zoom_(1), 86 zoom_(1),
91 zoom_inset_(0), 87 zoom_inset_(0),
92 delegate_(NULL), 88 delegate_(NULL),
93 scale_content_(true), 89 scale_content_(true),
94 device_scale_factor_(1.0f) { 90 device_scale_factor_(1.0f) {
95 CreateWebLayer(); 91 CreateWebLayer();
96 } 92 }
97 93
98 Layer::~Layer() { 94 Layer::~Layer() {
99 // Destroying the animator may cause observers to use the layer (and 95 // Destroying the animator may cause observers to use the layer (and
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
302 cc_layer_->SetMaskLayer( 298 cc_layer_->SetMaskLayer(
303 layer_mask ? layer_mask->cc_layer() : NULL); 299 layer_mask ? layer_mask->cc_layer() : NULL);
304 // We need to reference the linked object so that it can properly break the 300 // We need to reference the linked object so that it can properly break the
305 // link to us when it gets deleted. 301 // link to us when it gets deleted.
306 if (layer_mask) { 302 if (layer_mask) {
307 layer_mask->layer_mask_back_link_ = this; 303 layer_mask->layer_mask_back_link_ = this;
308 layer_mask->OnDeviceScaleFactorChanged(device_scale_factor_); 304 layer_mask->OnDeviceScaleFactorChanged(device_scale_factor_);
309 } 305 }
310 } 306 }
311 307
312 void Layer::SetBackgroundZoom(float x_offset, 308 void Layer::SetBackgroundZoom(float zoom, int inset) {
313 float y_offset,
314 float zoom,
315 int inset) {
316 zoom_x_offset_ = x_offset;
317 zoom_y_offset_ = y_offset;
318 zoom_ = zoom; 309 zoom_ = zoom;
319 zoom_inset_ = inset; 310 zoom_inset_ = inset;
320 311
321 SetLayerBackgroundFilters(); 312 SetLayerBackgroundFilters();
322 } 313 }
323 314
324 void Layer::SetLayerFilters() { 315 void Layer::SetLayerFilters() {
325 WebKit::WebFilterOperations filters; 316 WebKit::WebFilterOperations filters;
326 if (layer_saturation_) { 317 if (layer_saturation_) {
327 filters.append(WebKit::WebFilterOperation::createSaturateFilter( 318 filters.append(WebKit::WebFilterOperation::createSaturateFilter(
(...skipping 12 matching lines...) Expand all
340 filters.append(WebKit::WebFilterOperation::createSaturatingBrightnessFilter( 331 filters.append(WebKit::WebFilterOperation::createSaturatingBrightnessFilter(
341 layer_brightness_)); 332 layer_brightness_));
342 } 333 }
343 334
344 cc_layer_->SetFilters(filters); 335 cc_layer_->SetFilters(filters);
345 } 336 }
346 337
347 void Layer::SetLayerBackgroundFilters() { 338 void Layer::SetLayerBackgroundFilters() {
348 WebKit::WebFilterOperations filters; 339 WebKit::WebFilterOperations filters;
349 if (zoom_ != 1) { 340 if (zoom_ != 1) {
350 filters.append(WebKit::WebFilterOperation::createZoomFilter( 341 #ifdef NEW_ZOOM_FILTER // TODO(danakj): Remove this when WebKit rolls.
351 WebKit::WebRect(zoom_x_offset_, zoom_y_offset_, 342 filters.append(WebKit::WebFilterOperation::createZoomFilter(zoom_,
352 (GetTargetBounds().width() / zoom_), 343 zoom_inset_));
353 (GetTargetBounds().height() / zoom_)), 344 #endif
354 zoom_inset_));
355 } 345 }
356 346
357 if (background_blur_radius_) { 347 if (background_blur_radius_) {
358 filters.append(WebKit::WebFilterOperation::createBlurFilter( 348 filters.append(WebKit::WebFilterOperation::createBlurFilter(
359 background_blur_radius_)); 349 background_blur_radius_));
360 } 350 }
361 351
362 cc_layer_->SetBackgroundFilters(filters); 352 cc_layer_->SetBackgroundFilters(filters);
363 } 353 }
364 354
(...skipping 546 matching lines...) Expand 10 before | Expand all | Expand 10 after
911 texture_layer_->setUV(uv_top_left, uv_bottom_right); 901 texture_layer_->setUV(uv_top_left, uv_bottom_right);
912 } else if (delegated_renderer_layer_.get()) { 902 } else if (delegated_renderer_layer_.get()) {
913 delegated_renderer_layer_->SetDisplaySize( 903 delegated_renderer_layer_->SetDisplaySize(
914 ConvertSizeToPixel(this, delegated_frame_size_in_dip_)); 904 ConvertSizeToPixel(this, delegated_frame_size_in_dip_));
915 size.ClampToMax(delegated_frame_size_in_dip_); 905 size.ClampToMax(delegated_frame_size_in_dip_);
916 } 906 }
917 cc_layer_->SetBounds(ConvertSizeToPixel(this, size)); 907 cc_layer_->SetBounds(ConvertSizeToPixel(this, size));
918 } 908 }
919 909
920 } // namespace ui 910 } // namespace ui
OLDNEW
« no previous file with comments | « ui/compositor/layer.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698