前一篇文章中提到了Glfw,这个是一套跨平台opengl环境与窗口管理的库。各个平台和显卡厂家的opengl的api都有区别,这时候又出了一个Glew,它就是把这些个api整合起来的库。

生成libGLEW库

这里只介绍再macOS上的情况,类unix平台的其实都一样,不一样的是windows,官网直接给了二进制库。

  1. 下载glew源码包
  2. 解压后,命令行进入文件夹,发现文件夹中有一个Makefile,果断敲入命了:make,等待一段时间后,根目录下的lib文件夹中出现四个文件libGLEW.2.1.0.dylib,libGLEW.2.1.dylib,libGLEW.dylib,libGLEW.a,其中libGLEW.2.1.dylib和libGLEW.dylib都只是一个链接文件,指向了libGLEW.2.1.0.dylib,相当于libGLEW.2.1.0.dylib的别名,后面的libGLEW.a是静态库。

集成到项目中来

  1. 拷贝源码目录下include文件夹中的gl目录到项目中的include目录下,最终结果如下:
  2. 拷贝libGLEW.a到lib目录下,这里用静态库,原因是好集成,动态库问题比较多,因为本文是学习为主,真实项目要根据情况定。
  3. 修改cmake的依赖
target_link_libraries (main "-framework OpenGL" ${CMAKE_CURRENT_LIST_DIR}/deps/lib/libGLEW.a ${CMAKE_CURRENT_LIST_DIR}/deps/lib/libglfw.3.dylib)

初始化Glew并打印当前版本

在初始化glfw后就可以初始化glew了,代码如下

GLenum err = glewInit();
if (GLEW_OK != err){/* Problem: glewInit failed, something is seriously wrong. */printf("Error: %s\n", glewGetErrorString(err));}printf("Version: %s\n", glGetString(GL_VERSION));

编译运行后,程序会在命令行中打印输出,类似Version: 2.1 ATI-4.5.14这样的,这个会根据不同的显卡输出不一样。
整体代码如下:

#define GLEW_STATIC
#include <GL/glew.h>
#include <GLFW/glfw3.h>
#include <stdio.h>int main(void)
{GLFWwindow* window;/* Initialize the library */if (!glfwInit())return -1;/* Create a windowed mode window and its OpenGL context */window = glfwCreateWindow(640, 480, "Hello World", NULL, NULL);if (!window){glfwTerminate();return -1;}/* Make the window's context current */glfwMakeContextCurrent(window);GLenum err = glewInit();if (GLEW_OK != err){/* Problem: glewInit failed, something is seriously wrong. */printf("Error: %s\n", glewGetErrorString(err));}printf("Version: %s\n", glGetString(GL_VERSION));/* Loop until the user closes the window */while (!glfwWindowShouldClose(window)){/* Render here */glClear(GL_COLOR_BUFFER_BIT);/* Swap front and back buffers */glfwSwapBuffers(window);/* Poll for and process events */glfwPollEvents();}glfwTerminate();return 0;
}

opengl入门(二)使用Glew相关推荐

  1. OpenGL入门二——变换

    OpenGL入门二--变换 一.预备知识 二.实现 三.控制 四.预览与源码 一.预备知识 齐次坐标:https://blog.csdn.net/zhanxi1992/article/details/ ...

  2. OpenGL入门学习[二] 绘制简单的几何图形

    OpenGL入门学习[二] 本次课程所要讲的是绘制简单的几何图形,在实际绘制之前,让我们先熟悉一些概念. 一.点.直线和多边形 我们知道数学(具体的说,是几何学)中有点.直线和多边形的概念,但这些概念 ...

  3. OpenGL 入门 17:立方体贴图

    立方体贴图(Cube Map) 立方体贴图是由"上下左右前后"6个2D纹理合并成的一张纹理.与2D纹理使用(u,v)坐标采样不同的是,立方体纹理使用一个方向向量进行采样. 1. 方 ...

  4. 最全面的openGL 入门学习

    自己在找openGL学习资料的时候,找到此篇openGL入门学习(虽然不是移动开发,但给我提供了非常好的思路),所以转一下让更多人知道,本文来自http://www.cppblog.com/doing ...

  5. OpenGL十二讲代码

    文章目录 OpenGL十二讲代码-by yjq 参考资料 第一讲 画一个矩形 第二讲 画一个五角星 画一个圆 画一个正弦函数 第三讲 画点 画虚线 多边形 多边形的两面 前后反转 剔除多边形表面 镂空 ...

  6. OpenGL入门学习 (转)

    OpenGL入门学习 (转) 说起编程作图,大概还有很多人想起TC的#include <graphics.h>吧? 但是各位是否想过,那些画面绚丽的PC游戏是如何编写出来的?就靠TC那可怜 ...

  7. OpenGL入门学习[三]

    OpenGL入门学习[三] http://xiaxveliang.blog.163.com/blog/static/2970803420126246501930/ OpenGL入门学习[十一] 我们在 ...

  8. 【待完善】OpenGL入门学习

    严正声明:本文转载自网络,但具体出处未知.如果有读者了解,请联系我更正. 为了阅读方便,我对文字格式进行了修改,并填补了缺少的图片. 我尊重每位作者的权益,如果本文存在侵权行为,请联系我删除并道歉. ...

  9. 【转载】OpenGL入门学习

    说起编程作图,大概还有很多人想起TC的#include <graphics.h>吧? 但是各位是否想过,那些画面绚丽的PC游戏是如何编写出来的?就靠TC那可怜的640*480分辨率.16色 ...

  10. OpenGL入门教程(转)

    OpenGL入门学习 说起编程作图,大概还有很多人想起TC的#include <graphics.h>吧? 但是各位是否想过,那些画面绚丽的PC游戏是如何编写出来的?就靠TC那可怜的640 ...

最新文章

  1. 自定义配置webpack打包文件
  2. Linux文件目录结构2
  3. domain logic approaches
  4. mac java sh_怎么在Mac上下载java?
  5. 济南长清104国道科目三考试流程(转载)
  6. 牛顿二项式定理计算平方根
  7. 教师计算机考试登记网,计算机等级考试及计算机资格考试
  8. mysql申请审核系统_Mysql审核工具archery
  9. linux 二进制差分工具,打造Android万能的软件更新库
  10. easyuefi无法安装只能在基于_SOLIDWORKS2018安装时VC2015安装失败的解决方法
  11. python3纵向输出字符串_笔记||Python3之字符串格式化输出
  12. 联合国devnet_联合国人权可能会适用于人工智能,如果是这样,考虑一下自动驾驶汽车的奇怪案例
  13. 第10课:JSP指令 Page指令 (JSP教程 JSP入门实战教程 黄菊华Java网站开发系列教程)
  14. 单片机原理及接口技术--01什么是单片机
  15. Latex: 添加IEEE会议论文作者信息
  16. jeecgSpringboot的前端Vue项目出现npm 配置错误相关问题
  17. 亚马逊速卖通tro律所禁令冻结资金的解决方法
  18. 数据增强——mixup
  19. python金融量化书籍_超强干货 | Python金融数据量化分析教程+机器学习电子书
  20. 在线考勤签到打卡二维码,如何制作?

热门文章

  1. 【推荐算法】点击率预估模型(CTR) 快速入门(赋源码)
  2. plsql打开sql窗口快捷键_plsql 快捷键配置
  3. 泛型爪哇(Generic Java)
  4. oracle 9i exp 导入11g,Oracle教程:使用exp/imp 导入11g数据到9i
  5. 【100%通过率】华为OD机试真题 JS 实现【数字加减游戏】【2023 Q1 | 100分】
  6. 应用统计学第十周作业(OSL最小二乘、Excel处理数据)
  7. cake fork什么意思_Cake Fork
  8. DDX DDV 用法
  9. 在线平台制作App要如何实现后台管理系统
  10. 复习笔记--用户调研