我有一个 OpenGL 窗口和一个 wxWidget 对话框。我想将 OpenGL 镜像到对话框。所以我打算做的是:
- 捕获opengl的屏幕截图
- 将它显示在 wxwidgets 对话框中。
任何想法?
更新:这就是我目前使用 glReadPixels 的方式(我也暂时使用 FreeImage 保存到 BMP 文件,但如果有办法将文件保存直接传送到 wxImage,我希望删除文件保存)
// Make the BYTE array, factor of 3 because it's RBG.
BYTE* pixels = new BYTE[ 3 * width * height];
glReadPixels(0, 0, width, height, GL_RGB, GL_UNSIGNED_BYTE, pixels);
// Convert to FreeImage format & save to file
FIBITMAP* image = FreeImage_ConvertFromRawBits(pixels, width, height, 3 * width, 24, 0x0000FF, 0xFF0000, 0x00FF00, false);
FreeImage_Save(FIF_BMP, image, "C:/test.bmp", 0);
// Free memory
delete image;
delete pixels;