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