OpenGL学习 环境搭建Clion+glew+freeglut+mingw

前言

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;
}

成品如下图

在这里插入图片描述

发布了22 篇原创文章 · 获赞 2 · 访问量 881

猜你喜欢

转载自blog.csdn.net/weixin_41685373/article/details/104575908