зеркало из https://github.com/AvaloniaUI/angle.git
176 строки
6.3 KiB
Plaintext
176 строки
6.3 KiB
Plaintext
Name
|
|
|
|
CHROMIUM_copy_texture
|
|
|
|
Name Strings
|
|
|
|
GL_CHROMIUM_copy_texture
|
|
|
|
Version
|
|
|
|
Last Modifed Date: July 16, 2014
|
|
|
|
Dependencies
|
|
|
|
OpenGL ES 2.0 is required.
|
|
|
|
EXT_texture_format_BGRA8888 affects the definition of this extension.
|
|
ARB_texture_rg affects the definition of this extension.
|
|
CHROMIUM_ycbcr_422_image affects the definition of this extension.
|
|
|
|
Overview
|
|
|
|
This extension expands on the functionality provided by the
|
|
glCopyTexImage2D command. A new function is exported,
|
|
glCopyTextureCHROMIUM, that performs the same copy operation as
|
|
glCopyTexImage2D.
|
|
|
|
The extension also supports copying BGRA textures and copying
|
|
EXTERNAL_OES texture to BGRA texture, which is not explicitly
|
|
granted by EXT_texture_format_BGRA8888.
|
|
|
|
New Procedures and Functions
|
|
|
|
The command
|
|
|
|
void glCopyTextureCHROMIUM (GLuint source_id,
|
|
GLuint dest_id,
|
|
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.
|
|
|
|
Texture level 0 is copied from the source image to level 0 of the
|
|
destination texture.
|
|
|
|
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
|
|
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_LUMINANCE (L, L, L, 1)
|
|
GL_LUMINANCE_ALPHA (L, L, L, A)
|
|
GL_RGB (R, G, B, 1)
|
|
GL_RGBA (R, G, B, A)
|
|
GL_BGRA_EXT (R, G, B, A)
|
|
GL_RGB_YCBCR_422_CHROMIUM (R, G, B, 1)
|
|
|
|
The format type of the destination texture is converted to that specified
|
|
by <dest_type>.
|
|
|
|
If <flip_y> is true, vertically flip texture image data.
|
|
|
|
If <unpack_premultiply_alpha> and <unpack_unmultiply_alpha> 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
|
|
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 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_VALUE is generated if textures corresponding to <dest_id> have not
|
|
been bound as GL_TEXTURE_2D 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.
|
|
|
|
The command
|
|
|
|
void glCopySubTextureCHROMIUM (GLuint source_id,
|
|
GLuint dest_id,
|
|
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 <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.
|
|
|
|
<x> and <y> specify specify a texel offset in the x and y direction
|
|
respectively within the source texture.
|
|
|
|
<width> specifies the width of the texture subimage.
|
|
|
|
<height> specifies the width of the texture subimage.
|
|
|
|
INVALID_VALUE is generated if either <source_id> texture or <dest_id>
|
|
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 destination texture 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 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.
|
|
|
|
Dependencies on ARB_texture_rg
|
|
|
|
If ARB_texture_rg is not supported:
|
|
* delete any reference to the R8 format.
|
|
|
|
Dependencies on CHROMIUM_ycbcr_422_image
|
|
|
|
If CHROMIUM_ycbcr_422_image is not supported:
|
|
* delete any reference to the RGB_YCBCR_422_CHROMIUM format.
|
|
|
|
Errors
|
|
|
|
None.
|
|
|
|
New Tokens
|
|
|
|
None.
|
|
|
|
New State
|
|
|
|
None.
|
|
|
|
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
|
|
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
|