簡體   English   中英

與帶有OpenGL ES(EGL)的eglCreatePbufferSurface和eglCreatePixmapSurface的區別

[英]Difference from eglCreatePbufferSurface and eglCreatePixmapSurface with OpenGL ES(EGL)

我遇到一個問題,需要通過軟件渲染在opengl es2上進行一些屏幕外工作(僅具有CPU,沒有GPU)。 問題是我可以在沒有GPU的情況下使用pbuffer嗎? 另外,如何在繪制內容后直接保存到png文件。 請幫助並給我一個演示。

首先,使用EGL創建屏幕外緩沖區:

eglCreatePbufferSurface(display, config, PBufAttribs); 

然后讀取緩沖區:

   GLint size;
   size = esContext->width * esContext->height * 4;
   GLubyte *data = (GLubyte*)malloc(size);
   glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
   glReadPixels(0,0,esContext->width,esContext->height,GL_RGB,GL_UNSIGNED_BYTE,data);

最后保存到像素緩沖區的bmp文件。 (提醒:在24位bmp圖像中,順序為BGR,而不是RGB;因此需要將圖像數據從BGR切換為RGB。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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