OLD | NEW |
1 /* Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 /* Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 * Use of this source code is governed by a BSD-style license that can be | 2 * Use of this source code is governed by a BSD-style license that can be |
3 * found in the LICENSE file. | 3 * found in the LICENSE file. |
4 */ | 4 */ |
5 | 5 |
6 #ifndef PPAPI_C_DEV_PP_GRAPHICS_3D_DEV_H_ | 6 #ifndef PPAPI_C_DEV_PP_GRAPHICS_3D_DEV_H_ |
7 #define PPAPI_C_DEV_PP_GRAPHICS_3D_DEV_H_ | 7 #define PPAPI_C_DEV_PP_GRAPHICS_3D_DEV_H_ |
8 | 8 |
9 #include "ppapi/c/pp_stdint.h" | 9 #include "ppapi/c/pp_stdint.h" |
10 | 10 |
11 enum PP_Graphics3DError_Dev { | 11 enum PP_Graphics3DError_Dev { |
12 PP_GRAPHICS3DERROR_BAD_ACCESS = 0x3002, | |
13 PP_GRAPHICS3DERROR_BAD_ATTRIBUTE = 0x3004, | 12 PP_GRAPHICS3DERROR_BAD_ATTRIBUTE = 0x3004, |
14 PP_GRAPHICS3DERROR_BAD_CONFIG = 0x3005, | |
15 PP_GRAPHICS3DERROR_BAD_MATCH = 0x3009, | |
16 PP_GRAPHICS3DERROR_CONTEXT_LOST = 0x300E | 13 PP_GRAPHICS3DERROR_CONTEXT_LOST = 0x300E |
17 }; | 14 }; |
18 | 15 |
19 enum PP_Graphics3DString_Dev { | 16 enum PP_Graphics3DString_Dev { |
20 PP_GRAPHICS3DSTRING_VENDOR = 0x3053, | 17 PP_GRAPHICS3DSTRING_VENDOR = 0x3053, |
21 PP_GRAPHICS3DSTRING_VERSION = 0x3054, | 18 PP_GRAPHICS3DSTRING_VERSION = 0x3054, |
22 // Which extensions are supported. | 19 // Which extensions are supported. |
23 PP_GRAPHICS3DSTRING_EXTENSIONS = 0x3055, | 20 PP_GRAPHICS3DSTRING_EXTENSIONS = 0x3055 |
24 // Which client rendering APIs are supported. | |
25 PP_GRAPHICS3DSTRING_CLIENT_APIS = 0x308D | |
26 }; | 21 }; |
27 | 22 |
28 enum PP_Graphics3DAttrib_Dev { | 23 enum PP_Graphics3DAttrib_Dev { |
29 // Total color component bits in the color buffer. | |
30 PP_GRAPHICS3DATTRIB_BUFFER_SIZE = 0x3020, | |
31 // Bits of Alpha in the color buffer. | 24 // Bits of Alpha in the color buffer. |
32 PP_GRAPHICS3DATTRIB_ALPHA_SIZE = 0x3021, | 25 PP_GRAPHICS3DATTRIB_ALPHA_SIZE = 0x3021, |
33 // Bits of Blue in the color buffer. | 26 // Bits of Blue in the color buffer. |
34 PP_GRAPHICS3DATTRIB_BLUE_SIZE = 0x3022, | 27 PP_GRAPHICS3DATTRIB_BLUE_SIZE = 0x3022, |
35 // Bits of Green in the color buffer. | 28 // Bits of Green in the color buffer. |
36 PP_GRAPHICS3DATTRIB_GREEN_SIZE = 0x3023, | 29 PP_GRAPHICS3DATTRIB_GREEN_SIZE = 0x3023, |
37 // Bits of Red in the color buffer. | 30 // Bits of Red in the color buffer. |
38 PP_GRAPHICS3DATTRIB_RED_SIZE = 0x3024, | 31 PP_GRAPHICS3DATTRIB_RED_SIZE = 0x3024, |
39 // Bits of Z in the depth buffer. | 32 // Bits of Z in the depth buffer. |
40 PP_GRAPHICS3DATTRIB_DEPTH_SIZE = 0x3025, | 33 PP_GRAPHICS3DATTRIB_DEPTH_SIZE = 0x3025, |
41 // Bits of Stencil in the stencil buffer. | 34 // Bits of Stencil in the stencil buffer. |
42 PP_GRAPHICS3DATTRIB_STENCIL_SIZE = 0x3026, | 35 PP_GRAPHICS3DATTRIB_STENCIL_SIZE = 0x3026, |
43 // Any caveats for the configuration. | |
44 PP_GRAPHICS3DATTRIB_CONFIG_CAVEAT = 0x3027, | |
45 // Unique EGLConfig identifier. | |
46 PP_GRAPHICS3DATTRIB_CONFIG_ID = 0x3028, | |
47 // Maximum height of surface. | 36 // Maximum height of surface. |
48 PP_GRAPHICS3DATTRIB_MAX_SURFACE_HEIGHT = 0x302A, | 37 PP_GRAPHICS3DATTRIB_MAX_SURFACE_HEIGHT = 0x302A, |
49 // Maximum size of surface. | 38 // Maximum size of surface. |
50 PP_GRAPHICS3DATTRIB_MAX_SURFACE_PIXELS = 0x302B, | 39 PP_GRAPHICS3DATTRIB_MAX_SURFACE_PIXELS = 0x302B, |
51 // Maximum width of surface. | 40 // Maximum width of surface. |
52 PP_GRAPHICS3DATTRIB_MAX_SURFACE_WIDTH = 0x302C, | 41 PP_GRAPHICS3DATTRIB_MAX_SURFACE_WIDTH = 0x302C, |
53 // Number of samples per pixel. | 42 // Number of samples per pixel. |
54 PP_GRAPHICS3DATTRIB_SAMPLES = 0x3031, | 43 PP_GRAPHICS3DATTRIB_SAMPLES = 0x3031, |
55 // Number of multisample buffers. | 44 // Number of multisample buffers. |
56 PP_GRAPHICS3DATTRIB_SAMPLE_BUFFERS = 0x3032, | 45 PP_GRAPHICS3DATTRIB_SAMPLE_BUFFERS = 0x3032, |
57 // Which types of EGL surfaces are supported. | |
58 PP_GRAPHICS3DATTRIB_SURFACE_TYPE = 0x3033, | |
59 // Type of transparency supported. | |
60 PP_GRAPHICS3DATTRIB_TRANSPARENT_TYPE = 0x3034, | |
61 // Transparent blue value. | |
62 PP_GRAPHICS3DATTRIB_TRANSPARENT_BLUE_VALUE = 0x3035, | |
63 // Transparent green value. | |
64 PP_GRAPHICS3DATTRIB_TRANSPARENT_GREEN_VALUE = 0x3036, | |
65 // Transparent red value. | |
66 PP_GRAPHICS3DATTRIB_TRANSPARENT_RED_VALUE = 0x3037, | |
67 // Attrib list terminator. | 46 // Attrib list terminator. |
68 PP_GRAPHICS3DATTRIB_NONE = 0x3038, | 47 PP_GRAPHICS3DATTRIB_NONE = 0x3038, |
69 // TODO(alokp): Find out if we can support swap intervals. Remove them if not. | |
70 // Minimum swap interval. | |
71 PP_GRAPHICS3DATTRIB_MIN_SWAP_INTERVAL = 0x303B, | |
72 // Maximum swap interval. | |
73 PP_GRAPHICS3DATTRIB_MAX_SWAP_INTERVAL = 0x303C, | |
74 // Bits of Luminance in the color buffer. | |
75 PP_GRAPHICS3DATTRIB_LUMINANCE_SIZE = 0x303D, | |
76 // Bits of Alpha Mask in the mask buffer. | |
77 PP_GRAPHICS3DATTRIB_ALPHA_MASK_SIZE = 0x303E, | |
78 // Color buffer type. | |
79 PP_GRAPHICS3DATTRIB_COLOR_BUFFER_TYPE = 0x303F, | |
80 // Which client APIs are supported. | |
81 PP_GRAPHICS3DATTRIB_RENDERABLE_TYPE = 0x3040, | |
82 // Whether contexts created with this config are conformant. | |
83 PP_GRAPHICS3DATTRIB_CONFORMANT = 0x3042, | |
84 | 48 |
85 // Surface-specific attributes. | 49 // Surface-specific attributes. |
86 // Height of surface in pixels. | 50 // Height of surface in pixels. |
87 PP_GRAPHICS3DATTRIB_HEIGHT = 0x3056, | 51 PP_GRAPHICS3DATTRIB_HEIGHT = 0x3056, |
88 // Width of surface in pixels. | 52 // Width of surface in pixels. |
89 PP_GRAPHICS3DATTRIB_WIDTH = 0x3057, | 53 PP_GRAPHICS3DATTRIB_WIDTH = 0x3057, |
90 // If true, largest possible surface is created. | 54 |
91 PP_GRAPHICS3DATTRIB_LARGEST_SURFACE = 0x3058, | |
92 // The buffer which client API renders to. | |
93 PP_GRAPHICS3DATTRIB_RENDER_BUFFER = 0x3086, | |
94 // Specifies the effect on the color buffer of posting a surface | 55 // Specifies the effect on the color buffer of posting a surface |
95 // with SwapBuffers. | 56 // with SwapBuffers. The initial value is chosen by the implementation. |
96 PP_GRAPHICS3DATTRIB_SWAP_BEHAVIOR = 0x3093, | 57 PP_GRAPHICS3DATTRIB_SWAP_BEHAVIOR = 0x3093, |
97 // Specifies the filter to use when resolving the multisample buffer. | 58 // Indicates that color buffer contents are unaffected. |
98 PP_GRAPHICS3DATTRIB_MULTISAMPLE_RESOLVE = 0x3099, | 59 PP_GRAPHICS3DATTRIB_BUFFER_PRESERVED = 0x3094, |
99 | 60 // Indicates that color buffer contents may be destroyed or changed. |
100 // Context-specific attributes. | 61 PP_GRAPHICS3DATTRIB_BUFFER_DESTROYED = 0x3095 |
101 // Which client API the context supports. | |
102 PP_GRAPHICS3DATTRIB_CONTEXT_CLIENT_TYPE = 0x3097, | |
103 // Version of OpenGL ES supported by a context. | |
104 // An attribute value of 1 specifies OpenGL ES 1.x. | |
105 // An attribute value of 2 specifies OpenGL ES 2.x. | |
106 // The default value for PP_GRAPHICS3DATTRIB_CONTEXT_CLIENT_VERSION is 1. | |
107 // This attribute is only meaningful for an OpenGL ES context. | |
108 PP_GRAPHICS3DATTRIB_CONTEXT_CLIENT_VERSION = 0x3098 | |
109 }; | 62 }; |
110 | 63 |
111 enum PP_Graphics3DAttribValue_Dev { | 64 // TODO(alokp): Remove this when PPB_Context3D_Dev and PPB_Surface3D_Dev |
112 PP_GRAPHICS3DATTRIBVALUE_NONE = 0x3038, | 65 // are deprecated. |
113 | |
114 // PP_GRAPHICS3DATTRIB_CONFIG_CAVEAT values. | |
115 PP_GRAPHICS3DATTRIBVALUE_SLOW_CONFIG = 0x3050, | |
116 PP_GRAPHICS3DATTRIBVALUE_NON_CONFORMANT_CONFIG = 0x3051, | |
117 | |
118 // PP_GRAPHICS3DATTRIB_TRANSPARENT_TYPE values. | |
119 PP_GRAPHICS3DATTRIBVALUE_TRANSPARENT_RGB = 0x3052, | |
120 | |
121 // PP_GRAPHICS3DATTRIB_COLOR_BUFFER_TYPE values. | |
122 PP_GRAPHICS3DATTRIBVALUE_RGB_BUFFER = 0x308E, | |
123 PP_GRAPHICS3DATTRIBVALUE_LUMINANCE_BUFFER = 0x308F, | |
124 | |
125 // PP_GRAPHICS3DATTRIB_SURFACE_TYPE mask bits. | |
126 // Indicates if box filter (PP_GRAPHICS3DATTRIBVALUE_MULTISAMPLE_RESOLVE_BOX) | |
127 // for resolving the multisample buffer is supported. | |
128 PP_GRAPHICS3DATTRIBVALUE_MULTISAMPLE_RESOLVE_BOX_BIT = 0x0200, | |
129 PP_GRAPHICS3DATTRIBVALUE_SWAP_BEHAVIOR_PRESERVED_BIT = 0x0400, | |
130 | |
131 // PP_GRAPHICS3DATTRIB_RENDERABLE_TYPE mask bits. | |
132 PP_GRAPHICS3DATTRIBVALUE_OPENGL_ES_BIT = 0x0001, | |
133 PP_GRAPHICS3DATTRIBVALUE_OPENGL_ES2_BIT = 0x0004, | |
134 PP_GRAPHICS3DATTRIBVALUE_OPENGL_BIT = 0x0008, | |
135 | |
136 // PP_GRAPHICS3DATTRIB_RENDER_BUFFER values. | |
137 // The default value is PP_GRAPHICS3DATTRIBVALUE_BACK_BUFFER. | |
138 // Surface contains two color buffers and client APIs render into | |
139 // the back buffer. | |
140 PP_GRAPHICS3DATTRIBVALUE_BACK_BUFFER = 0x3084, | |
141 // Surface contains a single color buffer. | |
142 PP_GRAPHICS3DATTRIBVALUE_SINGLE_BUFFER = 0x3085, | |
143 | |
144 // PP_GRAPHICS3DATTRIB_SWAP_BEHAVIOR values. | |
145 // The initial value is chosen by the implementation. | |
146 // Indicates that color buffer contents are unaffected. | |
147 PP_GRAPHICS3DATTRIBVALUE_BUFFER_PRESERVED = 0x3094, | |
148 // Indicates that color buffer contents may be destroyed or changed. | |
149 PP_GRAPHICS3DATTRIBVALUE_BUFFER_DESTROYED = 0x3095, | |
150 | |
151 // PP_GRAPHICS3DATTRIB_MULTISAMPLE_RESOLVE values. | |
152 // The default value is PP_GRAPHICS3DATTRIBVALUE_MULTISAMPLE_RESOLVE_DEFAULT. | |
153 // The default implementation-defined filtering method. | |
154 PP_GRAPHICS3DATTRIBVALUE_MULTISAMPLE_RESOLVE_DEFAULT = 0x309A, | |
155 // One-pixel wide box filter placing equal weighting on all | |
156 // multisample values. | |
157 PP_GRAPHICS3DATTRIBVALUE_MULTISAMPLE_RESOLVE_BOX = 0x309B, | |
158 | |
159 // PP_GRAPHICS3DATTRIB_CONTEXT_CLIENT_TYPE values. | |
160 PP_GRAPHICS3DATTRIBVALUE_OPENGL_ES_API = 0x30A0, | |
161 PP_GRAPHICS3DATTRIBVALUE_OPENGL_API = 0x30A2 | |
162 }; | |
163 | |
164 typedef int32_t PP_Config3D_Dev; | 66 typedef int32_t PP_Config3D_Dev; |
165 | 67 |
166 #endif // PPAPI_C_DEV_PP_GRAPHICS_3D_DEV_H_ | 68 #endif // PPAPI_C_DEV_PP_GRAPHICS_3D_DEV_H_ |
OLD | NEW |