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

Unified Diff: views/view.h

Issue 7845033: Rework View Layer Draw() to use the Layer::DrawTree() method and the LayerDelegate. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « views/layer_helper.cc ('k') | views/view.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: views/view.h
===================================================================
--- views/view.h (revision 100773)
+++ views/view.h (working copy)
@@ -17,6 +17,7 @@
#include "base/memory/scoped_ptr.h"
#include "build/build_config.h"
#include "ui/base/dragdrop/os_exchange_data.h"
+#include "ui/gfx/compositor/layer_delegate.h"
#include "ui/gfx/native_widget_types.h"
#include "ui/gfx/rect.h"
#include "views/accelerator.h"
@@ -91,7 +92,8 @@
// accessed from the main thread.
//
/////////////////////////////////////////////////////////////////////////////
-class VIEWS_EXPORT View : public AcceleratorTarget {
+class VIEWS_EXPORT View : public ui::LayerDelegate,
+ public AcceleratorTarget {
public:
typedef std::vector<View*> Views;
@@ -961,29 +963,6 @@
// Accelerated painting ------------------------------------------------------
- // Invoked from SchedulePaintInRect. Invokes SchedulePaintInternal on the
- // parent. This does not mark the layer as dirty. It's assumed the caller has
- // done this. You should not need to invoke this, use SchedulePaint or
- // SchedulePaintInRect instead.
- virtual void SchedulePaintInternal(const gfx::Rect& r);
-
- // If our layer is out of date invokes Paint() with a canvas that is then
- // copied to the layer. If the layer is not out of date recursively descends
- // in case any children needed their layers updated.
- //
- // This is invoked internally by Widget and painting code.
- virtual void PaintToLayer(const gfx::Rect& dirty_rect);
-
- // Instructs the compositor to show our layer and all children layers.
- // Invokes OnWillCompositeLayer() for any views that have layers.
- //
- // This is invoked internally by Widget and painting code.
- virtual void PaintComposite();
-
- // Invoked from |PaintComposite| if this view has a layer and before the
- // layer is rendered by the compositor.
- virtual void OnWillCompositeLayer();
-
// This creates a layer for the view, if one does not exist. It then
// passes the texture to a layer associated with the view. While an external
// texture is set, the view will not update the layer contents.
@@ -997,14 +976,12 @@
virtual const ui::Compositor* GetCompositor() const;
virtual ui::Compositor* GetCompositor();
- // Marks the layer this view draws into as dirty.
- virtual void MarkLayerDirty();
+ // Returns the offset from this view to the nearest ancestor with a layer.
+ // If |ancestor| is non-NULL it is set to the nearest ancestor with a layer.
+ virtual void CalculateOffsetToAncestorWithLayer(
+ gfx::Point* offset,
+ ui::Layer** layer_parent);
- // Returns the offset from this view to the neareset ancestor with a layer.
- // If |ancestor| is non-NULL it is set to the nearset ancestor with a layer.
- virtual void CalculateOffsetToAncestorWithLayer(gfx::Point* offset,
- View** ancestor);
-
// Creates a layer for this and recurses through all descendants.
virtual void CreateLayerIfNecessary();
@@ -1024,6 +1001,9 @@
// descendants.
virtual void UpdateLayerBounds(const gfx::Point& offset);
+ // Overridden from ui::LayerDelegate:
+ virtual void OnPaintLayer(gfx::Canvas* canvas) OVERRIDE;
+
// Input ---------------------------------------------------------------------
// Called by HitTest to see if this View has a custom hit test mask. If the
@@ -1139,6 +1119,10 @@
// new bounds.
void SchedulePaintBoundsChanged(SchedulePaintType type);
+ // Common Paint() code shared by accelerated and non-accelerated code paths to
+ // invoke OnPaint() on the View.
+ void PaintCommon(gfx::Canvas* canvas);
+
// Tree operations -----------------------------------------------------------
// Removes |view| from the hierarchy tree. If |update_focus_cycle| is true,
« no previous file with comments | « views/layer_helper.cc ('k') | views/view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698