OpenGL 使用FBO为渲染对象并从GPU取出存图的代码
#include "gl/glew.h"
#include "gl/glut.h"
#include <fstream>
#define isize 512
const char* vertexShaderSource = "#version 460 \n"
"layout (location = 0) in vec3 aPos;\n"
"void main()\n"
"{\n"
" gl_Position = vec4(aPos.x, aPos.y, aPos.z, 1.0);\n"
"}\0";
const char* fragmentShaderSource = "#version 460 \n"
"out vec4 FragColor;\n"
"void main()\n"
"{\n"
" FragColor = vec4(0.0f, 1.0f, 1.0f, 1.0f);\n"
"}\n\0";
void saveToBMP24(void* packBuffer, const std::string& img);
int main(int argc, char** argv)
{
argc;argv;
//初始化窗口以及渲染上下文
//创建viewport
int iViewportIndex = 0;
float fv4Viewport[4] = {0.0f,0.0f,512.0f,512.0f};
glViewportIndexedfv(iViewportIndex, fv4Viewport);
//创建FBO绑定的纹理
GLuint texName;
glGenTextures(1, &texName);
g