WebGLRenderingContext: Methode compressedTexImage2D()
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. It’s been available across browsers since Juli 2015.
* Some parts of this feature may have varying levels of support.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die compressedTexImage2D() Methode des WebGLRenderingContext-Interfaces der WebGL API legt ein zweidimensionales Texturbild in einem komprimierten Format fest.
Komprimierte Bildformate sind nur über den WebGL2RenderingContext oder einige WebGL-Erweiterungen verfügbar.
Syntax
// WebGL 1:
compressedTexImage2D(target, level, internalformat, width, height, border, srcData)
// Additionally available in WebGL 2:
compressedTexImage2D(target, level, internalformat, width, height, border, srcData, srcOffset)
compressedTexImage2D(target, level, internalformat, width, height, border, srcData, srcOffset, srcLengthOverride)
compressedTexImage2D(target, level, internalformat, width, height, border, imageSize, offset)
Parameter
target-
Ein
GLenum, der den Bindungspunkt (Ziel) der aktiven komprimierten Textur angibt. Mögliche Werte:gl.TEXTURE_2D: Eine zweidimensionale Textur.gl.TEXTURE_CUBE_MAP_POSITIVE_X: Positive X-Fläche für eine würfelgemappte Textur.gl.TEXTURE_CUBE_MAP_NEGATIVE_X: Negative X-Fläche für eine würfelgemappte Textur.gl.TEXTURE_CUBE_MAP_POSITIVE_Y: Positive Y-Fläche für eine würfelgemappte Textur.gl.TEXTURE_CUBE_MAP_NEGATIVE_Y: Negative Y-Fläche für eine würfelgemappte Textur.gl.TEXTURE_CUBE_MAP_POSITIVE_Z: Positive Z-Fläche für eine würfelgemappte Textur.gl.TEXTURE_CUBE_MAP_NEGATIVE_Z: Negative Z-Fläche für eine würfelgemappte Textur.
level-
Ein
GLint, der die Detailstufe angibt. Stufe 0 ist die Basisbildstufe und Stufe n ist die n-te Mipmap-Reduktionsstufe. internalformat-
Ein
GLenum, der das komprimierte Bildformat angibt. Komprimierte Bildformate sind nur über denWebGL2RenderingContextoder einige WebGL-Erweiterungen verfügbar. Mögliche Werte:-
Bei Verwendung von
WebGL2RenderingContext:gl.GL_COMPRESSED_R11_EACgl.GL_COMPRESSED_SIGNED_R11_EACgl.GL_COMPRESSED_RG11_EACgl.GL_COMPRESSED_SIGNED_RG11_EACgl.GL_COMPRESSED_RGB8_ETC2gl.GL_COMPRESSED_SRGB8_ETC2gl.GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2gl.GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2gl.GL_COMPRESSED_RGBA8_ETC2_EACgl.GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
-
Bei Verwendung der
WEBGL_compressed_texture_s3tcErweiterung:ext.COMPRESSED_RGB_S3TC_DXT1_EXText.COMPRESSED_RGBA_S3TC_DXT1_EXText.COMPRESSED_RGBA_S3TC_DXT3_EXText.COMPRESSED_RGBA_S3TC_DXT5_EXT
-
Bei Verwendung der
WEBGL_compressed_texture_s3tc_srgbErweiterung:ext.COMPRESSED_SRGB_S3TC_DXT1_EXText.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXText.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXText.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT
-
Bei Verwendung der
WEBGL_compressed_texture_etcErweiterung:ext.COMPRESSED_R11_EACext.COMPRESSED_SIGNED_R11_EACext.COMPRESSED_RG11_EACext.COMPRESSED_SIGNED_RG11_EACext.COMPRESSED_RGB8_ETC2ext.COMPRESSED_RGBA8_ETC2_EACext.COMPRESSED_SRGB8_ETC2ext.COMPRESSED_SRGB8_ALPHA8_ETC2_EACext.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2ext.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
-
Bei Verwendung der
WEBGL_compressed_texture_pvrtcErweiterung:ext.COMPRESSED_RGB_PVRTC_4BPPV1_IMGext.COMPRESSED_RGBA_PVRTC_4BPPV1_IMGext.COMPRESSED_RGB_PVRTC_2BPPV1_IMGext.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG
-
Bei Verwendung der
WEBGL_compressed_texture_etc1Erweiterung:ext.COMPRESSED_RGB_ETC1_WEBGL
-
Bei Verwendung der
WEBGL_compressed_texture_astcErweiterung:ext.COMPRESSED_RGBA_ASTC_4x4_KHR,ext.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHRext.COMPRESSED_RGBA_ASTC_5x4_KHR,ext.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHRext.COMPRESSED_RGBA_ASTC_5x5_KHR,ext.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHRext.COMPRESSED_RGBA_ASTC_6x5_KHR,ext.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHRext.COMPRESSED_RGBA_ASTC_6x6_KHR,ext.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHRext.COMPRESSED_RGBA_ASTC_8x5_KHR,ext.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHRext.COMPRESSED_RGBA_ASTC_8x6_KHR,ext.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHRext.COMPRESSED_RGBA_ASTC_8x8_KHR,ext.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHRext.COMPRESSED_RGBA_ASTC_10x5_KHR,ext.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHRext.COMPRESSED_RGBA_ASTC_10x6_KHR,ext.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHRext.COMPRESSED_RGBA_ASTC_10x6_KHR,ext.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHRext.COMPRESSED_RGBA_ASTC_10x10_KHR,ext.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHRext.COMPRESSED_RGBA_ASTC_12x10_KHR,ext.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHRext.COMPRESSED_RGBA_ASTC_12x12_KHR,ext.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR
-
Bei Verwendung der
EXT_texture_compression_bptcErweiterung:ext.COMPRESSED_RGBA_BPTC_UNORM_EXText.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXText.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXText.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT
-
Bei Verwendung der
EXT_texture_compression_rgtcErweiterung:ext.COMPRESSED_RED_RGTC1_EXText.COMPRESSED_SIGNED_RED_RGTC1_EXText.COMPRESSED_RED_GREEN_RGTC2_EXText.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT
-
width-
Ein
GLsizei, der die Breite der Textur in Texeln angibt. height-
Ein
GLsizei, der die Höhe der Textur in Texeln angibt. depth-
Ein
GLsizei, der die Tiefe der Textur/die Anzahl der Texturen in einemTEXTURE_2D_ARRAYangibt. border-
Ein
GLint, der die Breite des Rands angibt. Muss 0 sein.
Die Texturquelle kann auf zwei Arten bereitgestellt werden: von einem ArrayBuffer (möglicherweise geteilt) unter Verwendung von srcData, srcOffset und srcLengthOverride; oder in WebGL 2, von gl.PIXEL_UNPACK_BUFFER unter Verwendung von imageSize und offset.
srcData-
Ein
TypedArrayoderDataViewmit den komprimierten Texturdaten. srcOffsetOptional-
(Nur WebGL 2) Ein ganzzahliger Wert, der den Index von
srcDataangibt, ab dem gelesen werden soll. Standardwert ist0. srcLengthOverrideOptional-
(Nur WebGL 2) Ein ganzzahliger Wert, der die Anzahl der Elemente in
srcDataangibt, die gelesen werden sollen. Standardwert istsrcData.length - srcOffset. imageSize-
(Nur WebGL 2) Ein
GLsizei, der die Größe der Bilddaten in Bytes angibt. offset-
(Nur WebGL 2) Ein
GLintptr, der die Startadresse im angl.PIXEL_UNPACK_BUFFERgebundenen Puffer angibt.
Rückgabewert
Keiner (undefined).
Beispiele
const ext =
gl.getExtension("WEBGL_compressed_texture_s3tc") ||
gl.getExtension("MOZ_WEBGL_compressed_texture_s3tc") ||
gl.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");
const 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);
Spezifikationen
| Specification |
|---|
| WebGL Specification> # COMPRESSEDTEXIMAGE2D> |
Browser-Kompatibilität
Loading…
Siehe auch
- Verwendung von WebGL-Erweiterungen
WebGLRenderingContext.getExtension()WebGLRenderingContext.compressedTexSubImage2D()WebGL2RenderingContext.compressedTexSubImage3D()WebGL2RenderingContext.compressedTexImage3D()WEBGL_compressed_texture_s3tcWEBGL_compressed_texture_s3tc_srgbWEBGL_compressed_texture_etcWEBGL_compressed_texture_pvrtcWEBGL_compressed_texture_etc1WEBGL_compressed_texture_astcEXT_texture_compression_bptcEXT_texture_compression_rgtc