我在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