参考文章1
参考文章2

#include <iostream>
#include"glad/glad.h"//!!!注意这里,/前面的是h文件的上级目录,可能每个人安装不同,也有不同
#include"GLFW/glfw3.h"
using namespace std;static void key_callback(GLFWwindow* window, int key, int scancode, int action, int mods)
{if (key == GLFW_KEY_ESCAPE && action == GLFW_PRESS){glfwSetWindowShouldClose(window, GL_TRUE);}}//vertex shader
const GLchar* vertexShader_Code =
"#version 330 core\n"
"layout(location=0) in vec3 aPos;\n"
"void main()\n"
"{\n"
"gl_Position=vec4(aPos.x,aPos.y,aPos.z,1.0);\n"
"}";const GLchar* fragmentShader_Code =
"#version 330 core\n"
"out vec4 FragColor;\n"
"void main()\n"
"{\n"
"FragColor=vec4(1.0f, 0.5f, 0.2f, 1.0f);\n"
"}";int main()
{//三角顶点float vertices[] ={-0.5f,-0.5f,0.0f,//左下角0.5f,-0.5f,0.0f,//右下角0.0f, 0.5f,0.0f//顶端角};glfwInit();//初始化glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);//配置GLFWglfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);//配置GLFWglfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);//glfwWindowHint(GLFW_RESIZABLE, GL_FALSE);GLFWwindow* window = glfwCreateWindow(800, 600, "OpenGL", nullptr, nullptr);glfwSetKeyCallback(window, key_callback);if (window == nullptr){cout << "Failed to create GLFW window" << endl;glfwTerminate();//terminate the glfw(end the glfw)return -1;}glfwMakeContextCurrent(window);//设置当前openGL上下if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)){cout << "Failed to initialize GLAD" << endl;return -1;}//dataint isSuccess;char infoLog[512];//vertexShader dataunsigned int vertexShader;vertexShader = glCreateShader(GL_VERTEX_SHADER);glShaderSource(vertexShader, 1, &vertexShader_Code, NULL);glCompileShader(vertexShader);/*编译是否通过*/glGetShaderiv(vertexShader, GL_COMPILE_STATUS, &isSuccess);if (!isSuccess){glGetShaderInfoLog(vertexShader, 512, NULL, infoLog);cout << "ERROR::VertexShader::Compile_failed" << infoLog << endl;}else{cout << "SUCCESS::VertexShader" << endl;}//fragmentShader Dataunsigned int fragmentShader;fragmentShader = glCreateShader(GL_FRAGMENT_SHADER);glShaderSource(fragmentShader, 1, &fragmentShader_Code, NULL);glCompileShader(fragmentShader);/*编译是否通过*/glGetShaderiv(fragmentShader, GL_COMPILE_STATUS, &isSuccess);if (!isSuccess){glGetShaderInfoLog(fragmentShader, 512, NULL, infoLog);cout << "ERROR::FragmentShader::Compile_failed" << infoLog << endl;}else{cout << "SUCCESS::FragmentShader" << endl;}//Shader Pragramunsigned int shaderProgram;shaderProgram = glCreateProgram();glAttachShader(shaderProgram, vertexShader);glAttachShader(shaderProgram, fragmentShader);glLinkProgram(shaderProgram);glGetProgramiv(shaderProgram, GL_LINK_STATUS, &isSuccess);if (!isSuccess){glGetShaderInfoLog(shaderProgram, 512, NULL, infoLog);cout << "ERROR::ShaderProgram::Link_failed" << infoLog << endl;}else{cout << "SUCCESS::ShaderProgram" << endl;glUseProgram(shaderProgram);glDeleteShader(vertexShader);glDeleteShader(fragmentShader);}//vectices dataunsigned int VAO;unsigned int VBO;glGenVertexArrays(1, &VAO);//获得一个顶点数组对象glBindVertexArray(VAO);glGenBuffers(1, &VBO);glBindBuffer(GL_ARRAY_BUFFER, VBO);glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(float), (void*)0);glEnableVertexAttribArray(0);glBindBuffer(GL_ARRAY_BUFFER, 0);glBindVertexArray(0);while (!glfwWindowShouldClose(window)){glfwPollEvents();//检查有没有触发事件glClearColor(0.27f, 0.27f, 0.27f, 1.0f);glClear(GL_COLOR_BUFFER_BIT);glUseProgram(shaderProgram);glBindVertexArray(VAO);glDrawArrays(GL_TRIANGLES, 0, 3);glfwSwapBuffers(window);//双缓冲(替换窗口的每一个像素值)}glfwTerminate();return 0;
}

OpenGL的安装(GLFW+GLAD)相关推荐

  1. OpenGL 开发环境配置(Windows) - Visual Studio 2017 + GLFW + GLAD 详细图文教程

    OpenGL 开发环境配置(Windows) - Visual Studio 2017 + GLFW + GLAD 详细图文教程 大部分 OpenGL 是直接面向设备商的,如果开发者需要使用 Open ...

  2. Windows 下的 OpenGL 开发环境配置(GLFW+GLAD)

    引言 最近在读 Unity 4.3 的源码,研究到 Unity 集成的物理引擎 PhysX 和 Box2D 部分,接下来还要研究渲染引擎方面的东西,想着直接倒腾一下,自己集成一遍写个小 demo .当 ...

  3. WIN10 OpenGL GLFW+GLAD 开发环境搭建

    一.GLFW集成 官网下载二进制文件 GLFW x86平台请下载32-bit Windows binaries 下载source package,提取当中的include文件夹 新建一个空的win32 ...

  4. OpenGL开发学习指南二(glfw+glad)

    在上一篇文章中博主介绍了freeglut+glew的环境配置,本文介绍glfw+glad的环境配置 本系列教程将使用本文的opengl开发库 开发工具 VS2017 glfw源码:源码地址 CMake ...

  5. OpenGL ES glut glew glfw glad freeglut

    目录 一.简介 1.freeglut 2.glew 3.glut 4.glfw 5.glad 二.分类 1.窗口管理 2.函数加载 三.组合使用 1.freeglut + glew 2.glfw + ...

  6. 开源项目推荐:OpenGL之gult/freeglut/glew/glfw/glad的联系与区别

    本篇内容主要参考了文章:OpenGL+VS2017 环境配置(亲测好使)::附带必要知识点_FuXiii的博客-CSDN博客_vs2017环境配置,但是经过本人局部修改,并添加了个人见解. 1.Ope ...

  7. OpenGL之gult/freeglut/glew/glfw/glad的联系与区别

    转 https://blog.csdn.net/libaineu2004/article/details/105879521 转 https://blog.csdn.net/qq_40565033/a ...

  8. OpenGL vscode 安装与配置

    OpenGL vscode 安装与配置 一.在vscode中配置好C++的环境 这个看下网上的教程 二.下载cmake CMake 下载好后点击安装,安装过程中选择add path to all us ...

  9. glut glfw glad SOIL glm freetype等配置

    a. 配置glut https://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip 链接下载glut.下载之后解压得到5个文件gl ...

  10. OpenGL创建一个GLFW背景红色窗口的实例

    OpenGL创建一个GLFW背景红色窗口 先上图,再解答. 完整主要的源代码 源代码剖析 先上图,再解答. 完整主要的源代码 #include <glad/glad.h> #include ...

最新文章

  1. 获取图片像素颜色,转换为CSS3 box-shadow显示
  2. linux windows c system 函数简介
  3. 前端html继承的方式,好程序员web前端教程之JS继承实现方式解析
  4. C++ 中export 关键字的尴尬处境
  5. 大型企业网络设备管理
  6. 43岁被裁员,200万年薪泡汤:这4件事你要尽早明白
  7. kubernetes创建yaml,pod服务一直处于 ContainerCreating状态的原因查找与解决
  8. Error:scalac: missing or invalid dependency detected while loading class file ‘RDDOperationScope.cla
  9. Web后端学习笔记Flask(2)模板
  10. 删除共享登陆用户信息||无权访问共享资源解决方法
  11. PHP 01 Apache HTTP
  12. python入门之正则表达式
  13. mac系统csv转ansi_迅捷文字转语音 for mac
  14. 【金猿技术展】PLC电力载波通信技术——电力系统特有通信方式
  15. 非常有意思的Flowlet
  16. 解决Java应用的后台错误:“操作符不存在: character varying = bytea“
  17. 《软件技术学研会-技术培训》第0章 操作系统安装
  18. Java游戏脚本实现
  19. 怎么用python画指北针?
  20. 科普 | 什么是稀疏默克尔树多值证明

热门文章

  1. 无法将数据库从SINGLE_USER模式切换回MULTI_USER模式(Error 5064)
  2. 孩子沉迷游戏,家长该怎么办?
  3. PHP创始人:开源与商业软件是竞合关系(转)
  4. bada开发tips
  5. 题解报告:hdu 2647 Reward(拓扑排序)
  6. python实现最大公约数最小公倍数求法
  7. 万变不离CHP 天霆“交付”多元化应用
  8. 做带团长的社区团购吗?必死那种。
  9. 基于Tiny6410的LCD与一线触屏移植
  10. 爬虫项目实操四、用Scrapy爬取招聘网站的招聘信息