WebGLRenderingContext.compressedTexImage2D()
and
WebGL2RenderingContext.compressedTexImage3D()
methods of the
WebGL API
specify a two- or three-dimensional texture image in a compressed format.
Compressed image formats must be enabled by WebGL extensions before using these methods.
// WebGL 1:
void gl.compressedTexImage2D(target, level, internalformat, width, height, border, ArrayBufferView? pixels);
// Additionally available in WebGL 2:
// read from buffer bound to gl.PIXEL_UNPACK_BUFFER
void gl.compressedTexImage2D(target, level, internalformat, width, height, border, GLsizei imageSize, GLintptr offset);
void gl.compressedTexImage2D(target, level, internalformat, width, height, border,
ArrayBufferView srcData, optional srcOffset, optional srcLengthOverride);
// read from buffer bound to gl.PIXEL_UNPACK_BUFFER
void gl.compressedTexImage3D(target, level, internalformat, width, height, depth, border, GLsizei imageSize, GLintptr offset);
void gl.compressedTexImage3D(target, level, internalformat, width, height, depth, border,
ArrayBufferView srcData, optional srcOffset, optional srcLengthOverride);
target
GLenum
specifying the binding point (target) of the active texture. Possible values for
compressedTexImage2D
:
gl.TEXTURE_2D
: A two-dimensional texture.
gl.TEXTURE_CUBE_MAP_POSITIVE_X
: Positive X face for a cube-mapped texture.
gl.TEXTURE_CUBE_MAP_NEGATIVE_X
: Negative X face for a cube-mapped texture.
gl.TEXTURE_CUBE_MAP_POSITIVE_Y
: Positive Y face for a cube-mapped texture.
gl.TEXTURE_CUBE_MAP_NEGATIVE_Y
: Negative Y face for a cube-mapped texture.
gl.TEXTURE_CUBE_MAP_POSITIVE_Z
: Positive Z face for a cube-mapped texture.
gl.TEXTURE_CUBE_MAP_NEGATIVE_Z
: Negative Z face for a cube-mapped texture.
compressedTexImage3D
:
gl.TEXTURE_2D_ARRAY
gl.TEXTURE_3D
level
GLint
specifying the level of detail. Level 0 is the base image level and level
n
是
n
th mipmap reduction level.
internalformat
GLenum
specifying the compressed image format. Compressed image formats must be enabled by
WebGL extensions
before using this method. All values are possible for
compressedTexImage2D
。见
compressed texture formats
for which are valid for
compressedTexImage3D
. Possible values:
WEBGL_compressed_texture_s3tc
extension:
ext.COMPRESSED_RGB_S3TC_DXT1_EXT
ext.COMPRESSED_RGBA_S3TC_DXT1_EXT
ext.COMPRESSED_RGBA_S3TC_DXT3_EXT
ext.COMPRESSED_RGBA_S3TC_DXT5_EXT
WEBGL_compressed_texture_s3tc_srgb
extension:
ext.COMPRESSED_SRGB_S3TC_DXT1_EXT
ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT
ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT
ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT
WEBGL_compressed_texture_etc
extension:
ext.COMPRESSED_R11_EAC
ext.COMPRESSED_SIGNED_R11_EAC
ext.COMPRESSED_RG11_EAC
ext.COMPRESSED_SIGNED_RG11_EAC
ext.COMPRESSED_RGB8_ETC2
ext.COMPRESSED_RGBA8_ETC2_EAC
ext.COMPRESSED_SRGB8_ETC2
ext.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
ext.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
ext.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
WEBGL_compressed_texture_pvrtc
extension:
ext.COMPRESSED_RGB_PVRTC_4BPPV1_IMG
ext.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG
ext.COMPRESSED_RGB_PVRTC_2BPPV1_IMG
ext.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG
WEBGL_compressed_texture_etc1
extension:
ext.COMPRESSED_RGB_ETC1_WEBGL
WEBGL_compressed_texture_atc
extension:
ext.COMPRESSED_RGB_ATC_WEBGL
ext.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL
ext.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL
WEBGL_compressed_texture_astc
extension:
ext.COMPRESSED_RGBA_ASTC_4x4_KHR
ext.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR
ext.COMPRESSED_RGBA_ASTC_5x4_KHR
ext.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR
ext.COMPRESSED_RGBA_ASTC_5x5_KHR
ext.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR
ext.COMPRESSED_RGBA_ASTC_6x5_KHR
ext.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR
ext.COMPRESSED_RGBA_ASTC_6x6_KHR
ext.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR
ext.COMPRESSED_RGBA_ASTC_8x5_KHR
ext.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR
ext.COMPRESSED_RGBA_ASTC_8x6_KHR
ext.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR
ext.COMPRESSED_RGBA_ASTC_8x8_KHR
ext.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR
ext.COMPRESSED_RGBA_ASTC_10x5_KHR
ext.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR
ext.COMPRESSED_RGBA_ASTC_10x6_KHR
ext.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR
ext.COMPRESSED_RGBA_ASTC_10x10_KHR
ext.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR
ext.COMPRESSED_RGBA_ASTC_12x10_KHR
ext.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR
ext.COMPRESSED_RGBA_ASTC_12x12_KHR
ext.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR
EXT_texture_compression_bptc
extension:
ext.COMPRESSED_RGBA_BPTC_UNORM_EXT
ext.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT
ext.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT
ext.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT
EXT_texture_compression_rgtc
extension:
ext.COMPRESSED_RED_RGTC1_EXT
ext.COMPRESSED_SIGNED_RED_RGTC1_EXT
ext.COMPRESSED_RED_GREEN_RGTC2_EXT
ext.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT
width
GLsizei
specifying the width of the texture.
height
GLsizei
specifying the height of the texture.
depth
GLsizei
specifying the depth of the texture/the number of textures in a
TEXTURE_2D_ARRAY
.
border
GLint
specifying the width of the border. Must be 0.
imageSize
GLsizei
specifying the number of bytes to read from the buffer bound to
gl.PIXEL_UNPACK_BUFFER
.
offset
GLintptr
specifying the offset in bytes from which to read from the buffer bound to
gl.PIXEL_UNPACK_BUFFER
.
pixels
ArrayBufferView
that be used as a data store for the compressed image data in memory.
None.
var ext = (
gl.getExtension('WEBGL_compressed_texture_s3tc') ||
gl.getExtension('MOZ_WEBGL_compressed_texture_s3tc') ||
gl.getExtension('WEBKIT_WEBGL_compressed_texture_s3tc')
);
var texture = gl.createTexture();
gl.bindTexture(gl.TEXTURE_2D, texture);
gl.compressedTexImage2D(gl.TEXTURE_2D, 0, ext.COMPRESSED_RGBA_S3TC_DXT5_EXT, 512, 512, 0, textureData);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
| 规范 | 状态 | 注释 |
|---|---|---|
|
WebGL 1.0
The definition of 'compressedTexImage2D' in that specification. |
推荐 | Initial definition for WebGL. |
|
OpenGL ES 2.0
The definition of 'glCompressedTexImage2D' in that specification. |
标准 | Man page of the (similar) OpenGL ES 2.0 API. |
|
OpenGL ES 3.0
The definition of 'glCompressedTexImage2D' in that specification. |
标准 | Man page of the (similar) OpenGL ES 3.0 API. |
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
| 桌面 | 移动 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
compressedTexImage2D
|
Chrome 9 | Edge 12 | Firefox 4 | IE 11 | Opera 12 | Safari 5.1 | WebView Android Yes | Chrome Android 25 | Firefox Android Yes | Opera Android 12 | Safari iOS 8 | Samsung Internet Android 1.5 |
SharedArrayBuffer
as a parameter
|
Chrome 60 | Edge ≤79 | Firefox 79 | IE ? | Opera 47 | Safari ? | WebView Android 60 | Chrome Android 60 | Firefox Android ? | Opera Android 44 | Safari iOS ? | Samsung Internet Android 8.0 |
WebGL2
|
Chrome 56 | Edge 79 | Firefox 51 | IE 不支持 No | Opera 43 | Safari 不支持 No | WebView Android 58 | Chrome Android 58 | Firefox Android 51 | Opera Android 43 | Safari iOS 不支持 No | Samsung Internet Android 7.0 |
完整支持
不支持
兼容性未知
| 桌面 | 移动 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
compressedTexImage3D
|
Chrome 56 | Edge 79 | Firefox 51 | IE 不支持 No | Opera 43 | Safari 不支持 No | WebView Android 58 | Chrome Android 58 | Firefox Android 51 | Opera Android 43 | Safari iOS 不支持 No | Samsung Internet Android 7.0 |
SharedArrayBuffer
as a parameter
|
Chrome 60 | Edge 79 | Firefox 79 | IE 不支持 No | Opera 47 | Safari 不支持 No | WebView Android 60 | Chrome Android 60 | Firefox Android ? | Opera Android 44 | Safari iOS 不支持 No | Samsung Internet Android 8.0 |
完整支持
不支持
兼容性未知
WebGLRenderingContext.compressedTexSubImage2D()
WEBGL_compressed_texture_s3tc
WEBGL_compressed_texture_s3tc_srgb
WEBGL_compressed_texture_etc
WEBGL_compressed_texture_pvrtc
WEBGL_compressed_texture_etc1
WEBGL_compressed_texture_atc
WEBGL_compressed_texture_astc
EXT_texture_compression_bptc
EXT_texture_compression_rgtc
WebGLRenderingContext
activeTexture()
attachShader()
bindAttribLocation()
bindBuffer()
bindFramebuffer()
bindRenderbuffer()
bindTexture()
blendColor()
blendEquation()
blendEquationSeparate()
blendFunc()
blendFuncSeparate()
bufferData()
bufferSubData()
checkFramebufferStatus()
clear()
clearColor()
clearDepth()
clearStencil()
colorMask()
commit()
compileShader()
compressedTexImage[23]D()
compressedTexSubImage2D()
copyTexImage2D()
copyTexSubImage2D()
createBuffer()
createFramebuffer()
createProgram()
createRenderbuffer()
createShader()
createTexture()
cullFace()
deleteBuffer()
deleteFramebuffer()
deleteProgram()
deleteRenderbuffer()
deleteShader()
deleteTexture()
depthFunc()
depthMask()
depthRange()
detachShader()
disable()
disableVertexAttribArray()
drawArrays()
drawElements()
enable()
enableVertexAttribArray()
finish()
flush()
framebufferRenderbuffer()
framebufferTexture2D()
frontFace()
generateMipmap()
getActiveAttrib()
getActiveUniform()
getAttachedShaders()
getAttribLocation()
getBufferParameter()
getContextAttributes()
getError()
getExtension()
getFramebufferAttachmentParameter()
getParameter()
getProgramInfoLog()
getProgramParameter()
getRenderbufferParameter()
getShaderInfoLog()
getShaderParameter()
getShaderPrecisionFormat()
getShaderSource()
getSupportedExtensions()
getTexParameter()
getUniform()
getUniformLocation()
getVertexAttrib()
getVertexAttribOffset()
hint()
isBuffer()
isContextLost()
isEnabled()
isFramebuffer()
isProgram()
isRenderbuffer()
isShader()
isTexture()
lineWidth()
linkProgram()
pixelStorei()
polygonOffset()
readPixels()
renderbufferStorage()
sampleCoverage()
scissor()
shaderSource()
stencilFunc()
stencilFuncSeparate()
stencilMask()
stencilMaskSeparate()
stencilOp()
stencilOpSeparate()
texImage2D()
texParameter[fi]()
texSubImage2D()
uniform[1234][fi][v]()
uniformMatrix[234]fv()
useProgram()
validateProgram()
vertexAttrib[1234]f[v]()
vertexAttribPointer()
viewport()
ANGLE_instanced_arrays
EXT_blend_minmax
EXT_color_buffer_half_float
EXT_disjoint_timer_query
EXT_frag_depth
EXT_sRGB
EXT_shader_texture_lod
EXT_texture_filter_anisotropic
OES_element_index_uint
OES_standard_derivatives
OES_texture_float
OES_texture_float_linear
OES_texture_half_float
OES_texture_half_float_linear
OES_vertex_array_object
WEBGL_color_buffer_float
WEBGL_compressed_texture_atc
WEBGL_compressed_texture_etc1
WEBGL_compressed_texture_pvrtc
WEBGL_compressed_texture_s3tc
WEBGL_compressed_texture_s3tc_srgb
WEBGL_debug_renderer_info
WEBGL_debug_shaders
WEBGL_depth_texture
WEBGL_draw_buffers
WEBGL_lose_context
WebGL2RenderingContext
WebGLActiveInfo
WebGLBuffer
WebGLContextEvent
WebGLFramebuffer
WebGLObject
WebGLProgram
WebGLQuery
WebGLRenderbuffer
WebGLSampler
WebGLShader
WebGLShaderPrecisionFormat
WebGLSync
WebGLTexture
WebGLTransformFeedback
WebGLUniformLocation
WebGLVertexArrayObject