美文网首页
Xcode如何搭建OpenGL开发环境

Xcode如何搭建OpenGL开发环境

作者: 一叶知秋0830 | 来源:发表于2020-01-03 10:57 被阅读0次

    首先要说明一下我的开发环境,Mac系统是macOS Catalina 10.15.1版本,Xcode是11.2.1版本,其他开发环境没有测试过,不保证按照这个步骤来有没有问题。

    1. 下载资源文件

    下载的OpenGL资源文件(链接:https://pan.baidu.com/s/1ksFQ_hWnt2mZRlrpOPByvg 密码:ou4n),解压后里面有个include文件夹和一个libGLTools.a文件。

    2. 创建工程并导入资源文件

    首先在Xcode中创建新工程,工程选择macOS--App,如下图所示。

    WX20191207-225229.png
    创建好工程后将工程中的AppDelegate.hAppDelegate.m两个文件删掉,然后将main.m文件名改为main.cpp,再添加OpenGL.frameworkGLUT.framework2个系统库。如下图所示。
    WX20191207-214421.png
    然后将下载的资源文中的include文件夹拖入工程(勾选Copy items if needed),再将资源文件中的libGLTools.a文件拖入Frameworks文件夹中,同样勾选Copy items if needed。操作完成后工程目录如下所示: WX20191207-223502.png

    3. 测试

    环境搭建好后编写代码测试一下。将main.cpp文件中的代码替换成如下代码(通过OpenGL绘制一个三角形的代码)。然后运行程序就可以看到绘制的图像了。

    #include "GLTools.h"
    #include "GLShaderManager.h"
    #include "glew.h"
    #include <GLUT/GLUT.h>
    
    GLBatch myBatch;
    GLShaderManager shaderManager;
    
    void ChangeSize(int w,int h){
        glViewport(0,0,w,h);
    }
    
    void SetupRC(){
        glClearColor(0.0f, 0.8f, 0.5f, 1.0f);
        
        shaderManager.InitializeStockShaders();
        
        GLfloat verts[] = {
            -0.25f,0.0f,0.0f,
            0.25f,0.0f,0.0f,
            0.0f,0.5f,0.0f
        };
        
        myBatch.Begin(GL_TRIANGLES, 3);
        myBatch.CopyVertexData3f(verts);
        myBatch.End();
    }
    
    void RenderScene(){
        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT|GL_STENCIL_BUFFER_BIT);
        
        GLfloat color[] = {0.8f,0.3f,0.0f,1.0f};
        
        shaderManager.UseStockShader(GLT_SHADER_IDENTITY,color);
        
        myBatch.Draw();
        
        glutSwapBuffers();
    }
    
    int main(int argc, char * argv[]) {
        
        gltSetWorkingDirectory(argv[0]);
        
    //    glutInit(&argc, argv);
        glutInit(&argc, argv);
        
        glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH | GLUT_STENCIL);
        
        glutInitWindowSize(800, 600);
        
        glutCreateWindow("绘制三角形");
    
        glutReshapeFunc(ChangeSize);
    
        glutDisplayFunc(RenderScene);
        
        GLenum status = glewInit();
        if (GLEW_OK != status) {
            
            printf("GLEW Error:%s\n",glewGetErrorString(status));
            return 1;
            
        }
        SetupRC();
        
        glutMainLoop();
    
        return 0;
    }
    
    
    WX20191207-223835.png

    相关文章

      网友评论

          本文标题:Xcode如何搭建OpenGL开发环境

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