OpenGL+Visual Studio 2017环境配置

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

步骤1:

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

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

步骤2:

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

步骤3:

创建项目引入依赖库

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

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


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

添加

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


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



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

//
//  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



猜你喜欢

转载自blog.csdn.net/qq_38130710/article/details/80897636
今日推荐