欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

OpenGL+Visual Studio 2017环境配置

程序员文章站 2022-03-22 12:50:03
...

在VS2017上配置OpenGL我们只需要添加GLFW GLEW GLAD三个第三方库。

步骤1:

下载库文件:https://github.com/xiaobooo/OpenGL/tree/master/Base

【因为从官网下载叙述较为麻烦,也防止一些同学在过程中出现一些乱七八糟的问题,我已经把OpenGL日常使用的一些库文件整理好上传到了Github上】

步骤2:

将下载好的库文件解压后放在一个你觉得舒服的位置【每次创建OpenGL工程都需要反复引入该库文件位置,所以嘿嘿嘿,你还是放在一个容易找到的位置吧】

步骤3:

创建项目引入依赖库

打开VS2017,建立新项目,建立空白项,项目方案右键,点击属性

配置属性----》VC++目录:包含目录和库目录分别选择解压后的Includes文件夹和Libs文件夹【博主使用的是Mac,所以借用的他人截图,图中有错,应该是在包含目录和库目录进行修改】

OpenGL+Visual Studio 2017环境配置

链接器---》输入---》附加依赖项:

添加

opengl32.lib和glfw3.lib还有msvcrt.lib 

OpenGL+Visual Studio 2017环境配置

如果项目需要GLAD的话,直接将解压后文件夹里的glad.c添加到工程的源文件即可

OpenGL+Visual Studio 2017环境配置


大功告成,来一段测试代码:

//
//  main.cpp
//  FirstWindow
//
//  Created by boone on 2018/7/3.
//  Copyright © 2018年 boone. All rights reserved.
//

#include<GLFW/glfw3.h>

#include<iostream>

using namespace std;

const unsigned int WID =700;

const unsigned int HEI = 700;

void frame_buffer_size_callback(GLFWwindow* window, int width, int height){
    glViewport(0, 0, width, height);
}

void pressInput(GLFWwindow* window){
    if(glfwGetKey(window, GLFW_KEY_ESCAPE)==GLFW_PRESS)
        glfwSetWindowShouldClose(window,true);
}

int main(){
    //初始化窗口
    glfwInit();
    glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
    glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
    
    //此行用以兼容Mac OS X系统
    glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, true);
    
    //创建窗口对象
    GLFWwindow * win =glfwCreateWindow(WID, HEI, "Xiaobooo's test windows!", NULL, NULL);
    if(win == NULL){
        cout<<"Fail to Create the windows"<<endl;
        glfwTerminate();
        return -1;
    }
    glfwMakeContextCurrent(win);
    
    //设置回调函数,当窗口改变大小时调用
    glfwSetFramebufferSizeCallback(win, frame_buffer_size_callback);
    
    //渲染循环,退出前一直保持运行
    while (!glfwWindowShouldClose(win)) {
        
        //检测按键,判断是否退出
        pressInput(win);
        
        //设置渲染背景色
        glClearColor(0.9f, 0.9f, 0.9f, 0.9f);
        glClear(GL_COLOR_BUFFER_BIT);
        
        glfwSwapBuffers(win);   //交换颜色缓冲
        glfwPollEvents();   //检查触发事件
        
    }
    //正确释放分配的所有资源
    glfwTerminate();
    
    return 0;
}


博主OpenGL学习日记:https://github.com/xiaobooo/OpenGL