GLES2.0: используйте GL_TEXTURE_EXTERNAL_OES через glEGLImageTargetTexture2DOES.Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 GLES2.0: используйте GL_TEXTURE_EXTERNAL_OES через glEGLImageTargetTexture2DOES.

Сообщение Anonymous »

Я хотел бы визуализировать буфер изображения в Java (в данном случае NDK не является вариантом) и передать его в шейдеры через GL_TEXTURE_EXTERNAL_OES.

Код: Выделить всё

glTexImage2D
не работает, как указано в спецификации. Но функция glEGLImageTargetTexture2DOES доступна только через класс GLES11Ext, который кажется неправильным в использовании.

В любом случае, я попробовал и получил GL_INVALID_OPERATION, что должно произойти, если:


Если GL не может указать объект текстуры с помощью предоставленного
eglImageOES (если, например, относится к мультисемплированному
eglImageOES), генерируется ошибка INVALID_OPERATION.


К сожалению, я не могу понять, что такое орел или решка из этого описания, тем более, что Android Java API, похоже, не дает мне доступа к функциям eglImageOES. Я также не нашел примера Java для использования этой функции.

Прикрепил небольшой пример:

Код: Выделить всё

// Bind the texture unit 0
GLES20.glActiveTexture( GLES20.GL_TEXTURE0 );
throwOnError( "glActiveTexture" );

GLES20.glBindTexture( GL_TEXTURE_EXTERNAL_OES, _samplerLocation );
throwOnError( "glBindTexture" );

// _output is ByteBuffer.allocateDirect(pixels * Integer.SIZE / Byte.SIZE).order(ByteOrder.nativeOrder()).asIntBuffer()
_output.rewind();
_output.limit( pixels );
GLES11Ext.glEGLImageTargetTexture2DOES( GL_TEXTURE_EXTERNAL_OES, _output );
throwOnError( "glEGLImageTargetTexture2DOES" ); // 

Подробнее здесь: [url]https://stackoverflow.com/questions/14102992/gles2-0-use-gl-texture-external-oes-via-gleglimagetargettexture2does[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»