HiWorld

#include <glad/glad.h> #include <GLFW/glfw3.h>
#include <process.h> #include <iostream> using namespace std;
void processInput(GLFWwindow *window);
int main() {  glfwInit();  //设置主版本号和次版本号都为3  glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);  glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);  //使用的是核心模式,不再需要向后兼容  glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);  ////获得版本号  //int major, minor, rev;  //glfwGetVersion(&major, &minor, &rev);  //printf("", major, minor, rev);
//绘制一个窗口,渲染在窗口中进行。不涉及OpenGL。所以后面用到OpenGL渲染时才用GLAD定位  GLFWwindow * window = glfwCreateWindow(800, 600, "window", NULL, NULL);  if (window == NULL)  {   cout << "Failed to create GLFW window" << endl;   glfwTerminate();   return -1;  }  glfwMakeContextCurrent(window);
//用GLAD管理OpenGl的函数指针,调用任何OpenGL函数之前要初始化。  //因为OpenGL有特别多的版本,而硬件版本也有很多,就需要GLAD来将他们联系在一起。  //int gladLoadGLLoader(GLADloadproc load):任何的OpenGL接口调用都必须在初始化GLAD库后才可以正常访问。如果成功的话,该接口将返回GL_TRUE,否则就会返回GL_FALSE。  if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress))  {   cout << "Failed to initialize GLAD" << endl;   return -1;  }
//前两个参数为左下角坐标,即OpenGL渲染窗口大小:视口(viewport)  glViewport(0, 0, 800, 600);
//while让GLFW一直保持运行,能不断接受我们的输入来绘制图像  while (!glfwWindowShouldClose(window))  {   //输入   //processInput(window);
//渲染命令
//在每个新的渲染开始前,我们都需要清屏。通过调用glClear来清屏。他接受一个缓冲位(buffer_bit)来指定要清空的缓存。可能的缓冲位有3种   //清屏后所有颜色都被填充位glClearColor中的颜色   glClearColor(0, 2, 2 ,1);   glClear(GL_COLOR_BUFFER_BIT);
//检查有没有什么触发事件(键盘输入等),更新窗口状态等   glfwPollEvents();
//交换颜色缓冲(十一个存储着GLFW窗口每一个像素颜色的大缓冲)   //双缓冲机制   glfwSwapBuffers(window);
}
//释放资源用  glfwTerminate();  return 0; };
//用于管理窗口和视口大小的 void framebuffer_size_callback(GLFWwindow* window, int width, int height) {  glViewport(0, 0, width, height); }
OpenGL初体验~
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务