码迷,mamicode.com
首页 > 其他好文 > 详细

OpenGL教程(1)——准备

时间:2017-03-25 16:37:45      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:它的   文件夹   链接库   文件   lib   buffer   扩展   ide   程序   

在正式开始学习OpenGL之前,我们需要先配置好OpenGL环境。

 

IDE

 

首先我们需要选择一个IDE。支持OpenGL的IDE有很多,这里我们选择Visual Studio 2015(Windows平台)作为我们的IDE。

 

GLFW

 

OpenGL是一个图形库,而要画图,就需要先创建一个窗口。不幸的是,OpenGL没有提供创建窗口的功能,必须自己创建窗口。而创建窗口在每一个操作系统上都不同(在Windows上代码量也不少)。因此我们将会使用一个窗口库来简化这一过程。常用的OpenGL窗口库有GLUT、GLFW和SDL。这里我们选择GLFW。

 

GLFW可以从它的官方网站上下载。你可以下载已经编译好的binaries(如果里面有符合你的编译器的),也可以自己编译(需要使用CMake)。这里我使用的GLFW版本是3.2.1。

 

这里以直接下载GLFW为例,关于自己编译以后再讲。

 

如果下载已经编译好的binaries,解压并打开,找到含有针对你的编译器的binary的文件夹(对于VS2015,文件夹名称是lib-vc2015)。include/路径下有glfw3.h,这个是我们会使用到的GLFW头文件。lib/路径下有相应的静态链接库和动态链接库(Windows下,两种库的扩展名分别是.lib和.dll,别的操作系统我就不知道了)。Windows下,lib/中有glfw3.lib,glfw3dll.lib和glfw3.dll。

 

建议将本教程使用的所有的头文件和库文件分别整理到两个文件夹中(我把它们命名为include和lib)。

 

GLEW

 

除了GLFW,我们还需要一个GLEW库。Visual Studio对于OpenGL(gl.h)只支持到1.1,而本教程要学的是OpenGL 3.3。但是,OpenGL是由显卡支持的,显卡已经提供了我们需要的OpenGL函数。因此就需要在运行程序时动态地获取函数地址。在Windows下,以glGenBuffers为例,大概是这样的:

 

#include <windows.h>
#include <GL/gl.h>
...
// define the functions‘ prototypes
typedef void * (*WGLGETPROCADDRESS)(const char *);
typedef void (*GLGENBUFFERS)(GLsizei, GLsizei *);

// load opengl32.dll and query the address of wglGetProcAddress
HMODULE hDll = LoadLibrary("opengl32.dll");
WGLGETPROCADDRESS wglGetProcAddress = (WGLGETPROCADDRESS)GetProcAddress(hDll, "wglGetProcAddress");
FreeLibrary(hDll);
// query the OpenGL functions‘ addresses GLGENBUFFERS glGenBuffers = (GLGENBUFFERS)wglGetProcAddress("glGenBuffers"); // now the function can be used as normal GLuint vbo; glGenBuffers(1, &vbo);

 

OpenGL教程(1)——准备

标签:它的   文件夹   链接库   文件   lib   buffer   扩展   ide   程序   

原文地址:http://www.cnblogs.com/collectionne/p/6617364.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!