我遇到了一个问题,需要用软件渲染(只有CPU,没有GPU)来进行OpenGL ES2的一些屏幕外工作。问题是我能否在没有GPU的情况下使用pbuffer?此外,如何在绘制完某些内容后直接保存为png文件。请帮助我并给我一个示例。
我遇到了一个问题,需要用软件渲染(只有CPU,没有GPU)来进行OpenGL ES2的一些屏幕外工作。问题是我能否在没有GPU的情况下使用pbuffer?此外,如何在绘制完某些内容后直接保存为png文件。请帮助我并给我一个示例。
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。)