当我在另一个线程上调用 glReadPixels 时,它不会返回任何数据。我在某处读到建议我需要在调用线程中创建一个新上下文并复制内存。我该怎么做?
这是我使用的 glReadPixels 代码:
pixels = new BYTE[ 3 * width * height];
glReadPixels(0, 0, width, height, GL_RGB, GL_UNSIGNED_BYTE, pixels);
image = FreeImage_ConvertFromRawBits(pixels, width, height, 3 * width, 24, 0xFF0000, 0x00FF00, 0x0000FF, false);
FreeImage_Save(FIF_PNG, image, pngpath.c_str() , 0);
或者,我从这个线程中读到他们建议使用另一段代码(见最后),但我不明白什么是 origX、origY、srcOrigX、srcOrigY?