3、OpenGL - Mac 上的环境配置

OpenGL - Mac 上的环境配置

 

准备资料:

  • CLTools
  • glew
  • libGLTools.a

资源地址可以去我上传的GitHub上下载

地址 -> OpenGL -> 1、配置文件

 

一、配置过程

1、打开xcode -> macOS -> Cocoa Application

3、OpenGL - Mac 上的环境配置_第1张图片

 

2、添加OpenGL.framwork 和 GLUT.framework 两个系统库

3、OpenGL - Mac 上的环境配置_第2张图片

 

3、添加CLTools.h ,glew.h

在Bulid Setting 输入 Header Search path 中拖入GLTool.h 和  glew.h 生成路径

 

4、创建main.cpp 文件

libGLTools.a 直接拖到工程的Framworks 文件里面,另外删除文件 AppDelegate.h、 AppDelegate.m、main.m、ViewController.h、ViewController.m 创建main.cpp 文件

3、OpenGL - Mac 上的环境配置_第3张图片

3、OpenGL - Mac 上的环境配置_第4张图片

3、OpenGL - Mac 上的环境配置_第5张图片

3、OpenGL - Mac 上的环境配置_第6张图片

 

二、测试一下,显示一个三角形

在main.cpp中复制一下代码

#include 
#include "GLTools.h"
#include 

GLBatch triangleBatch;
GLShaderManager shaderManager;

//窗口大小改变时接收新的宽度和高度,其中0,0 代表窗口中视图左下角坐标,w h 代表像素
void ChangeSize(int w, int h){
    glViewport(0, 0, w, h);
}
oid 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分别指双缓冲窗口、RGB颜色模式、深度测试、模板缓冲区
    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;
}

结果:

3、OpenGL - Mac 上的环境配置_第7张图片

你可能感兴趣的:(OpenGL)