зеркало из https://github.com/AvaloniaUI/angle.git
264 строки
8.0 KiB
Plaintext
264 строки
8.0 KiB
Plaintext
Name
|
|
|
|
CHROMIUM_copy_texture
|
|
|
|
Name Strings
|
|
|
|
GL_CHROMIUM_copy_texture
|
|
|
|
Version
|
|
|
|
Last Modifed Date: March 24, 2017
|
|
|
|
Dependencies
|
|
|
|
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.
|
|
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
|
|
|
|
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
|
|
|
|
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 <internalFormat>.
|
|
|
|
When source texture doens't contain a superset of the component
|
|
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 <destType>.
|
|
|
|
If <flipY> is true, vertically flip texture image data.
|
|
|
|
If <unpackPremultiplyAlpha> and <unpackUnmultiplyAlpha> are true,
|
|
no alpha processing occurs. This is the equivalent of having neither flag
|
|
set.
|
|
|
|
When <sourceId> refers to a stream texture, the texture matrix will be
|
|
applied as part of the copy operation.
|
|
|
|
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 <sourceId> is not
|
|
one of formats in Table 1.1.
|
|
|
|
INVALID_VALUE is generated if <sourceId> or <destId> are not valid texture
|
|
objects.
|
|
|
|
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 <destId> have not
|
|
been bound as TEXTURE_2D, TEXTURE_CUBE_MAP, or
|
|
TEXTURE_RECTANGLE_ARB 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 <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 <sourceLevel> of the source texture is not
|
|
defined.
|
|
|
|
The command
|
|
|
|
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.
|
|
|
|
<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 <sourceId> texture or <destId>
|
|
texture is not defined.
|
|
|
|
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 <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> + <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
|
|
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
|
|
|
|
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 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 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 TEXTURE_CUBE_MAP as valid dest_id target.
|
|
24/3/2017 Clean up naming and move formats into tables.
|