GLFW扩展库

一般OpenGL被认为是一个应用程序编程接口(Application Programming Interface, API),它包含了一系列可以操作图形、图像的方法。然而,OpenGL本身并不是一个API,仅仅是一个规范,由Khronos组织制定并维护。

OpenGL严格规定了每个函数该如何执行,以及它们该如何返回。至于内部具体每个函数是如何实现的,将由OpenGL库的开发者自行决定。因为OpenGL规范并没有规定实现的细节,具体的OpenGL库允许使用不同的实现,只要其功能和结果与规范相匹配。

早期的OpenGL使用立即渲染模式(也就是固定渲染管线),这个模式下绘制图形 很方便。OpenGL的大多数功能都被库隐藏起来,开发者很少能控制OpenGL如何进行计算。而开发者希望更多的灵活性。随着时间推移,规范越来越灵 活,开发者也能更多的控制绘图细节。立即渲染模式确实容易使用和理解,但是效率太低。因此从OpenGL3.2开始,规范书开始废弃立即渲染模式,推出核 心模式,这个模式完全移除了旧的特性。

在我们画出出色的效果之前,首先要做的就是创建一个OpenGL上下文(Context)和一个用于显示的窗口。然而,这些操作在每个系统上都是不一样 的,OpenGL有目的的抽象(Abstract)这些操作。这意味着我们不得不自己处理创建窗口,定义OpenGL上下文以及处理用户输入。幸运的是,有一些库已经提供了我们所需的功能,其中一部分是特别针对OpenGL的。这些库节省了我们书写平台相关代码的时间,提供给我们一个窗口和上下文用来渲染。最流行的几个库有GLUT,SDL,SFML和GLFW。

GLFW是一个专门针对OpenGL的C语言库,它提供了一些渲染物件所需的最低限度的接口。它允许用户创建OpenGL上下文,定义窗口参数以及处理用户输入。

GLFW可以从它们网站的下载页上获取。GLFW已经有针对Visual Studio 2012/2013的预编译的二进制版本和相应的头文件,但是为了完整性我们将从编译源代码开始,所以需要下载32位的源代码包

从源代码编译库可以保证生成的目标代码是针对你的操作系统和CPU的,而一个预编译的二进制代码并不保证总是适合。提供源代码的一个问题是不是每个人都用 相同的IDE来编译,因而提供的工程文件可能和一些人的IDE不兼容。所以人们只能从.cpp和.h文件来自己建立工程,这是一项笨重的工作。因此诞生了 一个叫做CMake的工具。

CMake是一个工程文件生成工具,可以使用预定义好的CMake脚本,根据用户的选择生成不同IDE的工程文件。这允许我们从GLFW源码里创建一个Visual Studio 2012工程文件。首先,我们需要从这里下载安装CMake。我们选择Win32安装程序。

一旦CMake安装成功,你可以选择从命令行或者GUI启动CMake,为了简易我们选择后者。CMake需要一个源代码目录和一个存放编译结果的目标文件目录。源代码目录我们选择GLFW的源代码的根目录,然后我们新建一个_build_文件夹来作为目标目录。

之后,点击Configure(设置)按钮,我们选择生成的目标平台为Visual Studio 11(因为Visual Studio 2012的内部版本号是11.0)。CMake会显示可选的编译选项,这里我们使用默认设置,再次点击Configure(设置)按钮,保存这些设置。保存之后,我们可以点击Generate(生成)按钮,生成的工程文件就会出现在你的build文件夹中。

build文件夹里可以找到GLFW.sln文件,用Visual Studio 2012打开。因为CMake已经配置好了项目所以我们直接点击Build Solution(构建解决方案)然后编译的结果glfw3.lib就会出现在src/Debug文件夹内。(注意我们现在使用的glfw的版本号为3.1)

生成库之后,我们需要让IDE知道库和头文件的位置。有两种方法:

  1. 找到IDE或者编译器的/lib/include文件夹,之后添加GLFW的include目录到/include里去,相似的将glfw3.lib添加到/lib里去。这不是推荐的方式,因为很难去追踪library/include文件夹,而且重新安装IDE/Compiler可能会导致这些文件丢失。
  2. 推荐的方式是建立一个新的目录包含所有的第三方库文件和头文件,并且在你的IDE/Compiler中指定这些文件夹。我个人使用一个单独的文件夹包含LibsInclude文件夹,在这里存放OpenGL工程用到的所有第三方库和头文件。这样我的所有第三方库都在同一个路径(并且应该在你的多台电脑间共享),然而要求是每次新建一个工程我们都需要告诉IDE/编译器在哪能找到这些文件

对于第一种方法,具体的位置可以参考这篇文章

完成上面步骤后,我们就可以使用GLFW创建我们的第一个OpenGL工程了!

时间: 2024-11-08 16:33:46

GLFW扩展库的相关文章

Github上比较流行的PHP扩展库项目

这里列出比较常用的PHP开源扩展库项目: swoole, C扩展实现的PHP异步并行网络通信框架,可以重新定义PHP.过去PHP只能做Web项目,现在有了Swoole.任意服务器端程序都可以用PHP来写. yaf,C扩展实现的高性能Web开发框架. php-webim,基于swoole实现的Web即时聊天工具,支持websocket+http comet长链接推送,可以发送文字内容和图片. react 使用PHP代码实现异步框架.如果说swoole是node.js的升级版,react.php就是

用 phpize 编译共享 PECL 扩展库

有时候不能用 pecl 安装命令.这可能是因为在防火墙后面,或者是因为想要安装的扩展库还没有 PECL 兼容的包,例如 SVN 中尚未发布的扩展库.如果要编译这种扩展库,可以用更底层的编译工具来手工进行编译. phpize 命令是用来准备 PHP 扩展库的编译环境的.下面例子中,扩展库的源程序位于 extname 目录中: $ cd extname $ phpize $ ./configure $ make # make install 成功的安装将创建 extname.so 并放置于 PHP

Centos中编辑php扩展库

今天需要在Centos中编译Exif库以便获取图片的exif信息,可在Linux中从来没有编译过扩展库呀,只好查资料了.发现是用phpize这个东东来编译扩展. 首先执行了下 php -i | grep config 看了下编译php的时候没有加上exif扩展. 那么第一步,当然是进入源码目录里面的Exif目录下面.然后再找到phpize的路径,phpize这个一般是安装完php后的目录下面的 cd /alidata/server/php-5.4/ext/exif /alidata/server

Python之安装第三方扩展库

PyPI 地址:https://pypi.python.org/pypi 如果你知道你要找的库的名字,那么只需要在右上角搜索栏查找即可. 1.pip安装扩展库 (1)安装最新版本的扩展库: cmd> pip install django (2)安装指定版本的扩展库: cmd> pip install django==1.9.7 (3)使用 pip 查看当前安装的库 cmd> pip show django (4)卸载库 cmd> pip  uninstall django 2.ta

下载python的各种扩展库

分享一个下载python扩展库的地址和方法: https://pypi.python.org/pypi/library名称 例如,要下载email模块,就输入:https://pypi.python.org/pypi/email 下载xlrd模块,输入https://pypi.python.org/pypi/xlrd,简单方便!

Entity Framework扩展库

可以nuget上直接安装这个包(不知道为啥ef5的扩展就是下不来),它的说明有点过时了,最新版本已经改用对IQueryable<T>的扩展,而不是DbSet<T>(已经标记为弃用),所以跟我一样有隔离癖好的就可以大胆使用了.下面介绍如何批量删除.更新.查询. 批量删除 本来我们需要这样删除 //EF原生的删除需要先取出entity然后remove context.Remove(context.Users.First(u=>u.Key==xxx); //如果要删除更多 fore

安装php扩展库

无法加载'pdo_mysql' ,因为需要pdo这个module.PHP Warning: Cannot load module 'pdo_mysql' because required module 'pdo' is not loaded in Unknown on line 0 步骤 1.进入源安装库下的扩展库ext再进入需要安装的扩展库里如mysql /usr/local/php/bin/phpizb测试 [[email protected] mysqlnd]# /usr/local/ph

laravel 5.1 添加第三方扩展库

laravel 5.1 添加第三方扩展库 时间:2015-09-07 19:20:34      阅读:1654      评论:0      收藏:0      [点我收藏+] 步骤一:确定你要放第三方库的目录,假设:app/libs,并在该目录下放置类文件common.php. 步骤二:找到根目录下的composer.json文件并打开,找到autoload-dev参数,添加"app/libs/common.php".如图: common.php代码: 步骤三:然后执行命令: ph

window下python 扩展库安装 使用第三方镜像源

0.前言 由于python的官方镜像位于国外,若使用pip或者easy_install安装第三方插件时或许会被限制,甚至连easy_install或pip也无法安装,例如在windows环境下运行ez_setup.py 安装easy_install,可能遇到下图这样尴尬的情况. 图1 运行ez_setup.py失败 遇到这种问题可以”转战“国内的第三方镜像,问题便可迎刃而解.例如豆瓣镜像——http://pypi.douban.com/simple/ 1.安装easy_install 先安装ea