Ale*_*rov 10 textures opengl-es yuv qnx opengl-es-2.0
我有一个OpenGL ES 2.0 QNX应用程序,它使用相机输入,进行一些处理并呈现屏幕内容.
我的所有着色器都将相机的GL_TEXTURE_EXTERNAL_OES纹理作为输入,其格式为YUV422.
我想使用png格式的RGB图像在目标平台(QNX)上测试我的应用程序.
问题是:如何从RGB图像创建GL_TEXTURE_EXTERNAL_OES纹理,以模拟我的应用程序从相机输入?
回答自己的问题。
在 QNX 上从 RGB 缓冲区创建 GL_TEXTURE_EXTERNAL_OES 纹理的步骤。
1.在CPU上将RGB转换为YUV422格式
2.使用屏幕创建像素图缓冲区
EGLNativePixmapType pObjEglPixmap = ...
Run Code Online (Sandbox Code Playgroud)
3.使用EGLImageKHR对象将像素图绑定到GL_TEXTURE_EXTERNAL_OES纹理
EGLImageKHR pObjTextureEglImage = eglCreateImageKHR(eglDisplay,
EGL_NO_CONTEXT,
EGL_NATIVE_PIXMAP_KHR,
pObjEglPixmap,
NULL);
GLuint pObjTextureId;
glGenTextures(1, &pObjTextureId);
glBindTexture(GL_TEXTURE_EXTERNAL_OES, pObjTextureId);
glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glEGLImageTargetTexture2DOES(GL_TEXTURE_EXTERNAL_OES,
(GLeglImageOES)pObjTextureEglImage);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
287 次 |
| 最近记录: |