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_TEXTURE_LAYER_IMPL_H_ | |
6 #define CC_TEXTURE_LAYER_IMPL_H_ | |
7 | |
8 #include <string> | |
9 | |
10 #include "base/callback.h" | |
11 #include "cc/base/cc_export.h" | |
12 #include "cc/layer_impl.h" | |
13 | |
14 namespace cc { | |
15 | |
16 class CC_EXPORT TextureLayerImpl : public LayerImpl { | |
17 public: | |
18 static scoped_ptr<TextureLayerImpl> Create(LayerTreeImpl* tree_impl, | |
19 int id, | |
20 bool uses_mailbox) { | |
21 return make_scoped_ptr(new TextureLayerImpl(tree_impl, id, uses_mailbox)); | |
22 } | |
23 virtual ~TextureLayerImpl(); | |
24 | |
25 virtual scoped_ptr<LayerImpl> CreateLayerImpl(LayerTreeImpl* layer_tree_impl) | |
26 OVERRIDE; | |
27 virtual void PushPropertiesTo(LayerImpl* layer) OVERRIDE; | |
28 | |
29 virtual void WillDraw(ResourceProvider* resource_provider) OVERRIDE; | |
30 virtual void AppendQuads(QuadSink* quad_sink, | |
31 AppendQuadsData* append_quads_data) OVERRIDE; | |
32 virtual void DidDraw(ResourceProvider* resource_provider) OVERRIDE; | |
33 | |
34 virtual void DidLoseOutputSurface() OVERRIDE; | |
35 | |
36 virtual void DumpLayerProperties(std::string* str, int indent) const OVERRIDE; | |
37 virtual void DidBecomeActive() OVERRIDE; | |
38 | |
39 unsigned texture_id() const { return texture_id_; } | |
40 void set_texture_id(unsigned id) { texture_id_ = id; } | |
41 void set_premultiplied_alpha(bool premultiplied_alpha) { | |
42 premultiplied_alpha_ = premultiplied_alpha; | |
43 } | |
44 void set_flipped(bool flipped) { flipped_ = flipped; } | |
45 void set_uv_top_left(gfx::PointF top_left) { uv_top_left_ = top_left; } | |
46 void set_uv_bottom_right(gfx::PointF bottom_right) { | |
47 uv_bottom_right_ = bottom_right; | |
48 } | |
49 | |
50 // 1--2 | |
51 // | | | |
52 // 0--3 | |
53 void set_vertex_opacity(const float vertex_opacity[4]) { | |
54 vertex_opacity_[0] = vertex_opacity[0]; | |
55 vertex_opacity_[1] = vertex_opacity[1]; | |
56 vertex_opacity_[2] = vertex_opacity[2]; | |
57 vertex_opacity_[3] = vertex_opacity[3]; | |
58 } | |
59 | |
60 virtual bool CanClipSelf() const OVERRIDE; | |
61 | |
62 void SetTextureMailbox(const TextureMailbox& mailbox); | |
63 | |
64 private: | |
65 TextureLayerImpl(LayerTreeImpl* tree_impl, int id, bool uses_mailbox); | |
66 | |
67 virtual const char* LayerTypeAsString() const OVERRIDE; | |
68 void FreeTextureMailbox(); | |
69 | |
70 unsigned texture_id_; | |
71 ResourceProvider::ResourceId external_texture_resource_; | |
72 bool premultiplied_alpha_; | |
73 bool flipped_; | |
74 gfx::PointF uv_top_left_; | |
75 gfx::PointF uv_bottom_right_; | |
76 float vertex_opacity_[4]; | |
77 | |
78 TextureMailbox texture_mailbox_; | |
79 bool uses_mailbox_; | |
80 bool own_mailbox_; | |
81 | |
82 DISALLOW_COPY_AND_ASSIGN(TextureLayerImpl); | |
83 }; | |
84 | |
85 } // namespace cc | |
86 | |
87 #endif // CC_TEXTURE_LAYER_IMPL_H_ | |
OLD | NEW |