与 eglCreatePbufferSurface 和 eglCreatePixmapSurface with Open
Difference from eglCreatePbufferSurface and eglCreatePixmapSurface with OpenGL ES(EGL)
我遇到了一个问题,我需要通过软件渲染(只有CPU,没有GPU)对opengl es2进行一些屏幕外工作。问题是我可以在没有 GPU 的情况下使用缓冲吗?另外,如何在绘制某些内容后直接保存到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。
相关文章:
- Problems with std::cin.fail()
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 这对"With a stackless coroutine, only the top-level routine may be suspended."意味着什么
- Boost.TEST with CLion: "Test framework quit unexpectedly"
- 避免碎片化的ClientHellos with OpenSSL (DTLS)
- Issues with Win32 ReadProcessMemory API
- Qt with WinAPI MouseProc
- [[maybe_unused]] with structured_binding?
- Issue with WriteProcessMemory
- OpenCV RTP-Stream with FFMPEG
- "Unable to start debugging. No process is associated with this object." - 在Visual Studio Code中使用GDB
- std::adjacent_difference with std::chrono time_point
- Poco::Net::FTPClientSession 在 open() 方法上挂起 129 秒,如果 ftp 主机不存
- Node.js fs.open() 在尝试打开 4 个以上的命名管道 (FIFO) 后挂起
- DLL Made with CMake 使程序崩溃
- QtCreator with C 库中的链接器问题
- 与 eglCreatePbufferSurface 和 eglCreatePixmapSurface with Open
- Qt:如何通过外部程序打开文件,"open with..."对话框
- 如何从带有C++的Windows上的注册表中获取具有完整路径的"Open With"程序?
- C++ "Open with"