Spec-Zone.ru › Web APIs

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_EXT
    • ext.COMPRESSED_RGBA_S3TC_DXT1_EXT
    • ext.COMPRESSED_RGBA_S3TC_DXT3_EXT
    • ext.COMPRESSED_RGBA_S3TC_DXT5_EXT
  • При использовании расширения WEBGL_compressed_texture_s3tc_srgb:

    • 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:

    • 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:

    • 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:

    • ext.COMPRESSED_RGB_ETC1_WEBGL
  • При использовании расширения WEBGL_compressed_texture_astc:

    • 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:

    • 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:

    • 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, определяющее ширину текстуры.

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_s3tc
  • WEBGL_compressed_texture_s3tc_srgb
  • WEBGL_compressed_texture_etc
  • WEBGL_compressed_texture_pvrtc
  • WEBGL_compressed_texture_etc1
  • WEBGL_compressed_texture_astc
  • EXT_texture_compression_bptc
  • EXT_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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API