[ Leksykon ] [ JavaScript ] [ Metody ] [ canvas ] [ WebGL ]
WebGLRenderingContext.compressedTexSubImage2D()
[_] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z]
// WebGL 1:
compressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, srcData)
// 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)
Przykłady:
const obraz = new Uint8Array(imageDX.obraz);
const szerokość = imageDX.szerokość;
const wysokość = imageDX.wysokość;
const format = imageDX.format;
gl.viewport(0, 0, szerokość, wysokość);
const tekstura = gl.createTexture();
gl.bindTexture(gl.TEXTURE_2D, tekstura);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
gl.compressedTexImage2D(gl.TEXTURE_2D, 0, format, szerokość, wysokość, 0, obraz);
const obrazSub = new Uint8Array(obraz.buffer, 0, 16);
gl.compressedTexSubImage2D(gl.TEXTURE_2D, 0, 4, 4, 4, 4, ext.COMPRESSED_RGBA_S3TC_DXT5_EXT, obrazSub);
console.log(gl.getError() + " gl.compressedTexSubImage2D 4x4 " + gl.INVALID_ENUM);
gl.clearColor(1, 1, 1, 1);
gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
gl.drawArrays(gl.TRIANGLES, 0, 6);
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,
);
Opis:
Metoda WebGLRenderingContext.compressedTexSubImage2D() określa dwuwymiarowy pod prostokąt dla obrazu tekstury w formacie skompresowanym.
Parametr target - GLenum określenie punktu wiązania docelowego aktywnej skompresowanej tekstury. Możliwa wartość:
gl.TEXTURE_2D: Dwuwymiarowa tekstura.
gl.TEXTURE_CUBE_MAP_POSITIVE_X: Dodatnia ściana X dla tekstury odwzorowanej w kształcie sześcianu.
gl.TEXTURE_CUBE_MAP_NEGATIVE_X: Negatywna ściana X dla tekstury odwzorowanej w kształcie sześcianu.
gl.TEXTURE_CUBE_MAP_POSITIVE_Y: Dodatnia ściana Y dla tekstury odwzorowanej w kształcie sześcianu.
gl.TEXTURE_CUBE_MAP_NEGATIVE_Y: Negatywna ściana Y dla tekstury odwzorowanej w kształcie sześcianu.
gl.TEXTURE_CUBE_MAP_POSITIVE_Z: Pozytywna ściana Z dla tekstury odwzorowanej w kształcie sześcianu.
gl.TEXTURE_CUBE_MAP_NEGATIVE_Z: Negatywna ściana Z dla tekstury odwzorowanej w kształcie sześcianu.
Parametr level - GLint określenie poziomu szczegółowości. Poziom 0 to podstawowy poziom obrazu, a poziom n to n-ty poziom redukcji mipmapy.
Parametr xoffset - GLint określające przesunięcie poziome w skompresowanym obrazie tekstury.
Parametr yoffset - GLint określające przesunięcie pionowe w skompresowanym obrazie tekstury.
Parametr width - GLsizei określająca szerokość skompresowanej tekstury.
Parametr height - GLsizei określenie wysokości skompresowanej tekstury.
Parametr format - GLenum określenie formatu skompresowanego obrazu. Przed użyciem tej metody należy włączyć skompresowane formaty obrazów w rozszerzeniach WebGL. Możliwa wartość:
Podczas korzystania z WEBGL_compressed_texture_s3tc rozszerzenia:
ext.COMPRESSED_RGB_S3TC_DXT1_EXT
ext.COMPRESSED_RGBA_S3TC_DXT1_EXT
ext.COMPRESSED_RGBA_S3TC_DXT3_EXT
ext.COMPRESSED_RGBA_S3TC_DXT5_EXT
Podczas korzystania z WEBGL_compressed_texture_s3tc_srgb rozszerzenia:
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
Podczas korzystania z WEBGL_compressed_texture_etc rozszerzenia:
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
Podczas korzystania z WEBGL_compressed_texture_pvrtc rozszerzenia:
ext.COMPRESSED_RGB_PVRTC_4BPPV1_IMG
ext.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG
ext.COMPRESSED_RGB_PVRTC_2BPPV1_IMG
ext.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG
Podczas korzystania z WEBGL_compressed_texture_astc rozszerzenia:
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
Podczas korzystania z EXT_texture_compression_bptc rozszerzenia:
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
Podczas korzystania z EXT_texture_compression_rgtc rozszerzenia:
ext.COMPRESSED_RED_RGTC1_EXT
ext.COMPRESSED_SIGNED_RED_RGTC1_EXT
ext.COMPRESSED_RED_GREEN_RGTC2_EXT
ext.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT
Parametr imageSize - GLsizei określające liczbę bajtów do odczytania z bufora powiązanego z gl.PIXEL_UNPACK_BUFFER.
Parametr offset - GLintptr określające przesunięcie w bajtach, z którego należy czytać z bufora powiązanego z gl.PIXEL_UNPACK_BUFFER.
Parametr srcData - TypedArray lub DataView, który będzie używany jako magazyn danych dla skompresowanych danych obrazu w pamięci.
Wartość zwracana undefined.
Zobacz też:
Korzystanie z rozszerzeń WebGL -
getExtension() -
compressedTexImage2D() -
WEBGL_compressed_texture_s3tc -
WEBGL_compressed_texture_s3tc_srgb -
WEBGL_compressed_texture_etc -
WEBGL_compressed_texture_pvrtc -
WEBGL_compressed_texture_astc -
EXT_texture_compression_bptc -
EXT_texture_compression_rgtc -