簡體   English   中英

如何模擬GL_TEXTURE_EXTERNAL_OES紋理?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM