以sb7code为基础创建一个基本的OpenGL项目
以sb7code为基础创建一个基本的OpenGL项目
- 从github上面下载sb7code代码:
- 打开HOWTOBUILD.TXT(在 GITHUB网页上直接打开格式比较友好).

根据这个文档中说的,在本地编译第一步中下载的sb7code代码,编译是为了得到我们需要的.lib文件。
- 在VS2013中建一个c++的空项目。

- 将红框中所示的这些文件和文件夹拷贝到当前项目目录下,或者一个公共目录下:
(其中.h文件都是在sb7code目录下能找到的,.lib文件是我们第二步编译出来的。)

- 将包含文件所在的路径添加到项目的额外包含路径中。

- 将lib所在的路径加入到"额外库目录"中。
(里面应该是lib,而不是../lib, 因为这个图是我从别的项目中截的,不要被误导)

- 在链接器选项的输入中添加需要的.lib文件,注意要包含opengl32.lib,编译器会从system目录去找这个lib文件。
(截图里面不应该带lib/前缀了,因为上一步已经把lib目录加入到额外库目录中了。这个图是从别的项目中截的,不要被误导。)
(截图不太清楚,这里只需要额外添加opengl32.lib;glfw3_d.lib;sb7_d.lib;这三个lib就可以了。)

- 在项目中添加一个.cpp文件。添加如下的代码:
|
#include
// Derive my_application from sb7::application class { public: void init() { static
sb7::application::init();
info.flags.fullscreen = false; memcpy(info.title, title, sizeof(title)); }
// Our rendering function void render(double { // Simply clear the window with red static glClearBufferfv(GL_COLOR, 0, red); } }; // Our one and only instance of DECLARE_MAIN DECLARE_MAIN(my_application); |
- 如果当前机器上的OpenGL版本低,可能需要修改sb7.h中的代码,将majorVerion改成3, 而不是原来的4.
详情见: http://www.cnblogs.com/time-is-life/p/6394239.html

- 编译可能不通过,那是因为有的预编译宏没有定义,确保如下的预编译宏定义了。(这一步的原因是sb7code和GLFW是跨平台的,需要定义预编译宏来指示项目在Windows下编译)

- 一切就绪,F5运行一下,出来了!

完整代码见 BasicOpenGLProject, 可以用它作为一个基本项目来创建其他的OpenGL项目。
以sb7code为基础创建一个基本的OpenGL项目的更多相关文章
- 通过beego快速创建一个Restful风格API项目及API文档自动化
通过beego快速创建一个Restful风格API项目及API文档自动化 本文演示如何快速(一分钟内,不写一行代码)的根据数据库及表创建一个Restful风格的API项目,及提供便于在线测试API的界 ...
- 通过beego快速创建一个Restful风格API项目及API文档自动化(转)
通过beego快速创建一个Restful风格API项目及API文档自动化 本文演示如何快速(一分钟内,不写一行代码)的根据数据库及表创建一个Restful风格的API项目,及提供便于在线测试API的界 ...
- 规范化创建一个vs2017 Mvc框架项目
vs2107 + dapper + MiniUi 标准化分层封装使 3.1 规范化创建一个vs2017 Mvc框架项目 此时创建的项目勾选 添加单元测试. 添加一个类库,主要用于实体类操作,类库名称 ...
- 创建一个简单的Django项目
1.首先,启动pycharm,点击File->New Project,如下图所示. 2.在New Project对话框中,选择Django,在Location中设置项目路径以及项目名称,在App ...
- 简单创建一个SpringCloud2021.0.3项目(四)
目录 1. 项目说明 1. 版本 2. 用到组件 3. 功能 2. 上三篇教程 3. 日志处理 1. 创建日志公共模块 2. Eureka引入日志模块 4. 到此的功能代码 5. 注册中心换成naco ...
- 简单创建一个SpringCloud2021.0.3项目(三)
目录 1. 项目说明 1. 版本 2. 用到组件 3. 功能 2. 上俩篇教程 3. Gateway集成sentinel,网关层做熔断降级 1. 超时熔断降级 2. 异常熔断 3. 集成sentine ...
- 简单创建一个SpringCloud2021.0.3项目(二)
目录 1. 项目说明 1. 版本 2. 用到组件 3. 功能 2. 上一篇教程 3. 创建公共模块Common 4. 网关Gateway 1. 创建Security 2. Security登陆配置 3 ...
- 简单创建一个SpringCloud2021.0.3项目(一)
目录 1. 项目说明 1. 版本 2. 用到组件 3. 功能 2. 新建父模块和注册中心 1. 新建父模块 2. 新建注册中心Eureka 3. 新建配置中心Config 4. 新建两个业务服务 1. ...
- 使用Maven创建一个Spring MVC Web 项目
使用Maven创建java web 项目(Spring MVC)用到如下工具: 1.Maven 3.2 2.IntelliJ IDEA 13 3.JDK 1.7 4.Spring 4.1.1 rele ...
随机推荐
- MSDN WinUSB Example
The WinUSB user-mode library uses device interface classes to communicate with the kernel-mode USB s ...
- LINUX 内核守护进程
http://alfred-sun.github.io/blog/2015/06/18/daemon-implementation/
- Java Calendar,Date,DateFormat,TimeZone,Locale等时间相关内容的认知和使用(3) Date
本章主要介绍Date类,并通过示例学习如何使用它.最后,讲解一下UTC.GMT和时区的关系. Date 介绍 Date 定义 public class Date implements java.io. ...
- 检查radio/checkbox是否至少选择一项
//---------------------------------------------------------- // 功能:检查radio/checkbox是否至少选择一项 // 参数: / ...
- Ubuntu下 ssh : connect to host localhost port 22:Connection refused
Ubuntu下测试ssh时使用ssh localhost 命令,出现错误提示connect to host localhost port 22:Connection refused 造成这个错误的原因 ...
- [LNU.Machine Learning.Question.1]梯度下降方法的一些理解
曾经学习machine learning,在regression这一节,对求解最优化问题的梯度下降方法,理解总是处于字面意义上的生吞活剥. 对梯度的概念感觉费解?到底是标量还是矢量?为什么沿着负梯度方 ...
- parity 钱包
数据快照路径 C:\Users\admin\AppData\Local\Parity\Ethereum\chains\ethereum\db\906a34e69aec8c0d\snapshot\res ...
- 《Excel效率手册:早做完,不加班》
<Excel效率手册:早做完,不加班> 基本信息 作者: 陈锡卢 杨明辉 出版社:清华大学出版社 ISBN:9787302350743 上架时间:2014-5-8 出版日期:2014 ...
- Svg.Js 父类的基础操作
一.SVG.Doc 创建SVG文档 var draw = SVG('drawing') <div id="svg1"></div> <script&g ...
- HTML5 Geolocation API地理定位整理(一)
HTML5 Geolocation API 用于获得用户的地理位置. 鉴于该特性可能侵犯用户的隐私,除非用户同意,否则用户位置信息是不可用的. 浏览器支持 Internet Explorer 9+, ...