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

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

Issue 10915140: Add the partial screen magnifier to Chrome OS. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Fix preferences. Created 8 years, 3 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
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 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 fills_bounds_opaquely_(true), 53 fills_bounds_opaquely_(true),
54 layer_updated_externally_(false), 54 layer_updated_externally_(false),
55 opacity_(1.0f), 55 opacity_(1.0f),
56 background_blur_radius_(0), 56 background_blur_radius_(0),
57 layer_saturation_(0.0f), 57 layer_saturation_(0.0f),
58 layer_brightness_(0.0f), 58 layer_brightness_(0.0f),
59 layer_grayscale_(0.0f), 59 layer_grayscale_(0.0f),
60 layer_inverted_(false), 60 layer_inverted_(false),
61 layer_mask_(NULL), 61 layer_mask_(NULL),
62 layer_mask_back_link_(NULL), 62 layer_mask_back_link_(NULL),
63 zoom_x_offset_(0),
64 zoom_y_offset_(0),
65 zoom_(1),
63 delegate_(NULL), 66 delegate_(NULL),
64 web_layer_(NULL), 67 web_layer_(NULL),
65 scale_content_(true), 68 scale_content_(true),
66 device_scale_factor_(1.0f) { 69 device_scale_factor_(1.0f) {
67 CreateWebLayer(); 70 CreateWebLayer();
68 } 71 }
69 72
70 Layer::Layer(LayerType type) 73 Layer::Layer(LayerType type)
71 : type_(type), 74 : type_(type),
72 compositor_(NULL), 75 compositor_(NULL),
73 parent_(NULL), 76 parent_(NULL),
74 visible_(true), 77 visible_(true),
75 force_render_surface_(false), 78 force_render_surface_(false),
76 fills_bounds_opaquely_(true), 79 fills_bounds_opaquely_(true),
77 layer_updated_externally_(false), 80 layer_updated_externally_(false),
78 opacity_(1.0f), 81 opacity_(1.0f),
79 background_blur_radius_(0), 82 background_blur_radius_(0),
80 layer_saturation_(0.0f), 83 layer_saturation_(0.0f),
81 layer_brightness_(0.0f), 84 layer_brightness_(0.0f),
82 layer_grayscale_(0.0f), 85 layer_grayscale_(0.0f),
83 layer_inverted_(false), 86 layer_inverted_(false),
84 layer_mask_(NULL), 87 layer_mask_(NULL),
85 layer_mask_back_link_(NULL), 88 layer_mask_back_link_(NULL),
89 zoom_x_offset_(0),
90 zoom_y_offset_(0),
91 zoom_(1),
86 delegate_(NULL), 92 delegate_(NULL),
87 scale_content_(true), 93 scale_content_(true),
88 device_scale_factor_(1.0f) { 94 device_scale_factor_(1.0f) {
89 CreateWebLayer(); 95 CreateWebLayer();
90 } 96 }
91 97
92 Layer::~Layer() { 98 Layer::~Layer() {
93 // Destroying the animator may cause observers to use the layer (and 99 // Destroying the animator may cause observers to use the layer (and
94 // indirectly the WebLayer). Destroy the animator first so that the WebLayer 100 // indirectly the WebLayer). Destroy the animator first so that the WebLayer
95 // is still around. 101 // is still around.
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after
287 layer_mask_->layer_mask_back_link_ = NULL; 293 layer_mask_->layer_mask_back_link_ = NULL;
288 layer_mask_ = layer_mask; 294 layer_mask_ = layer_mask;
289 web_layer_->setMaskLayer( 295 web_layer_->setMaskLayer(
290 layer_mask ? layer_mask->web_layer() : NULL); 296 layer_mask ? layer_mask->web_layer() : NULL);
291 // We need to reference the linked object so that it can properly break the 297 // We need to reference the linked object so that it can properly break the
292 // link to us when it gets deleted. 298 // link to us when it gets deleted.
293 if (layer_mask) 299 if (layer_mask)
294 layer_mask->layer_mask_back_link_ = this; 300 layer_mask->layer_mask_back_link_ = this;
295 } 301 }
296 302
303 void Layer::SetBackgroundZoom(float x_offset, float y_offset, float zoom) {
304 zoom_x_offset_ = x_offset;
sky 2012/09/07 16:06:59 These values aren't used locally, only passed to w
Zachary Kuznia 2012/09/13 11:49:02 Done.
305 zoom_y_offset_ = y_offset;
306 zoom_ = zoom;
307
308 WebKit::WebFilterOperations filters;
309 if (zoom_ != 1) {
310 filters.append(WebKit::WebFilterOperation::createZoomFilter(
311 WebKit::WebRect(zoom_x_offset_, zoom_y_offset_,
312 (bounds().width() / zoom_),
piman 2012/09/07 21:38:56 is bounds() what you want, if the layer is animate
Zachary Kuznia 2012/09/13 11:49:02 Done.
313 (bounds().height() / zoom_)), 16));
piman 2012/09/07 21:38:56 16 looks very magic. Should it be passed as a para
Zachary Kuznia 2012/09/13 11:49:02 Done.
314 }
315 web_layer_->setBackgroundFilters(filters);
piman 2012/09/07 21:38:56 This overrides the SetBackgroundBlur setting and v
Zachary Kuznia 2012/09/13 11:49:02 Done.
316 }
317
297 void Layer::SetLayerFilters() { 318 void Layer::SetLayerFilters() {
298 WebKit::WebFilterOperations filters; 319 WebKit::WebFilterOperations filters;
299 if (layer_saturation_) { 320 if (layer_saturation_) {
300 filters.append(WebKit::WebFilterOperation::createSaturateFilter( 321 filters.append(WebKit::WebFilterOperation::createSaturateFilter(
301 layer_saturation_)); 322 layer_saturation_));
302 } 323 }
303 if (layer_grayscale_) { 324 if (layer_grayscale_) {
304 filters.append(WebKit::WebFilterOperation::createGrayscaleFilter( 325 filters.append(WebKit::WebFilterOperation::createGrayscaleFilter(
305 layer_grayscale_)); 326 layer_grayscale_));
306 } 327 }
(...skipping 459 matching lines...) Expand 10 before | Expand all | Expand 10 after
766 return; 787 return;
767 unsigned int color = 0xFF000000; 788 unsigned int color = 0xFF000000;
768 color |= web_layer_is_accelerated_ ? 0x0000FF00 : 0x00FF0000; 789 color |= web_layer_is_accelerated_ ? 0x0000FF00 : 0x00FF0000;
769 bool opaque = fills_bounds_opaquely_ && (GetCombinedOpacity() == 1.f); 790 bool opaque = fills_bounds_opaquely_ && (GetCombinedOpacity() == 1.f);
770 if (!opaque) 791 if (!opaque)
771 color |= 0xFF; 792 color |= 0xFF;
772 web_layer_->setDebugBorderColor(color); 793 web_layer_->setDebugBorderColor(color);
773 } 794 }
774 795
775 } // namespace ui 796 } // namespace ui
OLDNEW
« ash/magnifier/partial_magnification_controller.cc ('K') | « ui/compositor/layer.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698