зеркало из https://github.com/AvaloniaUI/angle.git
225 строки
5.7 KiB
Plaintext
225 строки
5.7 KiB
Plaintext
|
Name
|
||
|
|
||
|
ANGLE_copy_texture_3d
|
||
|
|
||
|
Name Strings
|
||
|
|
||
|
GL_ANGLE_copy_texture_3d
|
||
|
|
||
|
Contributors
|
||
|
|
||
|
Brandon Jones, Intel
|
||
|
|
||
|
Contacts
|
||
|
|
||
|
Brandon Jones, Intel (brandon1.jones 'at' intel 'dot' com)
|
||
|
|
||
|
Status
|
||
|
|
||
|
Implemented.
|
||
|
|
||
|
Version
|
||
|
|
||
|
Version 1, 2018-8-8
|
||
|
|
||
|
Dependencies
|
||
|
|
||
|
OpenGL ES 3.0 required.
|
||
|
|
||
|
Overview
|
||
|
|
||
|
This extension adds 3D texture support to the functionality
|
||
|
provided by the CHROMIUM_copy_texture extension. Two new
|
||
|
functions are exported, glCopyTexture3DANGLE and
|
||
|
glCopySubTexture3DANGLE that perform the same copy operations as
|
||
|
glCopyTextureCHROMIUM and glCopySubTextureCHROMIUM, respectively,
|
||
|
on GL_TEXTURE_3D and GL_TEXTURE_2D_ARRAY bound textures.
|
||
|
|
||
|
New Procedures and Functions
|
||
|
|
||
|
void CopyTexture3DANGLE(uint sourceId,
|
||
|
int sourceLevel,
|
||
|
enum destTarget,
|
||
|
uint destId,
|
||
|
int destLevel,
|
||
|
int internalFormat,
|
||
|
enum destType,
|
||
|
boolean unpackFlipY,
|
||
|
boolean unpackPremultiplyAlpha,
|
||
|
boolean unpackUnmultiplyAlpha)
|
||
|
|
||
|
void CopySubTexture3DANGLE(uint sourceId,
|
||
|
int sourceLevel,
|
||
|
enum destTarget,
|
||
|
uint destId,
|
||
|
int destLevel,
|
||
|
int xoffset,
|
||
|
int yoffset,
|
||
|
int zoffset,
|
||
|
int x,
|
||
|
int y,
|
||
|
int z,
|
||
|
sizei width,
|
||
|
sizei height,
|
||
|
sizei depth,
|
||
|
boolean unpackFlipY,
|
||
|
boolean unpackPremultiplyAlpha,
|
||
|
boolean unpackUnmultiplyAlpha)
|
||
|
|
||
|
Additions to the OpenGL ES 3.0 Specification
|
||
|
|
||
|
The command
|
||
|
|
||
|
CopyTexture3DANGLE
|
||
|
|
||
|
All CopyTexture3DANGLE behavior is the same as
|
||
|
CopyTextureCHROMIUM unless otherwise defined below.
|
||
|
|
||
|
When source texture doesn't contain a superset of the component
|
||
|
required by <internalFormat>, fill the components by the
|
||
|
following rules.
|
||
|
|
||
|
source format color components
|
||
|
----------------------------------------
|
||
|
RED (R, 0, 0, 1)
|
||
|
RED_INTEGER (R, 0, 0, 1)
|
||
|
RG (R, G, 0, 1)
|
||
|
RG_INTEGER (R, G, 0, 1)
|
||
|
RGB (R, G, B, 1)
|
||
|
RGB_INTEGER (R, G, B, 1)
|
||
|
RGBA (R, G, B, A)
|
||
|
RGBA_INTEGER (R, G, B, A)
|
||
|
LUMINANCE_ALPHA (L, L, L, A)
|
||
|
LUMINANCE (L, L, L, 1)
|
||
|
ALPHA (0, 0, 0, A)
|
||
|
|
||
|
INVALID_OPERATION is generated if the format of <sourceId> is not
|
||
|
one of formats in Table 1.1.
|
||
|
|
||
|
INVALID_ENUM is generated if <destTarget> is not TEXTURE_3D or
|
||
|
TEXTURE_2D_ARRAY.
|
||
|
|
||
|
INVALID_VALUE is generated if the texture corresponding to
|
||
|
<sourceId> has not been bound as <destTarget>.
|
||
|
|
||
|
INVALID_OPERATION is generated if <internalFormat> is not one of
|
||
|
the sized internal formats in Table 1.0.
|
||
|
|
||
|
The command
|
||
|
|
||
|
CopySubTexture3DANGLE
|
||
|
|
||
|
All CopySubTexture3DANGLE behavior is the same as
|
||
|
CopySubTextureCHROMIUM unless otherwise defined below.
|
||
|
|
||
|
<zoffset> specifies a texel offset in the z direction
|
||
|
respectively within the destination texture.
|
||
|
|
||
|
<z> specifies a texel offset in the z direction respectively
|
||
|
within the source texture.
|
||
|
|
||
|
<depth> specifies the depth of the texture subimage.
|
||
|
|
||
|
INVALID_ENUM is generated if <destTarget> is not TEXTURE_3D or
|
||
|
TEXTURE_2D_ARRAY.
|
||
|
|
||
|
INVALID_VALUE is generated if the texture corresponding to
|
||
|
<sourceId> and <destId> have not been bound as <destTarget>.
|
||
|
|
||
|
INVALID_VALUE is generated if either <sourceId> texture or
|
||
|
<destId> texture is not defined.
|
||
|
|
||
|
INVALID_OPERATION is generated if the format of <sourceId> or
|
||
|
<destId> is not one of formats in Table 1.1.
|
||
|
|
||
|
INVALID_VALUE is generated if zoffset is less than 0.
|
||
|
|
||
|
INVALID_VALUE is generated if z is less than 0.
|
||
|
|
||
|
INVALID_VALUE is generated if depth is less than 0.
|
||
|
|
||
|
INVALID_VALUE is generated if (<z> + <depth>) > srcDepth.
|
||
|
|
||
|
INVALID_VALUE is generated if (<zoffset> + <depth>) > destDepth.
|
||
|
|
||
|
Table 1.0 internal formats for CopyTexture3DANGLE:
|
||
|
|
||
|
<internalFormat>
|
||
|
---------------
|
||
|
RGB
|
||
|
RGBA
|
||
|
LUMINANCE
|
||
|
LUMINANCE_ALPHA
|
||
|
ALPHA
|
||
|
R8
|
||
|
R8_SNORM
|
||
|
R16F
|
||
|
R32F
|
||
|
R8UI
|
||
|
R8I
|
||
|
R16UI
|
||
|
R16I
|
||
|
R32UI
|
||
|
R32I
|
||
|
RG8
|
||
|
RG8_SNORM
|
||
|
RG16F
|
||
|
RG32F
|
||
|
RG8UI
|
||
|
RG8I
|
||
|
RG16UI
|
||
|
RG16I
|
||
|
RG32UI
|
||
|
RG32I
|
||
|
RGB8
|
||
|
SRGB8
|
||
|
RGB565
|
||
|
RGB8_SNORM
|
||
|
R11F_G11F_B10F
|
||
|
RGB9_E5
|
||
|
RGB16F
|
||
|
RGB32F
|
||
|
RGB8UI
|
||
|
RGB8I
|
||
|
RGB16UI
|
||
|
RGB16I
|
||
|
RGB32UI
|
||
|
RGB32I
|
||
|
RGBA8
|
||
|
SRGB8_ALPHA8
|
||
|
RGBA8_SNORM
|
||
|
RGB5_A1
|
||
|
RGBA4
|
||
|
RGB10_A2
|
||
|
RGBA16F
|
||
|
RGBA32F
|
||
|
RGBA8UI
|
||
|
RGBA8I
|
||
|
RGB10_A2UI
|
||
|
RGBA16UI
|
||
|
RGBA16I
|
||
|
RGBA32I
|
||
|
RGBA32UI
|
||
|
|
||
|
Table 1.1 Valid source texture formats for
|
||
|
CopyTexture3DANGLE and source and destination formats for
|
||
|
CopySubTexture3DANGLE:
|
||
|
|
||
|
Format
|
||
|
---------------
|
||
|
RED
|
||
|
RED_INTEGER
|
||
|
RG
|
||
|
RG_INTEGER
|
||
|
RGB
|
||
|
RGB_INTEGER
|
||
|
RGBA
|
||
|
RGBA_INTEGER
|
||
|
LUMINANCE_ALPHA
|
||
|
LUMINANCE
|
||
|
ALPHA
|
||
|
|
||
|
Revision History
|
||
|
|
||
|
Version 1, 2018-8-8 (Brandon Jones)
|
||
|
- Initial implementation.
|