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

Side by Side Diff: gpu/GLES2/extensions/CHROMIUM/CHROMIUM_copy_texture.txt

Issue 2781863002: Revert of Update the passthrough command decoder to use the new CHROMIUM_copy_texture. (Closed)
Patch Set: Created 3 years, 8 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
« no previous file with comments | « DEPS ('k') | gpu/command_buffer/client/gles2_c_lib_autogen.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 Name 1 Name
2 2
3 CHROMIUM_copy_texture 3 CHROMIUM_copy_texture
4 4
5 Name Strings 5 Name Strings
6 6
7 GL_CHROMIUM_copy_texture 7 GL_CHROMIUM_copy_texture
8 8
9 Version 9 Version
10 10
11 Last Modifed Date: March 24, 2017 11 Last Modifed Date: July 16, 2014
12 12
13 Dependencies 13 Dependencies
14 14
15 OpenGL ES 2.0 or OpenGL ES 3.0 is required. 15 OpenGL ES 2.0 or OpenGL ES 3.0 is required.
16 16
17 EXT_texture_format_BGRA8888 affects the definition of this extension. 17 EXT_texture_format_BGRA8888 affects the definition of this extension.
18 ARB_texture_rg affects the definition of this extension. 18 ARB_texture_rg affects the definition of this extension.
19 CHROMIUM_ycbcr_422_image affects the definition of this extension. 19 CHROMIUM_ycbcr_422_image affects the definition of this extension.
20 20
21 Overview 21 Overview
22 22
23 This extension expands on the functionality provided by the 23 This extension expands on the functionality provided by the
24 glCopyTexImage2D command. A new function is exported, 24 glCopyTexImage2D command. A new function is exported,
25 glCopyTextureCHROMIUM, that performs the same copy operation as 25 glCopyTextureCHROMIUM, that performs the same copy operation as
26 glCopyTexImage2D. 26 glCopyTexImage2D.
27 27
28 The extension also supports copying BGRA textures and copying 28 The extension also supports copying BGRA textures and copying
29 EXTERNAL_OES texture to BGRA texture, which is not explicitly 29 EXTERNAL_OES texture to BGRA texture, which is not explicitly
30 granted by EXT_texture_format_BGRA8888. 30 granted by EXT_texture_format_BGRA8888.
31 31
32 New Procedures and Functions 32 New Procedures and Functions
33 33
34 void CopyTextureCHROMIUM(uint sourceId,
35 int sourceLevel,
36 enum destTarget,
37 uint destId,
38 int destLevel,
39 int internalFormat,
40 enum destType,
41 boolean unpackFlipY,
42 boolean unpackPremultiplyAlpha,
43 boolean unpackUnmultiplyAlpha)
44
45
46 void CopySubTextureCHROMIUM(uint sourceId,
47 int sourceLevel,
48 enum destTarget,
49 uint destId,
50 int destLevel,
51 int xoffset,
52 int yoffset,
53 int x,
54 int y,
55 sizei width,
56 sizei height,
57 boolean unpackFlipY,
58 boolean unpackPremultiplyAlpha,
59 boolean unpackUnmultiplyAlpha)
60
61 Additions to the OpenGL ES 2.0 Specification
62
63 The command 34 The command
64 35
65 CopyTextureCHROMIUM 36 void glCopyTextureCHROMIUM (GLenum source_id,
37 GLint source_level,
38 GLenum dest_target,
39 GLenum dest_id,
40 GLint dest_level,
41 GLint internal_format, GLenum dest_type,
42 GLboolean unpack_flip_y,
43 GLboolean unpack_premultiply_alpha,
44 GLboolean unpack_unmultiply_alpha)
66 45
67 Copies the contents of <sourceLevel> level of <sourceId> texture to 46 Copies the contents of <source_id> texture to <dest_id> texture.
68 <destLevel> level and <destTarget> target of <destId> texture.
69 47
70 <destTarget> must be TEXTURE_2D, 48 <source_level> specifies the level of the source texture which is copied
71 TEXTURE_CUBE_MAP_POSITIVE_X, TEXTURE_CUBE_MAP_NEGATIVE_X, 49 from.
72 TEXTURE_CUBE_MAP_POSITIVE_Y, TEXTURE_CUBE_MAP_NEGATIVE_Y, 50 <dest_level> specifies the level of the destination texture which is copied
73 TEXTURE_CUBE_MAP_POSITIVE_Z, TEXTURE_CUBE_MAP_NEGATIVE_Z, 51 to.
74 TEXTURE_RECTANGLE_ARB. 52
53 <dest_target> specifies the target of destination texture. Must be
54 GL_TEXTURE_2D,
55 GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X,
56 GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,
57 GL_TEXTURE_CUBE_MAP_POSITIVE_Z, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z,
58 GL_TEXTURE_RECTANGLE_ARB.
75 59
76 The internal format of the destination texture is converted to that 60 The internal format of the destination texture is converted to that
77 specified by <internalFormat>. 61 specified by <internal_format>. Must be one of the following symbolic
62 constants: GL_RGB, GL_RGBA, GL_RGB8, GL_RGBA8, GL_BGRA_EXT, GL_BGRA8_EXT,
63 GL_SRGB_EXT, GL_SRGB_ALPHA_EXT, GL_R8, GL_R8UI, GL_RG8, GL_RG8UI, GL_SRGB8,
64 GL_RGB565, GL_RGB8UI, GL_SRGB8_ALPHA8, GL_RGB5_A1, GL_RGBA4, GL_RGBA4,
65 GL_RGBA8UI, GL_RGB9_E5, GL_R16F, GL_R32F, GL_RG16F, GL_RG32F, GL_RGB16F,
66 GL_RGB32F, GL_RGBA16F, GL_RGBA32F, GL_R11F_G11F_B10F.
67 The internal format of source texture must be one of the following
68 symbolic constants: GL_RED, GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA,
69 GL_RGB, GL_RGBA, GL_RGB8, GL_RGBA8, GL_BGRA_EXT, GL_BGRA8_EXT,
70 GL_RGB_YCBCR_420V_CHROMIUM, GL_RGB_YCBCR_422_CHROMIUM.
71 When source texture doens't contain a superset of the component
72 required by <internal_format>, fill the components by following rules.
78 73
79 When source texture doens't contain a superset of the component 74 source format color components
80 required by <internalFormat>, fill the components by following rules. 75 =====================================================
81 76 GL_ALPHA (0, 0, 0, A)
82 source format color components 77 GL_RED (R, 0, 0, 1)
83 ---------------------------------------- 78 GL_LUMINANCE (L, L, L, 1)
84 ALPHA (0, 0, 0, A) 79 GL_LUMINANCE_ALPHA (L, L, L, A)
85 RED (R, 0, 0, 1) 80 GL_RGB (R, G, B, 1)
86 LUMINANCE (L, L, L, 1) 81 GL_RGB8 (R, G, B, 1)
87 LUMINANCE_ALPHA (L, L, L, A) 82 GL_RGBA (R, G, B, A)
88 RGB (R, G, B, 1) 83 GL_RGBA8 (R, G, B, A)
89 RGB8 (R, G, B, 1) 84 GL_BGRA_EXT (R, G, B, A)
90 RGBA (R, G, B, A) 85 GL_BGRA8_EXT (R, G, B, A)
91 RGBA8 (R, G, B, A) 86 GL_RGB_YCBCR_420V_CHROMIUM (R, G, B, 1)
92 BGRA_EXT (R, G, B, A) 87 GL_RGB_YCBCR_422_CHROMIUM (R, G, B, 1)
93 BGRA8_EXT (R, G, B, A)
94 RGB_YCBCR_420V_CHROMIUM (R, G, B, 1)
95 RGB_YCBCR_422_CHROMIUM (R, G, B, 1)
96 88
97 The format type of the destination texture is converted to that specified 89 The format type of the destination texture is converted to that specified
98 by <destType>. 90 by <dest_type>.
99 91
100 If <flipY> is true, vertically flip texture image data. 92 If <flip_y> is true, vertically flip texture image data.
101 93
102 If <unpackPremultiplyAlpha> and <unpackUnmultiplyAlpha> are true, 94 If <unpack_premultiply_alpha> and <unpack_unmultiply_alpha> are true,
103 no alpha processing occurs. This is the equivalent of having neither flag 95 no alpha processing occurs. This is the equivalent of having neither flag
104 set. 96 set.
105 97
106 When <sourceId> refers to a stream texture, the texture matrix will be 98 When <source_id> refers to a stream texture, the texture matrix will be
107 applied as part of the copy operation. 99 applied as part of the copy operation.
108 100
109 INVALID_OPERATION is generated if <internalFormat> is not one of the 101 INVALID_OPERATION is generated if <internal_format> is not one of the valid
110 formats in Table 1.0. 102 formats described above.
111 103
112 INVALID_OPERATION is generated if the internal format of <sourceId> is not 104 INVALID_OPERATION is generated if the internal format of <source_id> is not
113 one of formats in Table 1.1. 105 one of formats from the table above.
114 106
115 INVALID_VALUE is generated if <sourceId> or <destId> are not valid texture 107 INVALID_VALUE is generated if <source_id> or <dest_id> are not valid texture
116 objects. 108 objects.
117 109
118 INVALID_ENUM is generated if <destTarget> is not one of the valid targets 110 INVALID_ENUM is generated if <dest_target> is not one of the valid targets
119 described above. 111 described above.
120 112
121 INVALID_OPERATION is generated if the bound target of destination texture 113 INVALID_OPERATION is generated if the bound target of destination texture
122 does not match <target>. 114 does not match <target>.
123 115
124 INVALID_VALUE is generated if textures corresponding to <destId> have not 116 INVALID_VALUE is generated if textures corresponding to <dest_id> have not
125 been bound as TEXTURE_2D, TEXTURE_CUBE_MAP, or 117 been bound as GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP, or
126 TEXTURE_RECTANGLE_ARB objects. 118 GL_TEXTURE_RECTANGLE_ARB objects.
127 119
128 INVALID_VALUE is generated if textures corresponding to <sourceId> have not 120 INVALID_VALUE is generated if textures corresponding to <source_id> have not
129 been bound as TEXTURE_2D, TEXTURE_RECTANGLE_ARB or 121 been bound as GL_TEXTURE_2D, GL_TEXTURE_RECTANGLE_ARB or
130 TEXTURE_EXTERNAL_OES objects. 122 GL_TEXTURE_EXTERNAL_OES objects.
131 123
132 INVALID_VALUE is generated if <sourceLevel> is not 0 for ES 2.0, or if 124 INVALID_VALUE is generated if <source_level> is not 0 for ES 2.0, or if
133 <sourceLevel> or <destLevel> is less than 0 for ES 3.0. 125 <source_level> or <dest_level> is less than 0 for ES 3.0.
134 126
135 INVALID_VALUE is generated if <sourceLevel> of the source texture is not 127 INVALID_VALUE is generated if <source_level> of the source texture is not
136 defined. 128 defined.
137 129
138 The command 130 The command
139 131
140 CopySubTextureCHROMIUM 132 void glCopySubTextureCHROMIUM (GLenum source_id,
133 GLint source_level,
134 GLenum dest_target,
135 GLenum dest_id,
136 GLint dest_level,
137 GLint xoffset, GLint yoffset,
138 GLint x, GLint y,
139 GLsizei width, GLsizei height,
140 GLboolean unpack_flip_y,
141 GLboolean unpack_premultiply_alpha,
142 GLboolean unpack_unmultiply_alpha)
141 143
142 Copies the sub contents of texture referred to by <sourceId> to <destId> 144 Copies the sub contents of texture referred to by <source_id> to <dest_id>
143 texture without redefining <destId> texture. 145 texture without redefining <dest_id> texture.
144 146
145 See CopyTextureCHROMIUM for the interpretation of the <destTarget>, 147 See CopyTextureCHROMIUM for the interpretation of the <dest_target>,
146 <sourceLevel>, <destLevel>, <flipY>, <premultiplyAlpha>, and 148 <source_level>, <dest_level>, <flip_y>, <premultiply_alpha>, and
147 <unmultiplyAlpha> arguments. 149 <unmultiply_alpha> arguments.
148 150
149 <xoffset> and <yoffset> specify a texel offset in the x and y direction 151 <xoffset> and <yoffset> specify a texel offset in the x and y direction
150 respectively within the destination texture. 152 respectively within the destination texture.
151 153
152 <x> and <y> specify specify a texel offset in the x and y direction 154 <x> and <y> specify specify a texel offset in the x and y direction
153 respectively within the source texture. 155 respectively within the source texture.
154 156
155 <width> specifies the width of the texture subimage. 157 <width> specifies the width of the texture subimage.
156 158
157 <height> specifies the width of the texture subimage. 159 <height> specifies the width of the texture subimage.
158 160
159 INVALID_VALUE is generated if either <sourceId> texture or <destId> 161 INVALID_VALUE is generated if either <source_id> texture or <dest_id>
160 texture is not defined. 162 texture is not defined.
161 163
162 INVALID_OPERATION is generated if the internal format of <sourceId> or 164 INVALID_OPERATION is generated if source internal_format and destination
163 <destId> is not one of formats in Table 1.1. 165 internal_format are not one of the valid formats described above.
164 166
165 INVALID_OPERATION is generated if the destination texture array has not 167 INVALID_OPERATION is generated if the destination texture array has not
166 been defined. 168 been defined.
167 169
168 INVALID_VALUE is generated if <destId> texture is not bound as 170 INVALID_VALUE is generated if <dest_id> texture is not bound as
169 TEXTURE_2D or TEXTURE_RECTANGLE_ARB. 171 GL_TEXTURE_2D or GL_TEXTURE_RECTANGLE_ARB.
170 172
171 INVALID_VALUE is generated if level 0 of the source texture or 173 INVALID_VALUE is generated if level 0 of the source texture or
172 the destination texture is not defined. 174 the destination texture is not defined.
173 175
174 INVALID_VALUE is generated if (<xoffset> + <width>) > destWidth, 176 INVALID_VALUE is generated if <xoffset> < 0 , or <yoffset> < 0.
175 or (<yoffset> + <height>) > destHeight.
176 177
177 Table 1.0 Valid internal formats for CopyTextureCHROMIUM: 178 INVALID_VALUE is generated if (<xoffset> + <width>) > dest_width,
178 179 or (<yoffset> + <height>) > dest_height.
179 <internalFormat>
180 ---------------
181 RGB
182 RGBA
183 RGB8
184 RGBA8
185 BGRA_EXT
186 BGRA8_EXT,
187 SRGB_EXT
188 SRGB_ALPHA_EXT
189 R8
190 R8UI
191 RG8
192 RG8UI
193 SRGB8
194 RGB565
195 RGB8UI
196 SRGB8_ALPHA8
197 RGB5_A1
198 RGBA4
199 RGBA4
200 RGBA8UI
201 RGB9_E5
202 R16F
203 R32F
204 RG16F
205 RG32F
206 RGB16F
207 RGB32F
208 RGBA16F
209 RGBA32F
210 R11F_G11F_B10F
211
212 Table 1.1 Valid source texture internal formats for CopyTextureCHROMIUM and
213 source and destination formats for CopySubTextureCHROMIUM:
214
215 internal format
216 ---------------
217 RED
218 ALPHA
219 LUMINANCE
220 LUMINANCE_ALPHA
221 RGB
222 RGBA
223 RGB8
224 RGBA8
225 BGRA_EXT
226 BGRA8_EXT
227 RGB_YCBCR_420V_CHROMIUM
228 RGB_YCBCR_422_CHROMIUM.
229 180
230 Dependencies on ARB_texture_rg 181 Dependencies on ARB_texture_rg
231 182
232 If ARB_texture_rg is not supported: 183 If ARB_texture_rg is not supported:
233 * delete any reference to the R8 format. 184 * delete any reference to the R8 format.
234 185
235 Dependencies on CHROMIUM_ycbcr_422_image 186 Dependencies on CHROMIUM_ycbcr_422_image
236 187
237 If CHROMIUM_ycbcr_422_image is not supported: 188 If CHROMIUM_ycbcr_422_image is not supported:
238 * delete any reference to the RGB_YCBCR_422_CHROMIUM format. 189 * delete any reference to the RGB_YCBCR_422_CHROMIUM format.
239 190
240 Errors 191 Errors
241 192
242 None. 193 None.
243 194
244 New Tokens 195 New Tokens
245 196
246 None. 197 None.
247 198
248 New State 199 New State
249 200
250 None. 201 None.
251 202
252 Revision History 203 Revision History
253 204
254 8/1/2011 Documented the extension 205 8/1/2011 Documented the extension
255 7/4/2013 Add a new parameter dest_type to glCopyTextureCHROMIUM() 206 7/4/2013 Add a new parameter dest_type to glCopyTextureCHROMIUM()
256 16/7/2014 Add TEXTURE_RECTANGLE_ARB as valid source_id target 207 16/7/2014 Add GL_TEXTURE_RECTANGLE_ARB as valid source_id target
257 19/6/2015 Add arguments unpack_flip_y, unpack_premultiply_alpha, and 208 19/6/2015 Add arguments unpack_flip_y, unpack_premultiply_alpha, and
258 unpack_unmultiply_alpha to both commands. 209 unpack_unmultiply_alpha to both commands.
259 4/1/2016 Removed the argument target. 210 4/1/2016 Removed the argument target.
260 4/1/2016 Added TEXTURE_RECTANGLE_ARB as valid dest_id target. 211 4/1/2016 Added GL_TEXTURE_RECTANGLE_ARB as valid dest_id target.
261 19/12/2016 Supported more ES 3.0 formats. 212 19/12/2016 Supported more ES 3.0 formats.
262 18/1/2017 Supported source_level and dest_level. 213 18/1/2017 Supported source_level and dest_level.
263 19/1/2017 Added TEXTURE_CUBE_MAP as valid dest_id target. 214 19/1/2017 Added GL_TEXTURE_CUBE_MAP as valid dest_id target.
264 24/3/2017 Clean up naming and move formats into tables.
OLDNEW
« no previous file with comments | « DEPS ('k') | gpu/command_buffer/client/gles2_c_lib_autogen.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698