abe*_*ier 6 java android opengl-es-2.0 egl
我想用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" ); // <-- throws
GLES20.glDrawArrays( GLES20.GL_TRIANGLE_STRIP, 0, 4 );
throwOnError( "glDrawArrays" );
Run Code Online (Sandbox Code Playgroud)
有没有人之前这样做或知道这是否可能?
编辑:
我看一下glEGLImageTargetTexture2DOES实现,似乎我必须正确设置缓冲区.补充说,但仍然是同样的错误.
| 归档时间: |
|
| 查看次数: |
6877 次 |
| 最近记录: |