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

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

Issue 271533014: Make ui::Layer use the cc:LayerTreeHost scale factor directly (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove texture scaling fix Created 6 years, 7 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
« no previous file with comments | « ui/compositor/compositor.cc ('k') | ui/compositor/layer.cc » ('j') | 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 #ifndef UI_COMPOSITOR_LAYER_H_ 5 #ifndef UI_COMPOSITOR_LAYER_H_
6 #define UI_COMPOSITOR_LAYER_H_ 6 #define UI_COMPOSITOR_LAYER_H_
7 7
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after
234 static void ConvertPointToLayer(const Layer* source, 234 static void ConvertPointToLayer(const Layer* source,
235 const Layer* target, 235 const Layer* target,
236 gfx::Point* point); 236 gfx::Point* point);
237 237
238 // Converts a transform to be relative to the given |ancestor|. Returns 238 // Converts a transform to be relative to the given |ancestor|. Returns
239 // whether success (that is, whether the given ancestor was really an 239 // whether success (that is, whether the given ancestor was really an
240 // ancestor of this layer). 240 // ancestor of this layer).
241 bool GetTargetTransformRelativeTo(const Layer* ancestor, 241 bool GetTargetTransformRelativeTo(const Layer* ancestor,
242 gfx::Transform* transform) const; 242 gfx::Transform* transform) const;
243 243
244 // Converts a ui::Layer's transform to the transform on the corresponding
245 // cc::Layer.
246 static gfx::Transform ConvertTransformToCCTransform(
247 const gfx::Transform& transform,
248 float device_scale_factor);
249
250 // See description in View for details 244 // See description in View for details
251 void SetFillsBoundsOpaquely(bool fills_bounds_opaquely); 245 void SetFillsBoundsOpaquely(bool fills_bounds_opaquely);
252 bool fills_bounds_opaquely() const { return fills_bounds_opaquely_; } 246 bool fills_bounds_opaquely() const { return fills_bounds_opaquely_; }
253 247
254 // Set to true if this layer always paints completely within its bounds. If so 248 // Set to true if this layer always paints completely within its bounds. If so
255 // we can omit an unnecessary clear, even if the layer is transparent. 249 // we can omit an unnecessary clear, even if the layer is transparent.
256 void SetFillsBoundsCompletely(bool fills_bounds_completely); 250 void SetFillsBoundsCompletely(bool fills_bounds_completely);
257 251
258 const std::string& name() const { return name_; } 252 const std::string& name() const { return name_; }
259 void set_name(const std::string& name) { name_ = name; } 253 void set_name(const std::string& name) { name_ = name; }
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
292 void SendDamagedRects(); 286 void SendDamagedRects();
293 287
294 const SkRegion& damaged_region() const { return damaged_region_; } 288 const SkRegion& damaged_region() const { return damaged_region_; }
295 289
296 // Suppresses painting the content by disconnecting |delegate_|. 290 // Suppresses painting the content by disconnecting |delegate_|.
297 void SuppressPaint(); 291 void SuppressPaint();
298 292
299 // Notifies the layer that the device scale factor has changed. 293 // Notifies the layer that the device scale factor has changed.
300 void OnDeviceScaleFactorChanged(float device_scale_factor); 294 void OnDeviceScaleFactorChanged(float device_scale_factor);
301 295
302 // Sets whether the layer should scale its content. If true, the canvas will
303 // be scaled in software rendering mode before it is passed to
304 // |LayerDelegate::OnPaintLayer|.
305 // Set to false if the delegate handles scaling.
306 // NOTE: if this is called during |LayerDelegate::OnPaint|, the new value will
307 // not apply to the canvas passed to the pending draw.
308 void set_scale_content(bool scale_content) { scale_content_ = scale_content; }
309
310 // Returns true if the layer scales its content.
311 bool scale_content() const { return scale_content_; }
312
313 // Requets a copy of the layer's output as a texture or bitmap. 296 // Requets a copy of the layer's output as a texture or bitmap.
314 void RequestCopyOfOutput(scoped_ptr<cc::CopyOutputRequest> request); 297 void RequestCopyOfOutput(scoped_ptr<cc::CopyOutputRequest> request);
315 298
316 // ContentLayerClient 299 // ContentLayerClient
317 virtual void PaintContents( 300 virtual void PaintContents(
318 SkCanvas* canvas, 301 SkCanvas* canvas,
319 const gfx::Rect& clip, 302 const gfx::Rect& clip,
320 gfx::RectF* opaque, 303 gfx::RectF* opaque,
321 ContentLayerClient::GraphicsContextStatus gc_status) OVERRIDE; 304 ContentLayerClient::GraphicsContextStatus gc_status) OVERRIDE;
322 virtual void DidChangeLayerCanUseLCDText() OVERRIDE {} 305 virtual void DidChangeLayerCanUseLCDText() OVERRIDE {}
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
381 virtual SkColor GetColorForAnimation() const OVERRIDE; 364 virtual SkColor GetColorForAnimation() const OVERRIDE;
382 virtual float GetDeviceScaleFactor() const OVERRIDE; 365 virtual float GetDeviceScaleFactor() const OVERRIDE;
383 virtual void AddThreadedAnimation( 366 virtual void AddThreadedAnimation(
384 scoped_ptr<cc::Animation> animation) OVERRIDE; 367 scoped_ptr<cc::Animation> animation) OVERRIDE;
385 virtual void RemoveThreadedAnimation(int animation_id) OVERRIDE; 368 virtual void RemoveThreadedAnimation(int animation_id) OVERRIDE;
386 369
387 // Creates a corresponding composited layer for |type_|. 370 // Creates a corresponding composited layer for |type_|.
388 void CreateWebLayer(); 371 void CreateWebLayer();
389 372
390 // Recomputes and sets to |cc_layer_|. 373 // Recomputes and sets to |cc_layer_|.
391 void RecomputeCCTransformFromTransform(const gfx::Transform& transform);
392 void RecomputeDrawsContentAndUVRect(); 374 void RecomputeDrawsContentAndUVRect();
393 void RecomputePosition(); 375 void RecomputePosition();
394 376
395 // Set all filters which got applied to the layer. 377 // Set all filters which got applied to the layer.
396 void SetLayerFilters(); 378 void SetLayerFilters();
397 379
398 // Set all filters which got applied to the layer background. 380 // Set all filters which got applied to the layer background.
399 void SetLayerBackgroundFilters(); 381 void SetLayerBackgroundFilters();
400 382
401 // Cleanup |cc_layer_| and replaces it with |new_layer|. 383 // Cleanup |cc_layer_| and replaces it with |new_layer|.
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
469 cc::ScopedPtrVector<cc::Animation> pending_threaded_animations_; 451 cc::ScopedPtrVector<cc::Animation> pending_threaded_animations_;
470 452
471 // Ownership of the layer is held through one of the strongly typed layer 453 // Ownership of the layer is held through one of the strongly typed layer
472 // pointers, depending on which sort of layer this is. 454 // pointers, depending on which sort of layer this is.
473 scoped_refptr<cc::Layer> content_layer_; 455 scoped_refptr<cc::Layer> content_layer_;
474 scoped_refptr<cc::TextureLayer> texture_layer_; 456 scoped_refptr<cc::TextureLayer> texture_layer_;
475 scoped_refptr<cc::SolidColorLayer> solid_color_layer_; 457 scoped_refptr<cc::SolidColorLayer> solid_color_layer_;
476 scoped_refptr<cc::DelegatedRendererLayer> delegated_renderer_layer_; 458 scoped_refptr<cc::DelegatedRendererLayer> delegated_renderer_layer_;
477 cc::Layer* cc_layer_; 459 cc::Layer* cc_layer_;
478 460
479 // If true, the layer scales the canvas and the texture with the device scale
480 // factor as apporpriate. When true, the texture size is in DIP.
481 bool scale_content_;
482
483 // A cached copy of |Compositor::device_scale_factor()|. 461 // A cached copy of |Compositor::device_scale_factor()|.
484 float device_scale_factor_; 462 float device_scale_factor_;
485 463
486 // The mailbox used by texture_layer_. 464 // The mailbox used by texture_layer_.
487 cc::TextureMailbox mailbox_; 465 cc::TextureMailbox mailbox_;
488 466
489 // The callback to release the mailbox. This is only set after 467 // The callback to release the mailbox. This is only set after
490 // SetTextureMailbox is called, before we give it to the TextureLayer. 468 // SetTextureMailbox is called, before we give it to the TextureLayer.
491 scoped_ptr<cc::SingleReleaseCallback> mailbox_release_callback_; 469 scoped_ptr<cc::SingleReleaseCallback> mailbox_release_callback_;
492 470
493 // The size of the frame or texture in DIP, set when SetShowDelegatedContent 471 // The size of the frame or texture in DIP, set when SetShowDelegatedContent
494 // or SetTextureMailbox was called. 472 // or SetTextureMailbox was called.
495 gfx::Size frame_size_in_dip_; 473 gfx::Size frame_size_in_dip_;
496 474
497 DISALLOW_COPY_AND_ASSIGN(Layer); 475 DISALLOW_COPY_AND_ASSIGN(Layer);
498 }; 476 };
499 477
500 } // namespace ui 478 } // namespace ui
501 479
502 #endif // UI_COMPOSITOR_LAYER_H_ 480 #endif // UI_COMPOSITOR_LAYER_H_
OLDNEW
« no previous file with comments | « ui/compositor/compositor.cc ('k') | ui/compositor/layer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698