GLFW+GLAD OpenGL Mac开发环境搭建
前言
- OpenGL 是什么?The Industry Standard for High Performance Graphics 这是官方解释。说白了他就是一套标准接口。对,是接口,并没有实现具体的代码。
- GLFW 是什么?基于上面的原因,也就清楚了,GLFW就是一种OpenGL的实现。所以开发OpenGL,就可以使用GLFW
- GLAD 是什么?也是由于OpenGL是由各个公司自己实现的方案,所以各个实现的细节不一致。因为OpenGL只是一个标准/规范,具体的实现是由驱动开发商针对特定显卡实现的。由于OpenGL驱动版本众多,它大多数函数的位置都无法在编译时确定下来,需要在运行时查询。所以任务就落在了开发者身上,开发者需要在运行时获取函数地址并将其保存在一个函数指针中供以后使用。GLAD可以屏蔽平台之间API的差异。我感觉类似Java的虚拟机的角色。
GLFW安装
编译安装
- 从官网下载源代码包:http://www.glfw.org/download.html 我是直接从github下载的(https://github.com/glfw/glfw)
- 编译
cd glfw-master
cmake .
# 默认是编译静态库,如果要编译动态库则 cmake -DBUILD_SHARED_LIBS=ON .
make
make install
最后会看到,说明编译安装成功。
Install the project...
-- Install configuration: ""
-- Installing: /usr/local/include/GLFW
-- Installing: /usr/local/include/GLFW/glfw3.h
-- Installing: /usr/local/include/GLFW/glfw3native.h
-- Installing: /usr/local/lib/cmake/glfw3/glfw3Config.cmake
-- Installing: /usr/local/lib/cmake/glfw3/glfw3ConfigVersion.cmake
-- Installing: /usr/local/lib/cmake/glfw3/glfw3Targets.cmake
-- Installing: /usr/local/lib/cmake/glfw3/glfw3Targets-noconfig.cmake
-- Installing: /usr/local/lib/pkgconfig/glfw3.pc
-- Installing: /usr/local/lib/libglfw3.a
配置Xcode
在mac上默认开发工具是xcdoe,所以下面展示下xcode的配置。理论上,GLFW的使用跟IDE是无关的,所以其他IDE应该也是可以配置的。
配置项目的Build Settings:
Other Linker Flags 为
-lgfw3Library Search Paths 的 Debug 和 Release 分别加上
/usr/local/lib/Header Search Paths 加上
/usr/local/include/
添加库,打开项目的Build Phases
在 Link Binary With Libraries 中添加:
Cocoa
OpenGL
IOKit
CoreVideo
到此GLFW的开发环境已经配置完毕,可以开始OpenGL的开发了。
GLAD 配置
在线配置

选3.3版本,generate就可以。

如上图,把glad解压以后,把include里面的2个文件夹放入/usr/local/include 下面。
//
// main.m
// GlfwDemo
//
// Created by banma-087 on 2019/8/21.
// Copyright © 2019 Deman. All rights reserved.
// #include <glad/glad.h>
#include <GLFW/glfw3.h>
#include <stdio.h>
#include <stdlib.h>
#include <iostream> void framebuffer_size_callback(GLFWwindow* window,int width,int height);
void processInput(GLFWwindow* window); int main(int argc, const char * argv[]) {
glfwInit();
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, );
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, );
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
#ifdef __APPLE__
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); // uncomment this statement to fix compilation on OS X
#endif GLFWwindow* window = glfwCreateWindow(, , "LearnOpenGL", NULL, NULL);
if(window == NULL){
std::cout << "fail to create window" <<std::endl;
glfwTerminate();
return -;
} glfwMakeContextCurrent(window); if(!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)){
std::cout << "Failed to initialize GLAD" << std::endl;
return -;
} glViewport(,,,);
glfwSetFramebufferSizeCallback(window, framebuffer_size_callback); while (!glfwWindowShouldClose(window)) { processInput(window);
glClearColor(0.2f,0.3f,0.3f,1.0f);
glClear(GL_COLOR_BUFFER_BIT); glfwSwapBuffers(window);
glfwPollEvents();
} glfwTerminate();
return ;
} void framebuffer_size_callback(GLFWwindow* window,int width,int height){
glViewport(,,width,height);
} void processInput(GLFWwindow* window){
if(glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS){
glfwSetWindowShouldClose(window, true);
}
}
这个时候,我们通过上述代码,生成一个页面。
效果如下:

至此,整个OpenGL的环境配置完成了。
参考:
https://www.glfw.org/docs/latest/quick.html
GLFW+GLAD OpenGL Mac开发环境搭建的更多相关文章
- 1.OpenGL mac开发环境搭建记录
1.安装GLEW 和GLFW,转摘至:https://www.cnblogs.com/pretty-guy/p/11357793.html 2.开始测试,整个工程报错,关键信息如下: code sig ...
- OPENGL学习【一】VS2008开发OPENGL程序开发环境搭建
1.VS2008工具自行在网上下载安装,现只提供VS2008开发工具中配置OPENGL环境的详细步骤.开发包及编译工具会在下方一并放出链接. 2.打开CMake的工具,主要的配置信息如下,按照数字顺序 ...
- Mac开发环境搭建
参考文档一:Mac 开发者常用的工具 参考文档二:高效 MacBook 工作环境配置 IntelliJ IDEA 简体中文专题教程 IntelliJ IDEA 相关技巧视频 IntelliJ IDEA ...
- mac开发环境搭建篇(2)--brew与mysql
[brew]:参考 https://www.cnblogs.com/zoulifeng2017/p/7514139.html 安装brew: 终端执行:/usr/bin/ruby -e "$ ...
- 【游戏开发】基于VS2017的OpenGL开发环境搭建
一.简介 最近,马三买了两本有关于“计算机图形学”的书籍,准备在工作之余鼓捣鼓捣图形学和OpenGL编程,提升自己的价值(奔着学完能涨一波工资去的).俗话说得好,“工欲善其事,必先利其器”.想学习图形 ...
- (一)Hololens Unity 开发环境搭建(Mac BOOTCAMP WIN10)
(一)Hololens Unity 开发环境搭建(Mac BOOTCAMP WIN10) 系统要求 64位 Windows 10 除了家庭版的 都支持 ~ 64位CPU CPU至少是四核心以上~ 至少 ...
- Hadoop-2.8.0 开发环境搭建(Mac)
Hadoop是一个由Apache基金会开发的分布式系统架构,简称HDFS,具有高容错性.可伸缩性等特点,并且可以部署在低配置的硬件上:同时,提供了高吞吐量的数据访问性能,适用于超大数据集的应用程序,以 ...
- XE6移动开发环境搭建之IOS篇(7):在Mac OSX 10.8中安装XE6的PAServer(有图有真相)
XE6移动开发环境搭建之IOS篇(7):在Mac OSX 10.8中安装XE6的PAServer(有图有真相) 2014-08-22 21:06 网上能找到的关于Delphi XE系列的移动开发环境的 ...
- vue开发环境搭建Mac版
一.前言 要做一个移动端app,面对webapp最流行的三个技术React,angular,vue,三选一,如何选,可参考blog移动app技术选型,react,angular, vue, 下面是对 ...
随机推荐
- mysql8.0.15创建数据库和是删除数据库及删除用户
---恢复内容开始--- 版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons) 1.首先安装mysql8.0.15 2.Mys ...
- Codeforces比赛注意事项(英语比较好,能翻译题目的可以跳过此文章)
由题目可知,这篇文章是讲翻译文章的. 当然不是教英语啦 其实cf的比赛对于本蒟蒻最大的挑战就是翻译题目啦 所以我比赛时只能靠各种翻译器去无耻地翻译,然后读中文. 目前较好的翻译器有:百度,谷歌,有道. ...
- C语言编程入门之--第二章编译环境搭建
第二章 编译环境搭建 导读:C语言程序如何工作,首先需要编译链接成可执行文件,然后就可以运行在不同的环境中,这个“环境”的意思就是比如说,电脑,手机,路由器,蓝牙音箱等等智能设备中,其中编译器启到了关 ...
- github项目readme.md文件如何编写
参考链接:http://blog.csdn.net/Bone_ACE/article/details/48318675
- opencv编译
1. clone源码 https://github.com/opencv/opencv 2. 安装cmake 3. cmake配置的时候,输出目录需要另外设置一个目录,不可以放到源码目录 4. 用cm ...
- 【iOS】PLA 3.3.12
发件人 Apple Program License Agreement PLA We found that your app uses the Advertising Identifier but d ...
- codeforces 318 A.Even Odds B.Sereja and Array
A.Even Odds 给你n和k, 把从1到n先排奇数后排偶数排成一个新的序列,输出第k个位置的数. 比如 10 3 拍好后就是 1 3 5 7 9 2 4 6 8 10 第3个数是5. // ...
- RGB颜色 三者都是0为黑色而255是白色 解释
问题: RGB颜色 都是0为黑色而255是白色 与日常生活的黑色白色差距怎么那么大,(与物理学中的黑色吸收光是否相悖)而且为什么要这样定义呢? 链接:https://www.zhihu.com/que ...
- linux字符设备驱动中内核如何调用驱动入口函数 一点记录
/* 内核如何调用驱动入口函数 ? *//* 答: 使用module_init()函数,module_init()函数定义一个结构体,这个结构体里面有一个函数指针,指向first_drv_init() ...
- .NET中的值类型与引用类型
.NET中的值类型与引用类型 这是一个常见面试题,值类型(Value Type)和引用类型(Reference Type)有什么区别?他们性能方面有什么区别? TL;DR(先看结论) 值类型 引用类型 ...