WebGLRenderingContext: compressedTexImage2D() метод
Базовая Широко поддерживается *
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.
* Некоторые части этой функции могут иметь различный уровень поддержки.
Примечание: Эта функция доступна в Web Workers.
Метод compressedTexImage2D() интерфейса WebGLRenderingContext API WebGL определяет двухмерное изображение текстуры в сжатом формате.
Форматы сжатых изображений должны быть включены с помощью расширений WebGL перед использованием этих методов.
Синтаксис
// WebGL 1: compressedTexImage2D(target, level, internalformat, width, height, border) compressedTexImage2D(target, level, internalformat, width, height, border, pixels) // Additionally available in WebGL 2: // read from buffer bound to gl.PIXEL_UNPACK_BUFFER compressedTexImage2D(target, level, internalformat, width, height, border, imageSize, offset) compressedTexImage2D(target, level, internalformat, width, height, border, srcData) compressedTexImage2D(target, level, internalformat, width, height, border, srcData, srcOffset) compressedTexImage2D(target, level, internalformat, width, height, border, srcData, srcOffset, srcLengthOverride)
Параметры
target-
Значение
GLenum, определяющее точку привязки (цель) активной текстуры. Возможные значения дляcompressedTexImage2D:-
gl.TEXTURE_2D: Двумерная текстура. -
gl.TEXTURE_CUBE_MAP_POSITIVE_X: Положительная X грань для кубовой текстуры. -
gl.TEXTURE_CUBE_MAP_NEGATIVE_X: Отрицательная X грань для кубовой текстуры. -
gl.TEXTURE_CUBE_MAP_POSITIVE_Y: Положительная Y грань для кубовой текстуры. -
gl.TEXTURE_CUBE_MAP_NEGATIVE_Y: Отрицательная Y грань для кубовой текстуры. -
gl.TEXTURE_CUBE_MAP_POSITIVE_Z: Положительная Z грань для кубовой текстуры. -
gl.TEXTURE_CUBE_MAP_NEGATIVE_Z: Отрицательная Z грань для кубовой текстуры.
-
level-
Значение
GLint, определяющее уровень детализации. Уровень 0 — базовое изображение, уровень n — n-ный уровень уменьшения мип-карты. internalformat-
Значение
GLenum, определяющее формат сжатого изображения. Форматы сжатых изображений должны быть включены с помощью расширений WebGL перед использованием этого метода. Все значения возможны дляcompressedTexImage2D. Возможные значения:-
При использовании расширения
WEBGL_compressed_texture_s3tc:ext.COMPRESSED_RGB_S3TC_DXT1_EXText.COMPRESSED_RGBA_S3TC_DXT1_EXText.COMPRESSED_RGBA_S3TC_DXT3_EXText.COMPRESSED_RGBA_S3TC_DXT5_EXT
-
При использовании расширения
WEBGL_compressed_texture_s3tc_srgb:ext.COMPRESSED_SRGB_S3TC_DXT1_EXText.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXText.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXText.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT
-
При использовании расширения
WEBGL_compressed_texture_etc: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
-
При использовании расширения
WEBGL_compressed_texture_pvrtc:ext.COMPRESSED_RGB_PVRTC_4BPPV1_IMGext.COMPRESSED_RGBA_PVRTC_4BPPV1_IMGext.COMPRESSED_RGB_PVRTC_2BPPV1_IMGext.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG
-
При использовании расширения
WEBGL_compressed_texture_etc1:ext.COMPRESSED_RGB_ETC1_WEBGL
-
При использовании расширения
WEBGL_compressed_texture_astc: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_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
-
При использовании расширения
EXT_texture_compression_bptc:ext.COMPRESSED_RGBA_BPTC_UNORM_EXText.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXText.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXText.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT
-
При использовании расширения
EXT_texture_compression_rgtc:ext.COMPRESSED_RED_RGTC1_EXText.COMPRESSED_SIGNED_RED_RGTC1_EXText.COMPRESSED_RED_GREEN_RGTC2_EXText.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT
-
width-
Значение
GLsizei, определяющее ширину текстуры. height-
Значение
GLsizei, определяющее высоту текстуры. depth-
Значение
GLsizei, определяющее глубину текстуры/количество текстур вTEXTURE_2D_ARRAY. border-
Значение
GLint, определяющее ширину границы. Должно быть 0. imageSize-
Значение
GLsizei, определяющее количество байтов для чтения из буфера, привязанного кgl.PIXEL_UNPACK_BUFFER. offset-
Значение
GLintptr, определяющее смещение в байтах для чтения из буфера, привязанного кgl.PIXEL_UNPACK_BUFFER. pixels-
Объект
TypedArrayилиDataView, который будет использоваться как хранилище данных сжатого изображения в памяти.
Возвращаемое значение
Ничего (undefined).
Примеры
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);
Спецификации
| Спецификация |
|---|
| Спецификация WebGL # COMPRESSEDTEXIMAGE2D |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
compressedTexImage2D |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
pixels_param_accepts_SharedArrayBuffer |
60 | ≤79 | 79 | 47 | Нет | 60 | 79 | 44 | Нет | 8.0 | 60 |
См. также
- Использование расширений WebGL
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
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/compressedTexImage2D