Есть ли у кого-нибудь опыт использования библиотеки freeimage для сохранения буфера opengl?Почему я всегда получаю черное изображение при попытке сохранить буфер opengl с помощью freeimage libarary?
Вот мой код:
void screenshot(const char *ptr){
GLint viewPort[4];
glGetIntegerv(GL_VIEWPORT, viewPort);
GLubyte *pixels=new GLubyte[3*winWidth*winHeight];
glPixelStorei(GL_PACK_ALIGNMENT, 1);
glReadPixels(0, 0, viewPort[2],viewPort[3], GL_RGB, GL_UNSIGNED_BYTE, pixels);
FIBITMAP* image = FreeImage_ConvertFromRawBits(pixels,viewPort[2], viewPort[3],3*viewPort[2]
,24,FI_RGBA_RED, FI_RGBA_GREEN_MASK, FI_RGBA_BLUE_MASK,false);
FreeImage_Save(FIF_BMP, image, ptr, 0);
FreeImage_Unload(image);
delete pixels;
}
Почему я всегда получаю черное изображение?
Вы вообще пробовали отлаживать? Попробуйте проверить varles 'pixels' после вызова' glReadPixels'. Убедитесь, что вы вызываете это после рисования своих объектов, а не сразу после 'glClear'. –
да, вы правы, это происходит неправильно, спасибо –