WebGLRenderingContext: метод texSubImage2D()
Примечание: Эта функция доступна в Потоках веб.
Метод WebGLRenderingContext.texSubImage2D() API WebGL определяет подпрямоугольник текущей текстуры.
Синтаксис
// WebGL1 texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels) // pixels is a TypedArray or a DataView texSubImage2D(target, level, xoffset, yoffset, format, type, pixels) // WebGL2 texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, offset) texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, source) texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels, srcOffset)
Параметры
target-
Значение
GLenum, определяющее точку привязки (цель) активной текстуры. Возможные значения:-
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-й уровень уменьшения mipmap. xoffset-
Значение
GLint, определяющее координату x левого нижнего пикселя прямоугольной под области текстуры размером в width на height пикселей. yoffset-
Значение
GLint, определяющее координату y левого нижнего пикселя прямоугольной под области текстуры размером в width на height пикселей. width-
Значение
GLsizei, определяющее ширину текстуры в пикселях. height-
Значение
GLsizei, определяющее высоту текстуры в пикселях. format-
Значение
GLenum, определяющее формат данных пикселей. Возможные значения:-
gl.ALPHA: Отбрасывает компоненты красного, зелёного и синего и читает альфа-компонент. -
gl.RGB: Отбрасывает альфа-компоненты и читает компоненты красного, зелёного и синего. -
gl.RGBA: Компоненты красного, зелёного, синего и альфа читаются из буфера цвета. -
gl.LUMINANCE: Каждый цветовой компонент — это компонент яркости, альфа — 1.0. -
gl.LUMINANCE_ALPHA: Каждый компонент — это компонент яркости/альфа.
При использовании расширения
EXT_sRGB:ext.SRGB_EXText.SRGB_ALPHA_EXT
При использовании контекста WebGL 2, доступны следующие значения:
gl.REDgl.RGgl.RED_INTEGERgl.RG_INTEGERgl.RGB_INTEGERgl.RGBA_INTEGER
-
type-
Значение
GLenum, определяющее тип данных пикселей. Возможные значения:-
gl.UNSIGNED_BYTE: 8 бит на канал дляgl.RGBA -
gl.UNSIGNED_SHORT_5_6_5: 5 бит красного, 6 бит зелёного, 5 бит синего. -
gl.UNSIGNED_SHORT_4_4_4_4: 4 бит красного, 4 бит зелёного, 4 бит синего, 4 бит альфа. -
gl.UNSIGNED_SHORT_5_5_5_1: 5 бит красного, 5 бит зелёного, 5 бит синего, 1 бит альфа.
При использовании расширения
OES_texture_float:gl.FLOAT
При использовании расширения
OES_texture_half_float:gl.HALF_FLOAT_OES
При использовании контекста WebGL 2, доступны следующие значения:
gl.BYTEgl.UNSIGNED_SHORTgl.SHORTgl.UNSIGNED_INTgl.INTgl.HALF_FLOATgl.FLOATgl.UNSIGNED_INT_2_10_10_10_REVgl.UNSIGNED_INT_10F_11F_11F_REVgl.UNSIGNED_INT_5_9_9_9_REVgl.UNSIGNED_INT_24_8-
gl.FLOAT_32_UNSIGNED_INT_24_8_REV(пиксели должны бытьnull)
-
pixels-
В качестве источника пикселей для текстуры можно использовать один из следующих объектов:
-
Uint8Array(необходимо использовать, еслиtypeявляетсяgl.UNSIGNED_BYTE) -
Uint16Array(необходимо использовать, еслиtypeявляется либоgl.UNSIGNED_SHORT_5_6_5,gl.UNSIGNED_SHORT_4_4_4_4,gl.UNSIGNED_SHORT_5_5_5_1, илиext.HALF_FLOAT_OES) -
Float32Array(необходимо использовать, еслиtypeявляетсяgl.FLOAT) -
ImageData, -
HTMLImageElement, -
HTMLCanvasElement, -
HTMLVideoElement, -
ImageBitmap.
-
offset-
(Только WebGL 2) Смещение в байтах
WebGLBufferотносительно начала данных. Используется для загрузки данных в текущую привязаннуюWebGLTextureизWebGLBufferпривязанного к целиPIXEL_UNPACK_BUFFER.
Возвращаемое значение
Ничего (undefined).
Примеры
gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, image);
Спецификации
Совместимость с браузерами
| Рабочие столы | Мобильные | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
texSubImage2D |
9 | 12 | 4 | 12 | 5.1 | 25 | 4Текстуры из видеоэлементов не поддерживаются. Смотрите баг 1884282. |
12 | 8 | 1.5 | 4.4.3 |
См. также
WebGLRenderingContext.createTexture()WebGLRenderingContext.bindTexture()WebGLRenderingContext.texImage2D()WebGLRenderingContext.compressedTexImage2D()WebGLRenderingContext.copyTexImage2D()WebGLRenderingContext.getTexParameter()OES_texture_floatOES_texture_half_floatEXT_sRGBEXT_texture_norm16
© 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/texSubImage2D