Prólogo
glew + freeglut es una combinación de aprendizaje de OpenGL relativamente antigua. El libro de texto de nuestro maestro sigue siendo la ventana de glut. La
más nueva es la configuración de glfw + glad. ¡Esto es mucho más cómodo!
También configuré glad + glfw
glad + glfw para configurar la configuración de la dirección
. ¡
Todavía hay algunos vacíos en el uso de estos dos conjuntos en algunos lugares!
1. Descargar Library
Puede compilar su propio código fuente o puede descargar el sitio web oficial de la
biblioteca glew precompilada para
descargar la versión binaria del sitio web oficial de la
biblioteca freeglut para descargar
Descargamos todo compilado
¡No es necesario compilarlo usted mismo!
Los dos archivos descargados deben ser la siguiente imagen después de la descompresión
2. Configuración
La configuración de Cmakelist en Clion es la siguiente
cmake_minimum_required(VERSION 3.15)
project(Graph)
set(CMAKE_CXX_STANDARD 14)
# 路径自己替换
link_directories("F:/freeglut/lib/x64")
link_directories("F:/glew-2.1.0/lib/Release/x64")
#文件头
include_directories("F:/freeglut/include")
include_directories("F:/glew-2.1.0/include")
add_executable(Graph main.cpp)
# 这句话重要,一点要先衔接opengl32库才能用! opengl32.lib或者libopengl32.a都可以
target_link_libraries(Graph libopengl32.a libfreeglut.a glew32.lib)
3. Prueba de funcionamiento
Dibuja un triángulo aquí
#include<gl/glew.h>
#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);、
// 线形
glBegin(GL_TRIANGLE_STRIP);
{
glVertex2f(-0.8,-0.8);
glVertex2f(0.8,-0.8);
glVertex2f(0,0.8);
}
glEnd();
glutSwapBuffers();
}
int main(int argc,char** argv)
{
//初始化
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH);
glutInitWindowSize(800, 600);
glutCreateWindow("HelloWord");
glutReshapeFunc(changeViewport);
glutDisplayFunc(render);
// 测试glew
GLenum error = glewInit();
if (error!=GLEW_OK)
{
printf("GLEW CREATE ERROR");
return -1;
}
glutMainLoop();
return 0;
}