Копировать содержимое текстуры GL_TEXTURE_EXTERNAL_OES в текстуру GL_TEXTURE_2D
У меня есть две текстуры, одна привязана к цели GL_TEXTURE_EXTERNAL_OES, пиксели в формате YUV, вторая пуста и привязана к цели GL_TEXTURE_2D.
Как я могу показать контент с первой текстуры на второй?
1 ответ
Если у вас есть доступ к OpenGL ES 3.2, EXT_copy_image, OES_copy_image или APPLE_copy_texture_levels, то вы сможете скопировать данные изображения с помощью соответствующей команды копирования, определенной в этих спецификациях. Нет никакой гарантии, что это можно сделать, поскольку ни одна из этих спецификаций не определяет взаимодействие с форматами, предоставляемыми OES_EGL_image_external.
Так что даже если у вас есть доступ к команде, она может не работать для внешних изображений.
Если ничего из этого не доступно или если это не работает, то единственным выходом является привязка 2D-текстуры к буферу кадров и рендеринг к нему, считывание внешней текстуры как исходных данных в вашем фрагментном шейдере.
Это сказанное, весь смысл внешних изображений состоит в том, чтобы избежать таких копий. Вы не указали, что вы пытаетесь сделать, поэтому я не могу дать никакого совета. Возможно, вы захотите взглянуть на OES_EGL_image, а не на внешние изображения.