freeglut
#include<GL/freeglut.h>
#include <iostream>
using namespace std;
//改变窗口大小
void changeViewport(int w, int h)
{
glViewport(0, 0, w, h);
}
//渲染
void render()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glutSwapBuffers();
}
int main(int argc, char** argv)
{
//初始化
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH);
glutInitWindowSize(800, 600);
glutCreateWindow("LJLHelloWord");
glutReshapeFunc(changeViewport);
glutDisplayFunc(render);
glutMainLoop();
return 0;
}
freeglut + glew
#include <iostream>
//#define GLEW_STATIC
#include <GL/glew.h>
#include <GL/freeglut.h>
#include <GLFW/glfw3.h>
using namespace std;
int main(int argc, char** argv[])
{
//glewExperimental = GL_TRUE;
//GLenum err = glewInit();
//if (err != GLEW_OK)
//{
// cout << "failed to initalize GLEW" << endl;
// return -1;// 会有调用不成功的案例
//}
glfwInit();//初始化
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);//配置GLFW
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);//配置GLFW
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);//
glfwWindowHint(GLFW_RESIZABLE, GL_FALSE);
glewExperimental = GL_TRUE;
GLFWwindow* window = glfwCreateWindow(800, 600, "LearnOpenGL", nullptr, nullptr);
if (window == nullptr)
{
cout << "Failed to create GLFW window" << endl;
glfwTerminate();
return -1;
}
glfwMakeContextCurrent(window);
while (!glfwWindowShouldClose(window))
{
glfwPollEvents();
glfwSwapBuffers(window);
}
glfwTerminate();
return 0;
}