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

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

Issue 2639973002: Add target argument to Copy{Sub}TextureCHROMIUM entry point (Closed)
Patch Set: use dest_target instead of target Created 3 years, 11 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 | « content/renderer/media/android/webmediaplayer_android.cc ('k') | gpu/GLES2/gl2extchromium.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 3accfa87c8fbefd4ffcc4bf3e121adcc9fdf6e0d..0c85ec5e87826da09b566f1df2ed8f1dda8573eb 100644
--- a/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_copy_texture.txt
+++ b/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_copy_texture.txt
@@ -12,7 +12,7 @@ Version
Dependencies
- OpenGL ES 2.0 is required.
+ OpenGL ES 2.0 or OpenGL ES 3.0 is required.
EXT_texture_format_BGRA8888 affects the definition of this extension.
ARB_texture_rg affects the definition of this extension.
@@ -34,7 +34,10 @@ New Procedures and Functions
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,
@@ -42,27 +45,45 @@ New Procedures and Functions
Copies the contents of <source_id> texture to <dest_id> texture.
- Texture level 0 is copied from the source image to level 0 of the
- destination 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.
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
- The internal format of <source_id> texture must be one of the following
- symbolic constants: GL_R8, GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA,
- GL_RGB, GL_RGBA, GL_BGRA_EXT, GL_RGB_YCBCR_422_CHROMIUM
- When <source_id> texture doens't contain a superset of the component
+ 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.
+ 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_R8 (R, 0, 0, 1)
+ 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)
The format type of the destination texture is converted to that specified
@@ -77,28 +98,42 @@ New Procedures and Functions
When <source_id> 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 <internal_format> is not one of the valid
+ formats described above.
- 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 <source_id> is not
+ one of formats from the table above.
INVALID_VALUE is generated if <source_id> or <dest_id> are not valid texture
objects.
+ INVALID_ENUM is generated if <dest_target> 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 or GL_TEXTURE_RECTANGLE_ARB objects.
+ been bound as GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP, or
+ GL_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 level 0 of the source texture is not defined.
+ 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 <source_level> 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,
Zhenyao Mo 2017/01/19 18:58:31 We should also consider support uploading to a 3D
GLint x, GLint y,
GLsizei width, GLsizei height,
@@ -109,8 +144,9 @@ New Procedures and Functions
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 <flip_y>,
- <premultiply_alpha>, and <unmultiply_alpha> arguments.
+ See CopyTextureCHROMIUM for the interpretation of the <dest_target>,
+ <source_level>, <dest_level>, <flip_y>, <premultiply_alpha>, and
+ <unmultiply_alpha> arguments.
<xoffset> and <yoffset> specify a texel offset in the x and y direction
respectively within the destination texture.
@@ -128,8 +164,8 @@ New Procedures and Functions
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 destination texture has not been
- defined.
+ 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.
@@ -172,4 +208,7 @@ Revision History
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 GL_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.
« no previous file with comments | « content/renderer/media/android/webmediaplayer_android.cc ('k') | gpu/GLES2/gl2extchromium.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698