WebGLRenderingContext: compressedTexSubImage2D() Methode

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Hinweis: Dieses Feature ist verfügbar in Web Workers.

Die WebGLRenderingContext.compressedTexSubImage2D()-Methode der WebGL API legt ein zweidimensionales Unterrechteck für ein Texturbild in einem komprimierten Format fest.

Komprimierte Bildformate müssen durch WebGL Erweiterungen aktiviert werden, bevor diese Methode verwendet wird, oder es muss ein WebGL2RenderingContext verwendet werden.

Syntax

js
// WebGL 1:
compressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, srcData)

// Additionally available in WebGL 2:
compressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, offset)
compressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, srcData)
compressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, srcData, srcOffset)
compressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, srcData, srcOffset, srcLengthOverride)

Parameter

target

Ein GLenum, das 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-Seite für eine würfelgemappte Textur.
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_X: Negative X-Seite für eine würfelgemappte Textur.
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Y: Positive Y-Seite für eine würfelgemappte Textur.
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Y: Negative Y-Seite für eine würfelgemappte Textur.
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Z: Positive Z-Seite für eine würfelgemappte Textur.
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Z: Negative Z-Seite für eine würfelgemappte Textur.
level

Ein GLint, der das Detailniveau angibt. Level 0 ist das Basisebenenbild und Level n ist das n-te Mipmap-Reduktionslevel.

xoffset

Ein GLint, das den horizontalen Versatz innerhalb des komprimierten Texturbildes angibt.

yoffset

Ein GLint, das den vertikalen Versatz innerhalb des komprimierten Texturbildes angibt.

width

Ein GLsizei, der die Breite der komprimierten Textur angibt.

height

Ein GLsizei, der die Höhe der komprimierten Textur angibt.

format

Ein GLenum, der das komprimierte Bildformat angibt. Komprimierte Bildformate müssen durch WebGL Erweiterungen aktiviert werden, bevor diese Methode verwendet wird. Mögliche Werte:

  • Bei Verwendung der WEBGL_compressed_texture_s3tc-Erweiterung:

    • ext.COMPRESSED_RGB_S3TC_DXT1_EXT
    • ext.COMPRESSED_RGBA_S3TC_DXT1_EXT
    • ext.COMPRESSED_RGBA_S3TC_DXT3_EXT
    • ext.COMPRESSED_RGBA_S3TC_DXT5_EXT
  • Bei Verwendung der WEBGL_compressed_texture_s3tc_srgb-Erweiterung:

    • 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
  • Bei Verwendung der WEBGL_compressed_texture_etc-Erweiterung:

    • 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
  • Bei Verwendung der WEBGL_compressed_texture_pvrtc-Erweiterung:

    • ext.COMPRESSED_RGB_PVRTC_4BPPV1_IMG
    • ext.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG
    • ext.COMPRESSED_RGB_PVRTC_2BPPV1_IMG
    • ext.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG
  • Bei Verwendung der WEBGL_compressed_texture_astc-Erweiterung:

    • 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_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
  • Bei Verwendung der EXT_texture_compression_bptc-Erweiterung:

    • 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
  • Bei Verwendung der EXT_texture_compression_rgtc-Erweiterung:

    • ext.COMPRESSED_RED_RGTC1_EXT
    • ext.COMPRESSED_SIGNED_RED_RGTC1_EXT
    • ext.COMPRESSED_RED_GREEN_RGTC2_EXT
    • ext.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT
imageSize

Ein GLsizei, der die Anzahl der Bytes angibt, die aus dem an gl.PIXEL_UNPACK_BUFFER gebundenen Puffer gelesen werden sollen.

offset

Ein GLintptr, der den Offset in Bytes angibt, ab dem aus dem an gl.PIXEL_UNPACK_BUFFER gebundenen Puffer gelesen werden soll.

srcData

Ein TypedArray oder ein DataView, der als Datenspeicher für die komprimierten Bilddaten im Speicher verwendet wird.

Rückgabewert

Keiner (undefined).

Beispiele

js
const ext =
  gl.getExtension("WEBGL_compressed_texture_s3tc") ||
  gl.getExtension("MOZ_WEBGL_compressed_texture_s3tc") ||
  gl.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");
gl.compressedTexSubImage2D(
  gl.TEXTURE_2D,
  0,
  256,
  256,
  512,
  512,
  ext.COMPRESSED_RGBA_S3TC_DXT5_EXT,
  textureData,
);

Spezifikationen

Specification
WebGL Specification
# COMPRESSEDTEXSUBIMAGE2D

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch