首页 > 代码库 > 以sb7code为基础创建一个基本的OpenGL项目

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

?

以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项目