OLD | NEW |
| (Empty) |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #ifndef CC_NINE_PATCH_LAYER_IMPL_H_ | |
6 #define CC_NINE_PATCH_LAYER_IMPL_H_ | |
7 | |
8 #include "cc/base/cc_export.h" | |
9 #include "cc/layer_impl.h" | |
10 #include "cc/resources/resource_provider.h" | |
11 #include "ui/gfx/rect.h" | |
12 #include "ui/gfx/size.h" | |
13 | |
14 namespace base { | |
15 class DictionaryValue; | |
16 } | |
17 | |
18 namespace cc { | |
19 | |
20 class CC_EXPORT NinePatchLayerImpl : public LayerImpl { | |
21 public: | |
22 static scoped_ptr<NinePatchLayerImpl> Create(LayerTreeImpl* tree_impl, | |
23 int id) { | |
24 return make_scoped_ptr(new NinePatchLayerImpl(tree_impl, id)); | |
25 } | |
26 virtual ~NinePatchLayerImpl(); | |
27 | |
28 void SetResourceId(unsigned id) { resource_id_ = id; } | |
29 void SetLayout(gfx::Size image_bounds, gfx::Rect aperture); | |
30 | |
31 virtual scoped_ptr<LayerImpl> CreateLayerImpl(LayerTreeImpl* tree_impl) | |
32 OVERRIDE; | |
33 virtual void PushPropertiesTo(LayerImpl* layer) OVERRIDE; | |
34 | |
35 virtual void WillDraw(ResourceProvider* resource_provider) OVERRIDE; | |
36 virtual void AppendQuads(QuadSink* quad_sink, | |
37 AppendQuadsData* append_quads_data) OVERRIDE; | |
38 virtual void DidDraw(ResourceProvider* FIXMENAME) OVERRIDE; | |
39 virtual ResourceProvider::ResourceId ContentsResourceId() const OVERRIDE; | |
40 virtual void DumpLayerProperties(std::string* str, int indent) const OVERRIDE; | |
41 virtual void DidLoseOutputSurface() OVERRIDE; | |
42 | |
43 virtual base::DictionaryValue* LayerTreeAsJson() const OVERRIDE; | |
44 | |
45 protected: | |
46 NinePatchLayerImpl(LayerTreeImpl* tree_impl, int id); | |
47 | |
48 private: | |
49 virtual const char* LayerTypeAsString() const OVERRIDE; | |
50 | |
51 // The size of the NinePatch bitmap in pixels. | |
52 gfx::Size image_bounds_; | |
53 | |
54 // The transparent center region that shows the parent layer's contents in | |
55 // image space. | |
56 gfx::Rect image_aperture_; | |
57 | |
58 ResourceProvider::ResourceId resource_id_; | |
59 }; | |
60 | |
61 } // namespace cc | |
62 | |
63 #endif // CC_NINE_PATCH_LAYER_IMPL_H_ | |
OLD | NEW |