Spec-Zone.ru › Web APIs

WebGLRenderingContext: метод framebufferTexture2D()

Базовая поддержка Широко распространена

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с июля 2015 года.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Примечание: Эта функция доступна в рабочих потоках.

Метод WebGLRenderingContext.framebufferTexture2D() из WebGL API прикрепляет текстуру к WebGLFramebuffer.

Синтаксис

framebufferTexture2D(target, attachment, textarget, texture, level)

Параметры

target

GLenum, определяющий точку привязки (цель). Возможные значения:

gl.FRAMEBUFFER

Хранилище данных буфера кадра для цветовых, альфа-, глубинных и маскирующих буферов, используемых для отрисовки изображения.

При использовании контекста WebGL 2, доступны следующие дополнительные значения:

gl.DRAW_FRAMEBUFFER

Используется в качестве целевого буфера для операций отрисовки, рендеринга, очистки и записи.

gl.READ_FRAMEBUFFER

Используется в качестве источника для операций чтения.

При привязке gl.FRAMEBUFFER устанавливает как точки привязки gl.DRAW_FRAMEBUFFER, так и gl.READ_FRAMEBUFFER. При ссылке gl.FRAMEBUFFER относится к точке привязки gl.DRAW_FRAMEBUFFER.

attachment

GLenum, определяющий точку присоединения texture. Возможные значения:

  • gl.COLOR_ATTACHMENT0: Прикрепляет текстуру к буферу цвета кадра.
  • gl.DEPTH_ATTACHMENT: Прикрепляет текстуру к буферу глубины кадра.
  • gl.STENCIL_ATTACHMENT: Прикрепляет текстуру к буферу маски кадра.

При использовании контекста WebGL 2, доступны следующие дополнительные значения:

  • gl.DEPTH_STENCIL_ATTACHMENT: данные буфера глубины и маски.
  • gl.COLOR_ATTACHMENT1 gl.COLOR_ATTACHMENT2 gl.COLOR_ATTACHMENT3 gl.COLOR_ATTACHMENT4 gl.COLOR_ATTACHMENT5 gl.COLOR_ATTACHMENT6 gl.COLOR_ATTACHMENT7 gl.COLOR_ATTACHMENT8 gl.COLOR_ATTACHMENT9 gl.COLOR_ATTACHMENT10 gl.COLOR_ATTACHMENT11 gl.COLOR_ATTACHMENT12 gl.COLOR_ATTACHMENT13 gl.COLOR_ATTACHMENT14 gl.COLOR_ATTACHMENT15

При использовании расширения WEBGL_draw_buffers:

  • ext.COLOR_ATTACHMENT0_WEBGL (то же, что и gl.COLOR_ATTACHMENT0)
  • ext.COLOR_ATTACHMENT1_WEBGL ext.COLOR_ATTACHMENT2_WEBGL ext.COLOR_ATTACHMENT3_WEBGL ext.COLOR_ATTACHMENT4_WEBGL ext.COLOR_ATTACHMENT5_WEBGL ext.COLOR_ATTACHMENT6_WEBGL ext.COLOR_ATTACHMENT7_WEBGL ext.COLOR_ATTACHMENT8_WEBGL ext.COLOR_ATTACHMENT9_WEBGL ext.COLOR_ATTACHMENT10_WEBGL ext.COLOR_ATTACHMENT11_WEBGL ext.COLOR_ATTACHMENT12_WEBGL ext.COLOR_ATTACHMENT13_WEBGL ext.COLOR_ATTACHMENT14_WEBGL ext.COLOR_ATTACHMENT15_WEBGL

При использовании расширения WEBGL_depth_texture:

  • gl.DEPTH_STENCIL_ATTACHMENT: хранилище данных буфера глубины и маски.
textarget

GLenum, определяющий целевую текстуру. Возможные значения:

  • gl.TEXTURE_2D: 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 куба.
texture

Объект WebGLTexture, чье изображение нужно прикрепить.

level

GLint, определяющий уровень mipmap изображения текстуры для прикрепления. Должно быть равно 0.

Возвращаемое значение

Ничего (undefined).

Исключения

  • Выбрасывается ошибка gl.INVALID_ENUM, если

    • target не является gl.FRAMEBUFFER.
    • attachment не является одной из допустимых точек присоединения.
    • textarget не является одной из допустимых целевых текстур.
  • Выбрасывается ошибка gl.INVALID_VALUE, если level не равно 0.

  • Выбрасывается ошибка gl.INVALID_OPERATION, если texture не равно 0 или имени существующего объекта текстуры.

Примеры

gl.framebufferTexture2D(
  gl.FRAMEBUFFER,
  gl.COLOR_ATTACHMENT0,
  gl.TEXTURE_2D,
  texture,
  0,
);

Спецификации

Спецификация
Спецификация WebGL
# 5.14.6

Совместимость с браузерами

Рабочие столы Мобильные
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari на iOS Samsung Internet WebView Android
framebufferTexture2D 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3

См. также

  • WebGLRenderingContext.createFramebuffer()
  • WebGLRenderingContext.deleteFramebuffer()
  • WebGLRenderingContext.isFramebuffer()
  • Другие буферы: WebGLBuffer, WebGLRenderbuffer
  • WEBGL_depth_texture
  • WEBGL_draw_buffers

© 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/framebufferTexture2D

Spec-Zone.ru

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