01-OpenGL在Mac上的环境搭建

一、准备资料

OpenGL 00.png

二、搭建开始

1. 创建工程

OpenGL 01.jpg

2. 选择Cocoa App类型

OpenGL 02.png
OpenGL 03.png

3. 添加依赖库

OpenGL 04.png

4. 加入准备的库,配置路径

(1) 将下载好的 include 文件夹直接拖入项目工程中,将 libGLTools.a 静态库直接拖入到项目的 Frameworks 中。
(2) 在 Build Settings 中搜索 “Header search” ,在 Header Search Paths 添加上 include 的路径,不想敲的话直接把项目工程里的include文件夹拖过来就会出现路径。

OpenGL 05.png
OpenGL 06.png

5. 创建main.cpp

创建一个 c++ 类型的文件,命名为 main,创建的时候去掉勾选同时创建头文件的对勾。

OpenGL 07.png
OpenGL 08.png

6. 删除AppDelegate.hAppDelegate.mmain.mViewController.hViewController.m

OpenGL 09.png

三、运行测试代码

1.在main.cpp中加入下面的测试代码:

#include "GLShaderManager.h"
#include "GLTools.h"
#include <GLUT/GLUT.h>

GLShaderManager shaderManager;
GLBatch triangleBatch;

void changeSize(int w,int h)
{
    glViewport(0, 0, w, h);
}

void RenderScene(void)
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT|GL_STENCIL_BUFFER_BIT);
    GLfloat vRed[] = {1.0,0.0,0.0,1.0f};
    shaderManager.UseStockShader(GLT_SHADER_IDENTITY,vRed);
    triangleBatch.Draw();
    glutSwapBuffers();
}

void setupRC()
{
    glClearColor(0.98f, 0.40f, 0.7f, 1);
    shaderManager.InitializeStockShaders();
    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();
}

int main(int argc,char *argv[])
{
    gltSetWorkingDirectory(argv[0]);
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGBA|GLUT_DEPTH|GLUT_STENCIL);
    glutInitWindowSize(800, 600);
    glutCreateWindow("Triangle");
    glutReshapeFunc(changeSize);
    glutDisplayFunc(RenderScene);
    GLenum status = glewInit();
    if (GLEW_OK != status) {
        printf("GLEW Error:%s\n",glewGetErrorString(status));
        return 1;
        
    }
    setupRC();
    glutMainLoop();
    return  0;
}

2.编译发现报错,原因

#include<文件名.h> 修改为 #include"文件名"
编译,将文件“< >”系统引入,改为" "普通引入,编译成功

3.运行结果如下,恭喜环境搭建成功

OpenGL 10.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容