前言
glew +freeglut 是比较老的一种OpenGL学习组合,我们老师上课的教材还是glut的窗口
比较新的是glfw+glad的配置 这个舒服很多!
我也同时配置了glad + glfw
glad+glfw配置地址
配置差不多
这两套有些地方使用还是有差距的!
1. 下载库
可以自己源码编译也可以下载预编译
glew库 官网下载
下载二进制版本的
freeglut库 官网下载
我们下载的都是编译好的
不用自己编译!
下载好的两个文件解压后应该是下图
2. 配置
Clion 中的Cmakelist配置如下
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.测试运行
这里画个三角形
#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;
}