[英]How to emulate GL_TEXTURE_EXTERNAL_OES texture?
我有一個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.使用屏幕創建pixmap緩沖區
EGLNativePixmapType pObjEglPixmap = ...
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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.