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

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
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;
@@ -967,23 +969,6 @@
// 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.
@@ -1000,10 +985,11 @@
// Marks the layer this view draws into as dirty.
virtual void MarkLayerDirty();
- // 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);
+ // 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);
// Creates a layer for this and recurses through all descendants.
virtual void CreateLayerIfNecessary();
@@ -1024,6 +1010,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 +1128,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,

Powered by Google App Engine
This is Rietveld 408576698