Mac平台配置OpenGL(glut,glew)

   日期:2020-08-31     浏览:105    评论:0    
核心提示://oepngl库opengl原生库gl*随opengl一起发布opengl实用库glu*随opengl一起发布opengl实用工具库glutglut*需要下载配置安装(太老了!)opengl实用工具库开源版本freeglutglut*需要下载配置安装(完全兼容glut,算是glut的代替品,但是bug较多!)opengl GLFW库glfw*需要下载配置安装(轻量级的,开源的,跨平台的library,新技术)opengl GLEW库...

//oepngl库

opengl原生库 gl
随opengl一起发布

opengl实用库  glu*  
随opengl一起发布

opengl实用工具库glut  glut*  
需要下载配置安装(太老了!)

opengl实用工具库开源版本freeglut  glut*  
需要下载配置安装(完全兼容glut,算是glut的代替品,但是bug较多!)

opengl GLFW库  glfw*  
需要下载配置安装(轻量级的,开源的,跨平台的library,新技术)

opengl GLEW库  glew*  
需要下载配置安装
跨平台的C++扩展库,它的出现是为了方便的管理平台与opengl版本不匹配,以及方便的解决不同显卡特有的硬件接口支持。
只要包含一个glew.h头文件,你就能使用gl,glu,glext,wgl,glx的全 部函数。

opengl核心文件加载库gl3w gl3w*
gl3w是获取OpenGL核心配置文件规范所提供功

能的最简单方法。

opengl库glad glad*
基于官方规格的多语言GL / GLES / EGL / GLX / WGL装载机 - 生成器。
一般结合GLFW使用。

 

准备工作:

  1. brew
  2. cmake

一、下载glew,GLTools库

1.打开终端输入指令下载glew,cmake,

brew install glew
brew install cmake

注:使用Homebrew安装应用的时候可能会出现:

Error: The following directories are not writable by your user:
/usr/local/include
/usr/local/lib
/usr/local/lib/pkgconfig

这是权限问题导致的,解决方式是收回权限,就可以正常的安装下载:

sudo chown -R $(whoami) /usr/local/include /usr/local/lib /usr/local/lib/pkgconfig

2.安装成功后可以去 /usl/local/Cellar/glew目录下找到glew文件:

 

3.cd到指定目录,下载GLTools库

git clone https://github.com/HazimGazov/GLTools.git

4.下载好的GLTools的inlude目录下的头文件拷贝到到glew的include中,将两个库的头文件放在一起。

配置好的include:

二、配置文件路径

1.新建Xcode项目,选择macOS->App(创建过程中选择语言用默认的swift即可,之后会创建cpp文件)

2.项目名->Build Phases->Link Binary With Libraries(0items) -> +  添加系统库OpenGL.framework GLUT.framework 

3.将之前下载好的GLTools.a和glew的include文件导入当前项目。File->Add Files to "xxx"...->两个文件的地址

4.配置文件路径

项目名-> Building Settings -> Search Paths -> Header Search Paths -> include的路径;

项目名-> Building Settings -> Search Paths -> Library Search Paths -> libGLTools.a的路径。

注:项目中include文件要和libGLTools.a文件处于同一目录下,否则会编译错误。

5.删除系统生成的OC文件,如图

6.新建main.cpp文件。

测试代码

#include <stdio.h>

#include "GLShaderManager.h"

#include "GLTools.h"

#include <glut/glut.h>

GLBatch 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);

    

    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;

}

生成效果:

 

至此,OpenGL配置完毕。

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服