我在SDL库的帮助下创建了我的opengl窗口的屏幕截图,但它全是黑色的,我不明白为什么。如何解决它?SDL OpenGL截图是黑色的
代码:
SDL_Surface * image = SDL_CreateRGBSurface(SDL_SWSURFACE, current_w, current_h, 24, 0x000000FF, 0x0000FF00, 0x00FF0000, 0);
glReadBuffer(GL_FRONT);
glReadPixels(0, 0, current_w, current_h, GL_RGB, GL_UNSIGNED_BYTE, image->pixels);
SDL_SaveBMP(image, "pic.bmp");
SDL_FreeSurface(image);
我发现,需要删除glReadBuffer(GL_FRONT)...但现在截图是倒过来的 – EthanHunt 2011-05-02 20:32:45
OpenGL将图像的原点放在左下角(参见http://www.opengl.org/sdk/docs/man/xhtml/glReadPixels .xml),而大多数图像文件格式都在左上角。您必须自己翻转或使用支持原点的图像文件格式; PNG文件格式支持这一点,但我不知道如何告诉SDL在PNG中指定原点。 – datenwolf 2011-05-02 21:43:16