Xcode如何搭建OpenGL开发环境

2020-01-03  本文已影响0人  一叶知秋0830

首先要说明一下我的开发环境,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
上一篇下一篇

猜你喜欢

热点阅读