以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. 前端构建和模块化工具-coolie

    [前言] 假设你之前用过前端模块化工具:seajs.requirejs. 用过前端构建工具grunt.gulp, 而且感到了一些不方便和痛苦,那么你能够试试coolie [coolie] 本文不是一篇 ...

  2. excel宏整理

    工作以后发现excel很强大,用好excel已经成功工作中很重要的一部分内容,最近写了一些宏, 整理如下: 根据excel生成sql脚本的sc_template Sub GenSCTemplateFi ...

  3. .NET Out Of Memory Exception - Used 1.3GB but have 16GB installed

    I am getting an Out Of Memory exception in my c# application when the memory usage for the applicati ...

  4. 在后台运行rtorrent

    本来一直是用transmission做PT的客户端的,但是transmission的功能实在是太弱了,web-gui显示的信息也实在是太有限.在别人的推荐下,总算下定决心换rtorrent+wtorr ...

  5. Java中使用正则表达式获取网页中所有图片的路径

    public static List<String> getImageSrc(String htmlCode) { List<String> imageSrcList = ne ...

  6. docker 容器间网络配置

    创建一个docker容器,docker系统会自动为该容器分配一个ip地址,通常是172.17开头. 我们可以在主机上用 docker inspect 命令 或者进入容器用ifconfig命令来查看容器 ...

  7. 完全定制UITabBarViewController

    完全定制UITabBarViewController 效果   源码 https://github.com/YouXianMing/iOS-Project-Examples 中的 TotalCusto ...

  8. linux find 10天内改动过的文件

    find . -name "*.h" -mtime -10 -type f -print find . -regex ".*\.\(c\|h\)" -mtime ...

  9. MYSQL中group_concat有长度限制!默认1024(转载)

    在mysql中,有个函数叫“group_concat”,平常使用可能发现不了问题,在处理大数据的时候,会发现内容被截取了,其实MYSQL内部对这个是有设置的,默认不设置的长度是1024,如果我们需要更 ...

  10. C#零基础入门03:打老鼠初级

    一:在源码管理器中打开VS 注意,下文这样的打开方式是在 TFS 的源码服务器中打开解决方案.如果我们使用 SVN,则直接在硬盘上打开解决方案就可以了. 打开VS: 然后按上图中的步骤1和2(双击2处 ...