Chromium Code Reviews| Index: cc/layers/nine_patch_layer.h |
| diff --git a/cc/layers/nine_patch_layer.h b/cc/layers/nine_patch_layer.h |
| index 35d08812cff817e9a26247ef13e71683ba05463c..3ef1e01abb61cbb8f813d612de56e0fc7c7529fb 100644 |
| --- a/cc/layers/nine_patch_layer.h |
| +++ b/cc/layers/nine_patch_layer.h |
| @@ -8,32 +8,49 @@ |
| #include "base/memory/scoped_ptr.h" |
| #include "cc/base/cc_export.h" |
| #include "cc/layers/layer.h" |
| -#include "cc/resources/image_layer_updater.h" |
| -#include "third_party/skia/include/core/SkBitmap.h" |
| +#include "cc/resources/ui_resource_client.h" |
| #include "ui/gfx/rect.h" |
| namespace cc { |
| -class ResourceUpdateQueue; |
| +class LayerTreeHost; |
| +class ScopedUIResource; |
| class CC_EXPORT NinePatchLayer : public Layer { |
| public: |
| static scoped_refptr<NinePatchLayer> Create(); |
| virtual bool DrawsContent() const OVERRIDE; |
| - virtual void SetTexturePriorities(const PriorityCalculator& priority_calc) |
| - OVERRIDE; |
| - virtual bool Update(ResourceUpdateQueue* queue, |
| - const OcclusionTracker* occlusion) OVERRIDE; |
| + |
| virtual void PushPropertiesTo(LayerImpl* layer) OVERRIDE; |
| + virtual void SetLayerTreeHost(LayerTreeHost* host) OVERRIDE; |
| + |
| + // The |border| is the space around the center rectangular region in layer |
| + // space (known as aperture in image space). |border.x()| and |border.y()| |
| + // are the size of the left and top boundary, respectively. |
| + // |border.width()-border.x()| and |border.height()-border.y()| are the size |
| + // of the right and bottom boundary, respectively. |
| + void SetBorder(gfx::Rect border); |
| + |
| // aperture is in the pixel space of the bitmap resource and refers to |
| // the center patch of the ninepatch (which is unused in this |
| // implementation). We split off eight rects surrounding it and stick them |
| // on the edges of the layer. The corners are unscaled, the top and bottom |
| // rects are x-stretched to fit, and the left and right rects are |
| // y-stretched to fit. |
| - void SetBitmap(const SkBitmap& bitmap, gfx::Rect aperture); |
| + void SetBitmap(const SkBitmap& skbitmap, gfx::Rect aperture); |
| + |
| + // An alternative way of setting bitmap to allow for sharing of resources. |
| + void SetUIResourceId(UIResourceId resource_id, |
| + gfx::Rect aperture, |
| + bool fill_center); |
|
aelias_OOO_until_Jul13
2013/08/30 06:20:41
Put this in a separate call SetFillCenter(bool); s
powei
2013/09/03 23:36:05
Done.
|
| + |
| + class UIResourceHolder { |
| + public: |
| + virtual UIResourceId id() = 0; |
|
aelias_OOO_until_Jul13
2013/08/30 18:09:54
Thinking about it further I think you're on to som
aelias_OOO_until_Jul13
2013/08/30 19:02:40
Powei pointed out offline that this has problems w
powei
2013/09/03 23:36:05
Left it as is for now.
|
| + virtual ~UIResourceHolder(); |
| + }; |
| private: |
| NinePatchLayer(); |
| @@ -41,14 +58,9 @@ class CC_EXPORT NinePatchLayer : public Layer { |
| virtual scoped_ptr<LayerImpl> CreateLayerImpl(LayerTreeImpl* tree_impl) |
| OVERRIDE; |
| - void CreateUpdaterIfNeeded(); |
| - void CreateResource(); |
| - |
| - scoped_refptr<ImageLayerUpdater> updater_; |
| - scoped_ptr<LayerUpdater::Resource> resource_; |
| - |
| - SkBitmap bitmap_; |
| - bool bitmap_dirty_; |
| + gfx::Rect border_; |
| + bool fill_center_; |
| + scoped_ptr<UIResourceHolder> resource_; |
|
aelias_OOO_until_Jul13
2013/08/30 06:20:41
Rename this to ui_resource_holder_
powei
2013/09/03 23:36:05
Done.
|
| // The transparent center region that shows the parent layer's contents in |
| // image space. |