一个用来验证OpenGL(glfw + glad)环境是否搭建成功的测试代码

内容为生成一个小窗口

#include <glad/glad.h>
#include <GLFW/glfw3.h> #include <stdio.h> // settings
const unsigned int SCR_WIDTH = 800;
const unsigned int SCR_HEIGHT = 600; void processInput(GLFWwindow *window)
{
if (glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS)
{
//将窗口设置为关闭,跳出循环
glfwSetWindowShouldClose(window, true);
}
} void framebuffer_size_callback(GLFWwindow* window, int width, int height)
{
glViewport(0, 0, width, height);
} int main()
{
//glfw初始化
glfwInit();
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); //glfw创建窗口
GLFWwindow* window = glfwCreateWindow(SCR_WIDTH, SCR_HEIGHT, "LearnOpenGL", NULL, NULL);
if (window == NULL)
{
printf("创建窗口失败");
//终止
glfwTerminate();
return -1;
}
//显示窗口
glfwMakeContextCurrent(window); //设置回调,当窗口大小调整后将调用该回调函数
glfwSetFramebufferSizeCallback(window, framebuffer_size_callback); // glad初始化
if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress))
{
printf("加载失败");
return -1;
} // 使用循环达到循环渲染效果
while (!glfwWindowShouldClose(window))
{
//自定义输入事件
processInput(window);
//交互缓冲区,否则显示空白
glfwSwapBuffers(window);
//输入输出事件,否则无法对窗口进行交互
glfwPollEvents();
} //终止渲染 关闭并清理glfw本地资源
glfwTerminate();
return 0;
}

如图所示,搭建成功,可以正常运行

OpenGL学习(1)—— 测试OpenGL环境是否搭建成功的更多相关文章

  1. JAVA学习:maven开发环境快速搭建

    转自:http://tech.it168.com/a2011/1204/1283/000001283307.shtml 最近,开发中要用到maven,所以对maven进行了简单的学习.因为有个mave ...

  2. Activiti工作流框架学习(一)——环境的搭建和数据表的了解

    一.什么是工作流 工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档.信息或任务的过程自动进行,从而实现 ...

  3. 02LaTeX学习系列之---TeX环境的搭建

    目录 02Latex的下载与安装及其编译IDE 目录 前言 (一)Tex Live的下载 1. Tex Live官方下载网站: (二)TeXStudio 1.TeXStudio官网下载 2.TeXSt ...

  4. python学习第一天_环境的搭建

    Python linux环境的安装: 1.https://www.python.org/ftp/python/ 大家可以在这里下载自己所需的linux下的版本 ,这里我下载的2.6.6版本: 2.在C ...

  5. OpenGL学习 Our First OpenGL Program

    This shows you how to create the main window with the book’s application framework and how to render ...

  6. android开发学习---linux下开发环境的搭建&& android基础知识介绍

    一.配置所需开发环境 1.基本环境配置 JDK 5或以上版本(仅有JRE不够) (http://www.oracle.com/technetwork/java/javase/downloads/ind ...

  7. Hadoop学习---Eclipse中hadoop环境的搭建

    在eclipse中建立hadoop环境的支持 1.需要下载安装eclipse 2.需要hadoop-eclipse-plugin-2.6.0.jar插件,插件的终极解决方案是https://githu ...

  8. hadoop学习(一)环境的搭建

    1.安装几台Linux虚拟机.安装的过程就不赘述了,网上教程很多.win7系统上装了一个VMWare,因为一些原因,VMWare版本不是最新的,是VMWare7.1版本,由于VMWare版本不高,所以 ...

  9. Angular学习日记(一) 开发环境的搭建

    从看视频到自己尝试,总会走很多的弯路才能成功. 首先:装最新版的nodejs. 第一种:使用npm安装 首先设置taobao镜像,npm config set registry https://reg ...

随机推荐

  1. GK_Zone与GK_CM的区别

    北京54坐标系3度投影带是从东经1度30秒经线开始,按经差3度为一个投影带自西向东划分,全球共分120个投影带.为了便于地形图的测量作业,在高斯-克吕格投影带内布置了平面直角坐标系统,具体方法是,规定 ...

  2. sourceTree安装和使用(windows)

    SourceTree的简介   SourceTree 是 Windows 和Mac OS X 下免费的 Git 和 Hg 客户端,拥有可视化界面,容易上手操作.同时它也是Mercurial和Subve ...

  3. 复杂的sql参考(3)

    SELECT apply.assets_code, apply.loan_apply_code, cust.cust_name, cust.id_no, cust.mobile, platform.p ...

  4. 微信公众号开发 token 验证程序

    <?php traceHttp(); define("TOKEN", "gmll001"); $wechatObj = new wechatCallbac ...

  5. celery 分布式异步任务框架(celery简单使用、celery多任务结构、celery定时任务、celery计划任务、celery在Django项目中使用Python脚本调用Django环境)

    一.celery简介: Celery 是一个强大的 分布式任务队列 的 异步处理框架,它可以让任务的执行完全脱离主程序,甚至可以被分配到其他主机上运行.我们通常使用它来实现异步任务(async tas ...

  6. hadoop2.x大数据视频教程(十二天学会)

  7. PHP 输入输出流 php://input 获取表单中2个重名name的值

    PHP 输入输出流 php://input   获取表单中2个重名name的值 <?php // PHP有一种"所有IO都是流"的说法. // 压缩流参考 https://w ...

  8. DEDE5.5招聘模板

    <channel:id>18</channel:id> <channel:nid>zhaopin</channel:nid> <channel:t ...

  9. C# vb .net图像合成-多图片叠加合成

    在.net中,如何简单快捷地实现图像合成呢,比如合成文字,合成艺术字,多张图片叠加合成等等?答案是调用SharpImage!专业图像特效滤镜和合成类库.下面开始演示关键代码,您也可以在文末下载全部源码 ...

  10. 静态工具类注入service的方法

    http://blog.sina.com.cn/s/blog_6e2d53050102wl3x.html