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

Unified Diff: gpu/GLES2/extensions/CHROMIUM/CHROMIUM_copy_texture.txt

Issue 2776753002: Update the passthrough command decoder to use the new CHROMIUM_copy_texture. (Closed)
Patch Set: Re-roll ANGLE Created 3 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « DEPS ('k') | gpu/command_buffer/client/gles2_c_lib_autogen.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gpu/GLES2/extensions/CHROMIUM/CHROMIUM_copy_texture.txt
diff --git a/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_copy_texture.txt b/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_copy_texture.txt
index 0c85ec5e87826da09b566f1df2ed8f1dda8573eb..5e7fad8c9932d247ca36607ad9c67340d15227d5 100644
--- a/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_copy_texture.txt
+++ b/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_copy_texture.txt
@@ -8,7 +8,7 @@ Name Strings
Version
- Last Modifed Date: July 16, 2014
+ Last Modifed Date: March 24, 2017
Dependencies
@@ -31,122 +31,120 @@ Overview
New Procedures and Functions
+ void CopyTextureCHROMIUM(uint sourceId,
+ int sourceLevel,
+ enum destTarget,
+ uint destId,
+ int destLevel,
+ int internalFormat,
+ enum destType,
+ boolean unpackFlipY,
+ boolean unpackPremultiplyAlpha,
+ boolean unpackUnmultiplyAlpha)
+
+
+ void CopySubTextureCHROMIUM(uint sourceId,
+ int sourceLevel,
+ enum destTarget,
+ uint destId,
+ int destLevel,
+ int xoffset,
+ int yoffset,
+ int x,
+ int y,
+ sizei width,
+ sizei height,
+ boolean unpackFlipY,
+ boolean unpackPremultiplyAlpha,
+ boolean unpackUnmultiplyAlpha)
+
+Additions to the OpenGL ES 2.0 Specification
+
The command
- void glCopyTextureCHROMIUM (GLenum source_id,
- GLint source_level,
- GLenum dest_target,
- GLenum dest_id,
- GLint dest_level,
- GLint internal_format, GLenum dest_type,
- GLboolean unpack_flip_y,
- GLboolean unpack_premultiply_alpha,
- GLboolean unpack_unmultiply_alpha)
-
- Copies the contents of <source_id> texture to <dest_id> texture.
-
- <source_level> specifies the level of the source texture which is copied
- from.
- <dest_level> specifies the level of the destination texture which is copied
- to.
-
- <dest_target> specifies the target of destination texture. Must be
- GL_TEXTURE_2D,
- GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X,
- GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,
- GL_TEXTURE_CUBE_MAP_POSITIVE_Z, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z,
- GL_TEXTURE_RECTANGLE_ARB.
+ CopyTextureCHROMIUM
+
+ Copies the contents of <sourceLevel> level of <sourceId> texture to
+ <destLevel> level and <destTarget> target of <destId> texture.
+
+ <destTarget> must be TEXTURE_2D,
+ TEXTURE_CUBE_MAP_POSITIVE_X, TEXTURE_CUBE_MAP_NEGATIVE_X,
+ TEXTURE_CUBE_MAP_POSITIVE_Y, TEXTURE_CUBE_MAP_NEGATIVE_Y,
+ TEXTURE_CUBE_MAP_POSITIVE_Z, TEXTURE_CUBE_MAP_NEGATIVE_Z,
+ TEXTURE_RECTANGLE_ARB.
The internal format of the destination texture is converted to that
- specified by <internal_format>. Must be one of the following symbolic
- constants: GL_RGB, GL_RGBA, GL_RGB8, GL_RGBA8, GL_BGRA_EXT, GL_BGRA8_EXT,
- GL_SRGB_EXT, GL_SRGB_ALPHA_EXT, GL_R8, GL_R8UI, GL_RG8, GL_RG8UI, GL_SRGB8,
- GL_RGB565, GL_RGB8UI, GL_SRGB8_ALPHA8, GL_RGB5_A1, GL_RGBA4, GL_RGBA4,
- GL_RGBA8UI, GL_RGB9_E5, GL_R16F, GL_R32F, GL_RG16F, GL_RG32F, GL_RGB16F,
- GL_RGB32F, GL_RGBA16F, GL_RGBA32F, GL_R11F_G11F_B10F.
- The internal format of source texture must be one of the following
- symbolic constants: GL_RED, GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA,
- GL_RGB, GL_RGBA, GL_RGB8, GL_RGBA8, GL_BGRA_EXT, GL_BGRA8_EXT,
- GL_RGB_YCBCR_420V_CHROMIUM, GL_RGB_YCBCR_422_CHROMIUM.
+ specified by <internalFormat>.
+
When source texture doens't contain a superset of the component
- required by <internal_format>, fill the components by following rules.
-
- source format color components
- =====================================================
- GL_ALPHA (0, 0, 0, A)
- GL_RED (R, 0, 0, 1)
- GL_LUMINANCE (L, L, L, 1)
- GL_LUMINANCE_ALPHA (L, L, L, A)
- GL_RGB (R, G, B, 1)
- GL_RGB8 (R, G, B, 1)
- GL_RGBA (R, G, B, A)
- GL_RGBA8 (R, G, B, A)
- GL_BGRA_EXT (R, G, B, A)
- GL_BGRA8_EXT (R, G, B, A)
- GL_RGB_YCBCR_420V_CHROMIUM (R, G, B, 1)
- GL_RGB_YCBCR_422_CHROMIUM (R, G, B, 1)
+ required by <internalFormat>, fill the components by following rules.
+
+ source format color components
+ ----------------------------------------
+ ALPHA (0, 0, 0, A)
+ RED (R, 0, 0, 1)
+ LUMINANCE (L, L, L, 1)
+ LUMINANCE_ALPHA (L, L, L, A)
+ RGB (R, G, B, 1)
+ RGB8 (R, G, B, 1)
+ RGBA (R, G, B, A)
+ RGBA8 (R, G, B, A)
+ BGRA_EXT (R, G, B, A)
+ BGRA8_EXT (R, G, B, A)
+ RGB_YCBCR_420V_CHROMIUM (R, G, B, 1)
+ RGB_YCBCR_422_CHROMIUM (R, G, B, 1)
The format type of the destination texture is converted to that specified
- by <dest_type>.
+ by <destType>.
- If <flip_y> is true, vertically flip texture image data.
+ If <flipY> is true, vertically flip texture image data.
- If <unpack_premultiply_alpha> and <unpack_unmultiply_alpha> are true,
+ If <unpackPremultiplyAlpha> and <unpackUnmultiplyAlpha> are true,
no alpha processing occurs. This is the equivalent of having neither flag
set.
- When <source_id> refers to a stream texture, the texture matrix will be
+ When <sourceId> refers to a stream texture, the texture matrix will be
applied as part of the copy operation.
- INVALID_OPERATION is generated if <internal_format> is not one of the valid
- formats described above.
+ INVALID_OPERATION is generated if <internalFormat> is not one of the
+ formats in Table 1.0.
- INVALID_OPERATION is generated if the internal format of <source_id> is not
- one of formats from the table above.
+ INVALID_OPERATION is generated if the internal format of <sourceId> is not
+ one of formats in Table 1.1.
- INVALID_VALUE is generated if <source_id> or <dest_id> are not valid texture
+ INVALID_VALUE is generated if <sourceId> or <destId> are not valid texture
objects.
- INVALID_ENUM is generated if <dest_target> is not one of the valid targets
+ INVALID_ENUM is generated if <destTarget> is not one of the valid targets
described above.
INVALID_OPERATION is generated if the bound target of destination texture
does not match <target>.
- INVALID_VALUE is generated if textures corresponding to <dest_id> have not
- been bound as GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP, or
- GL_TEXTURE_RECTANGLE_ARB objects.
+ INVALID_VALUE is generated if textures corresponding to <destId> have not
+ been bound as TEXTURE_2D, TEXTURE_CUBE_MAP, or
+ TEXTURE_RECTANGLE_ARB objects.
- INVALID_VALUE is generated if textures corresponding to <source_id> have not
- been bound as GL_TEXTURE_2D, GL_TEXTURE_RECTANGLE_ARB or
- GL_TEXTURE_EXTERNAL_OES objects.
+ INVALID_VALUE is generated if textures corresponding to <sourceId> have not
+ been bound as TEXTURE_2D, TEXTURE_RECTANGLE_ARB or
+ TEXTURE_EXTERNAL_OES objects.
- INVALID_VALUE is generated if <source_level> is not 0 for ES 2.0, or if
- <source_level> or <dest_level> is less than 0 for ES 3.0.
+ INVALID_VALUE is generated if <sourceLevel> is not 0 for ES 2.0, or if
+ <sourceLevel> or <destLevel> is less than 0 for ES 3.0.
- INVALID_VALUE is generated if <source_level> of the source texture is not
+ INVALID_VALUE is generated if <sourceLevel> of the source texture is not
defined.
The command
- void glCopySubTextureCHROMIUM (GLenum source_id,
- GLint source_level,
- GLenum dest_target,
- GLenum dest_id,
- GLint dest_level,
- GLint xoffset, GLint yoffset,
- GLint x, GLint y,
- GLsizei width, GLsizei height,
- GLboolean unpack_flip_y,
- GLboolean unpack_premultiply_alpha,
- GLboolean unpack_unmultiply_alpha)
-
- Copies the sub contents of texture referred to by <source_id> to <dest_id>
- texture without redefining <dest_id> texture.
-
- See CopyTextureCHROMIUM for the interpretation of the <dest_target>,
- <source_level>, <dest_level>, <flip_y>, <premultiply_alpha>, and
- <unmultiply_alpha> arguments.
+ CopySubTextureCHROMIUM
+
+ Copies the sub contents of texture referred to by <sourceId> to <destId>
+ texture without redefining <destId> texture.
+
+ See CopyTextureCHROMIUM for the interpretation of the <destTarget>,
+ <sourceLevel>, <destLevel>, <flipY>, <premultiplyAlpha>, and
+ <unmultiplyAlpha> arguments.
<xoffset> and <yoffset> specify a texel offset in the x and y direction
respectively within the destination texture.
@@ -158,25 +156,76 @@ New Procedures and Functions
<height> specifies the width of the texture subimage.
- INVALID_VALUE is generated if either <source_id> texture or <dest_id>
+ INVALID_VALUE is generated if either <sourceId> texture or <destId>
texture is not defined.
- INVALID_OPERATION is generated if source internal_format and destination
- internal_format are not one of the valid formats described above.
+ INVALID_OPERATION is generated if the internal format of <sourceId> or
+ <destId> is not one of formats in Table 1.1.
INVALID_OPERATION is generated if the destination texture array has not
been defined.
- INVALID_VALUE is generated if <dest_id> texture is not bound as
- GL_TEXTURE_2D or GL_TEXTURE_RECTANGLE_ARB.
+ INVALID_VALUE is generated if <destId> texture is not bound as
+ TEXTURE_2D or TEXTURE_RECTANGLE_ARB.
INVALID_VALUE is generated if level 0 of the source texture or
the destination texture is not defined.
- INVALID_VALUE is generated if <xoffset> < 0 , or <yoffset> < 0.
-
- INVALID_VALUE is generated if (<xoffset> + <width>) > dest_width,
- or (<yoffset> + <height>) > dest_height.
+ INVALID_VALUE is generated if (<xoffset> + <width>) > destWidth,
+ or (<yoffset> + <height>) > destHeight.
+
+ Table 1.0 Valid internal formats for CopyTextureCHROMIUM:
+
+ <internalFormat>
+ ---------------
+ RGB
+ RGBA
+ RGB8
+ RGBA8
+ BGRA_EXT
+ BGRA8_EXT,
+ SRGB_EXT
+ SRGB_ALPHA_EXT
+ R8
+ R8UI
+ RG8
+ RG8UI
+ SRGB8
+ RGB565
+ RGB8UI
+ SRGB8_ALPHA8
+ RGB5_A1
+ RGBA4
+ RGBA4
+ RGBA8UI
+ RGB9_E5
+ R16F
+ R32F
+ RG16F
+ RG32F
+ RGB16F
+ RGB32F
+ RGBA16F
+ RGBA32F
+ R11F_G11F_B10F
+
+ Table 1.1 Valid source texture internal formats for CopyTextureCHROMIUM and
+ source and destination formats for CopySubTextureCHROMIUM:
+
+ internal format
+ ---------------
+ RED
+ ALPHA
+ LUMINANCE
+ LUMINANCE_ALPHA
+ RGB
+ RGBA
+ RGB8
+ RGBA8
+ BGRA_EXT
+ BGRA8_EXT
+ RGB_YCBCR_420V_CHROMIUM
+ RGB_YCBCR_422_CHROMIUM.
Dependencies on ARB_texture_rg
@@ -204,11 +253,12 @@ Revision History
8/1/2011 Documented the extension
7/4/2013 Add a new parameter dest_type to glCopyTextureCHROMIUM()
- 16/7/2014 Add GL_TEXTURE_RECTANGLE_ARB as valid source_id target
+ 16/7/2014 Add TEXTURE_RECTANGLE_ARB as valid source_id target
19/6/2015 Add arguments unpack_flip_y, unpack_premultiply_alpha, and
unpack_unmultiply_alpha to both commands.
4/1/2016 Removed the argument target.
- 4/1/2016 Added GL_TEXTURE_RECTANGLE_ARB as valid dest_id target.
+ 4/1/2016 Added TEXTURE_RECTANGLE_ARB as valid dest_id target.
19/12/2016 Supported more ES 3.0 formats.
18/1/2017 Supported source_level and dest_level.
- 19/1/2017 Added GL_TEXTURE_CUBE_MAP as valid dest_id target.
+ 19/1/2017 Added TEXTURE_CUBE_MAP as valid dest_id target.
+ 24/3/2017 Clean up naming and move formats into tables.
« 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