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

Side by Side Diff: ppapi/shared_impl/compositor_layer_data.h

Issue 331123003: Revert 277208 "[PPAPI] Compositor API implementation." (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « ppapi/proxy/ppb_instance_proxy.cc ('k') | ppapi/shared_impl/compositor_layer_data.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2014 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 PPAPI_SHARED_IMPL_COMPOSITOR_LAYER_DATA_H_
6 #define PPAPI_SHARED_IMPL_COMPOSITOR_LAYER_DATA_H_
7
8 #include <string.h>
9
10 #include "base/logging.h"
11 #include "base/memory/scoped_ptr.h"
12 #include "gpu/command_buffer/common/mailbox.h"
13 #include "ppapi/c/ppb_compositor_layer.h"
14 #include "ppapi/shared_impl/host_resource.h"
15 #include "ppapi/shared_impl/ppapi_shared_export.h"
16
17 namespace ppapi {
18
19 struct PPAPI_SHARED_EXPORT CompositorLayerData {
20
21 struct Transform {
22 Transform() {
23 matrix[0] = 1.0f;
24 matrix[1] = 0.0f;
25 matrix[2] = 0.0f;
26 matrix[3] = 0.0f;
27 matrix[4] = 0.0f;
28 matrix[5] = 1.0f;
29 matrix[6] = 0.0f;
30 matrix[7] = 0.0f;
31 matrix[8] = 0.0f;
32 matrix[9] = 0.0f;
33 matrix[10] = 1.0f;
34 matrix[11] = 0.0f;
35 matrix[12] = 0.0f;
36 matrix[13] = 0.0f;
37 matrix[14] = 0.0f;
38 matrix[15] = 1.0f;
39 }
40
41 float matrix[16];
42 };
43
44 struct LayerCommon {
45 LayerCommon()
46 : size(PP_MakeSize(0, 0)),
47 clip_rect(PP_MakeRectFromXYWH(0, 0, 0, 0)),
48 blend_mode(PP_BLENDMODE_SRC_OVER),
49 opacity(1.0f),
50 resource_id(0) {
51 }
52
53 PP_Size size;
54 PP_Rect clip_rect;
55 Transform transform;
56 PP_BlendMode blend_mode;
57 float opacity;
58 uint32_t resource_id;
59 };
60
61 struct ColorLayer {
62 ColorLayer() : red(0.0f), green(0.0f), blue(0.0f), alpha(0.0f) {}
63
64 float red;
65 float green;
66 float blue;
67 float alpha;
68 };
69
70 struct ImageLayer {
71 ImageLayer()
72 : resource(0),
73 source_rect(PP_MakeFloatRectFromXYWH(0.0f, 0.0f, 0.0f, 0.0f)) {}
74
75 PP_Resource resource;
76 PP_FloatRect source_rect;
77 };
78
79 struct TextureLayer {
80 TextureLayer()
81 : sync_point(0),
82 source_rect(PP_MakeFloatRectFromXYWH(0.0f, 0.0f, 1.0f, 1.0f)),
83 premult_alpha(true) {}
84
85 gpu::Mailbox mailbox;
86 uint32_t sync_point;
87 PP_FloatRect source_rect;
88 bool premult_alpha;
89 };
90
91 CompositorLayerData() {}
92
93 CompositorLayerData(const CompositorLayerData& other) {
94 *this = other;
95 }
96
97 bool is_null() const {
98 return !(color || texture || image);
99 }
100
101 bool is_valid() const {
102 int i = 0;
103 if (color) ++i;
104 if (texture) ++i;
105 if (image) ++i;
106 return i == 1;
107 }
108
109 const CompositorLayerData& operator=(const CompositorLayerData& other);
110
111 LayerCommon common;
112 scoped_ptr<ColorLayer> color;
113 scoped_ptr<TextureLayer> texture;
114 scoped_ptr<ImageLayer> image;
115 };
116
117 } // namespace ppapi
118
119 #endif // PPAPI_SHARED_IMPL_COMPOSITOR_LAYER_DATA_H_
OLDNEW
« no previous file with comments | « ppapi/proxy/ppb_instance_proxy.cc ('k') | ppapi/shared_impl/compositor_layer_data.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698