美文网首页
openGL环境搭建

openGL环境搭建

作者: 2012年低调 | 来源:发表于2018-02-05 18:09 被阅读0次

    一、准备资源

        1.CLTools

        2.glew

        3.libGLTools.a

    点击下载资源

    二、开始配置openGL环境

       1、Xcode -> macOS -> Cocoa Application

    创建一个mac程序

        2、在project->Build Phases->Link Binary With Libraries项中添加OpenGl.framework 和GLUT.framework两个系统库

    导入两个系统库

    3、添加 CLTools.h,glew.h

          方法1:

    添加文件到工程

    选择下载好的资源添加

        将libGLTools.a库放到Frameworks下

    完成导入到工程

        4、删除工程中多余文件main.m、AppDelegate.h、AppDelegate.m、           ViewController.h、ViewController.m

        5、创建main.cpp文件

    创建c++文件

    创建main.m文件,不需要创建.h文件,去掉勾

    创建main文件

        6、复制以下代码到main.cpp中

    #include "GLTools.h"#includeGLBatch triangleBatch;

    GLShaderManager shaderManager;

    //窗口大小改变时接受新的宽度和高度,其中0,0代表窗口中视口的左下角坐标,w,h代表像素

    void ChangeSize(int w,int h) {

        glViewport(0,0, w, h);

    }

    //为程序作一次性的设置

    void SetupRC() {

        //设置背影颜色

        glClearColor(0.0f,0.0f,1.0f,1.0f);

        //初始化着色管理器

        shaderManager.InitializeStockShaders();

        //设置三角形,其中数组vVert包含所有3个顶点的x,y,笛卡尔坐标对。

        GLfloat vVerts[] = {

            -0.5f,0.0f,0.0f,

            0.5f,0.0f,0.0f,

            0.0f,0.5f,0.0f,

        };

        //批次处理

        triangleBatch.Begin(GL_TRIANGLES,3);

        triangleBatch.CopyVertexData3f(vVerts);

        triangleBatch.End();

    }

    //开始渲染

    void RenderScene(void) {

        //清除一个或一组特定的缓冲区

        glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT|GL_STENCIL_BUFFER_BIT);

        //设置一组浮点数来表示红色

        GLfloat vRed[] = {1.0f,0.0f,0.0f,1.0f};

        //传递到存储着色器,即GLT_SHADER_IDENTITY着色器,这个着色器只是使用指定颜色以默认笛卡尔坐标第在屏幕上渲染几何图形

        shaderManager.UseStockShader(GLT_SHADER_IDENTITY,vRed);

        //提交着色器

        triangleBatch.Draw();

        //将在后台缓冲区进行渲染,然后在结束时交换到前台

        glutSwapBuffers();

    }

    int main(int argc,char* argv[]) {

        //设置当前工作目录,针对MAC OS X

        gltSetWorkingDirectory(argv[0]);

        //初始化GLUT库

        glutInit(&argc, argv);

        /*初始化双缓冲窗口,其中标志GLUT_DOUBLE、GLUT_RGBA、GLUT_DEPTH、GLUT_STENCIL分别指

        双缓冲窗口、RGBA颜色模式、深度测试、模板缓冲区*/

        glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGBA|GLUT_DEPTH|GLUT_STENCIL);

        //GLUT窗口大小,标题窗口

        glutInitWindowSize(800,600);

        glutCreateWindow("Triangle");

        //注册回调函数(这两个函数有一个不注册,窗口就弹不起来,因为在启动的一瞬间也是需要调用的,以后窗口或界面调用也会更改)

        glutReshapeFunc(ChangeSize);

        glutDisplayFunc(RenderScene);

        //驱动程序的初始化中没有出现任何问题。

        GLenum err = glewInit();

        if(GLEW_OK != err) {

            fprintf(stderr,"glew error:%s\n",glewGetErrorString(err));

            return 1;

        }

        //调用SetupRC

        SetupRC();

        glutMainLoop();

        return 0;

    }

        7、将文件<>系统引入改为""普通引入,运行

    成功运行起来

        到此openGL环境搭建就完成了。

      补充:个人在运行时报了以下错误

    报错截图

    找不到gltools库,重新删除再添加就可以了

    相关文章

      网友评论

          本文标题:openGL环境搭建

          本文链接:https://www.haomeiwen.com/subject/foyizxtx.html