以sb7code为基础创建一个基本的OpenGL项目

 

  1. 从github上面下载sb7code代码:

    https://github.com/openglsuperbible/sb7code

  2. 打开HOWTOBUILD.TXT(在 GITHUB网页上直接打开格式比较友好).

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

  3. 在VS2013中建一个c++的空项目。

  4. 将红框中所示的这些文件和文件夹拷贝到当前项目目录下,或者一个公共目录下:

    (其中.h文件都是在sb7code目录下能找到的,.lib文件是我们第二步编译出来的。)

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

  6. 将lib所在的路径加入到"额外库目录"中。

    (里面应该是lib,而不是../lib, 因为这个图是我从别的项目中截的,不要被误导)

  7. 在链接器选项的输入中添加需要的.lib文件,注意要包含opengl32.lib,编译器会从system目录去找这个lib文件。

    (截图里面不应该带lib/前缀了,因为上一步已经把lib目录加入到额外库目录中了。这个图是从别的项目中截的,不要被误导。)

    (截图不太清楚,这里只需要额外添加opengl32.lib;glfw3_d.lib;sb7_d.lib;这三个lib就可以了。)

  8. 在项目中添加一个.cpp文件。添加如下的代码:

#include
"sb7.h"

 

 

// Derive my_application from sb7::application

class
my_application : public sb7::application

{

public:

    void init()

    {

        static
const
char title[] = "OpenGL SuperBible - Simple Clear";

 

        sb7::application::init();

 

        info.flags.fullscreen = false;

        memcpy(info.title, title, sizeof(title));

    }

 

    // Our rendering function

    void render(double
currentTime)

    {

        // Simply clear the window with red

        static
const
GLfloat red[] = { 1.0f, 0.0f, 0.0f, 1.0f };

        glClearBufferfv(GL_COLOR, 0, red);

    }

};

// Our one and only instance of DECLARE_MAIN

DECLARE_MAIN(my_application);

 

  1. 如果当前机器上的OpenGL版本低,可能需要修改sb7.h中的代码,将majorVerion改成3, 而不是原来的4.

    详情见: http://www.cnblogs.com/time-is-life/p/6394239.html

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

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

     

    完整代码见 BasicOpenGLProject, 可以用它作为一个基本项目来创建其他的OpenGL项目。

以sb7code为基础创建一个基本的OpenGL项目的更多相关文章

  1. 通过beego快速创建一个Restful风格API项目及API文档自动化

    通过beego快速创建一个Restful风格API项目及API文档自动化 本文演示如何快速(一分钟内,不写一行代码)的根据数据库及表创建一个Restful风格的API项目,及提供便于在线测试API的界 ...

  2. 通过beego快速创建一个Restful风格API项目及API文档自动化(转)

    通过beego快速创建一个Restful风格API项目及API文档自动化 本文演示如何快速(一分钟内,不写一行代码)的根据数据库及表创建一个Restful风格的API项目,及提供便于在线测试API的界 ...

  3. 规范化创建一个vs2017 Mvc框架项目

    vs2107 + dapper + MiniUi 标准化分层封装使 3.1 规范化创建一个vs2017 Mvc框架项目 此时创建的项目勾选 添加单元测试. 添加一个类库,主要用于实体类操作,类库名称 ...

  4. 创建一个简单的Django项目

    1.首先,启动pycharm,点击File->New Project,如下图所示. 2.在New Project对话框中,选择Django,在Location中设置项目路径以及项目名称,在App ...

  5. 简单创建一个SpringCloud2021.0.3项目(四)

    目录 1. 项目说明 1. 版本 2. 用到组件 3. 功能 2. 上三篇教程 3. 日志处理 1. 创建日志公共模块 2. Eureka引入日志模块 4. 到此的功能代码 5. 注册中心换成naco ...

  6. 简单创建一个SpringCloud2021.0.3项目(三)

    目录 1. 项目说明 1. 版本 2. 用到组件 3. 功能 2. 上俩篇教程 3. Gateway集成sentinel,网关层做熔断降级 1. 超时熔断降级 2. 异常熔断 3. 集成sentine ...

  7. 简单创建一个SpringCloud2021.0.3项目(二)

    目录 1. 项目说明 1. 版本 2. 用到组件 3. 功能 2. 上一篇教程 3. 创建公共模块Common 4. 网关Gateway 1. 创建Security 2. Security登陆配置 3 ...

  8. 简单创建一个SpringCloud2021.0.3项目(一)

    目录 1. 项目说明 1. 版本 2. 用到组件 3. 功能 2. 新建父模块和注册中心 1. 新建父模块 2. 新建注册中心Eureka 3. 新建配置中心Config 4. 新建两个业务服务 1. ...

  9. 使用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 ...

随机推荐

  1. STM32F2x Is it possible to request multiple DMA streams with single request

    I want to setup an application, where a single trigger-factor (compare-match of a timer) shall reque ...

  2. C#Winform将WebBowser控件替换为Chrome内核

    摘要 由于最近要做一个浏览器式的软件,其中有不少地方需要使用到jQuery和BootStrap,但是在C#中,默认的WebBrowser控件默认使用的是IE的core,而低版本的IE在JS加载上总是容 ...

  3. linux C宏定义 转

    写好C语言,漂亮的宏定义很重要,使用宏定义可以防止出错,提高可移植性,可读性,方便性等等.下面列举一些成熟软件中常用得宏定义...... 1,防止一个头文件被重复包含 #ifndef COMDEF_H ...

  4. Delph 两个对立程序使用消息进行控制通信

    在实际应用中,总是会遇到两个独立的程序进行通信,其实通信的方式有好几种,比如进程间通信,消息通信. 项目中用到了此功能, 此功能用于锁屏程序, 下面把实现的流程和大家分享一下. 1. 在锁屏程序中,自 ...

  5. [EF Core]数据迁移(二)

    摘要 在实际项目中,大多都需要对业务逻辑以及操作数据库的逻辑进行分成操作,这个时候该如何进行数据的迁移呢? 步骤 上篇文章:EF Core数据迁移操作 比如,我们将数据上下文放在了Data层. 看一下 ...

  6. MyEclipse 2014 for Mac 在Yosemite怎樣安裝

    相信大家都在安裝MyEclipse 2014 for Mac時候會遇到提示虚拟内存为0,,无法安装...小弟找了解決方法...1. 先下載軟件及破解檔案.   http://pan.baidu.com ...

  7. python脚本从excel表到处数据,生成指定格式的文件

    #coding:gbk #导入处理excel的模块 import xlrd #定义哪些字段须要推断,仅仅支持时间字段 toSureColArray = ['CREATE_TIME','MODIFY_T ...

  8. 什么是.Net, IL, CLI, BCL, FCL, CTS, CLS, CLR, JIT

    什么是.NET? 起源:比尔盖茨在2000年的Professional Developers Conference介绍了一个崭新的平台叫作Next Generation Windows Service ...

  9. 用 setMessage 方法灵活复用 UIAlertView

  10. ArcGIS 10.2 链接64位Oracle数据库

    https://my.oschina.net/zctzl/blog/909541 来自:https://blog.csdn.net/LoveCarpenter/article/details/5954 ...