为了调试我们的OpenGL Demo,可以尝试使用一个成熟的开源GUI插件imgui。

1,首先进入imgui在github上的地址

在Release中下载最近的版本,可以得到一个Zip压缩包。

现在是2023年的4月1日,我下载到的版本是1.89.4,与Cherno的OpenGL教程中的代码略微有些区别。如果你看的是Cherno的教程,也可以尝试下载1.60版本,并按照Cherno的代码来。

2,Zip包解压后,首先将根目录的代码文件全部复制加入项目中(imconfig.h, imgiu_demo.cpp, imgui.draw_cpp, imgui_internal.h...)。

3,进入example目录,由于我这边用的GLFW库,因此进入example_glfw_opengl3目录。这里我们看到和Cherno教程不同的地方,这里只有一个main.cpp的代码文件。其实所有的实现文件已经转移到backends文件夹里了。注意这里需要拷贝五个文件到工程目录下,分别是imgui_impl_glfw.h,imgui_impl_glfw.cpp,imgui_impl_opengl3_loader.h,imgui_impl_opengl3.h和imgui_impl_opengl3.cpp。example目录下的main文件可以作为参考代码方便一会的测试。

4,进入自己工程的main方法,引用头文件

imgui.h
imgui_impl_glfw.h
imgui_impl_opengl3.h

然后在mainLoop前初始化imgui

5,在渲染循环,调用GLClear后,我们需要开启imgui的frame

6,接下来就可以开始渲染绘制imgui的内容,我们可以看到example的main.cpp文件中,提供了三个窗口的demo,直接抄就行

7,在swap buff前,我们需要提交imgui的渲染数据

8,最后在销毁窗口前我们需要销毁imgui

9,运行程序可以看到

OpenGL Mac开发-如何使用imgui(1.89.4)插件进行调试的更多相关文章

  1. GLFW+GLAD OpenGL Mac开发环境搭建

    前言 OpenGL 是什么?The Industry Standard for High Performance Graphics 这是官方解释.说白了他就是一套标准接口.对,是接口,并没有实现具体的 ...

  2. 1.OpenGL mac开发环境搭建记录

    1.安装GLEW 和GLFW,转摘至:https://www.cnblogs.com/pretty-guy/p/11357793.html 2.开始测试,整个工程报错,关键信息如下: code sig ...

  3. 中文 iOS/Mac 开发博客列表

    中文 iOS/Mac 开发博客列表 博客地址 RSS地址 OneV's Den http://onevcat.com/atom.xml 一只魔法师的工坊 http://blog.ibireme.com ...

  4. 中文 iOS/Mac 开发博客列表(转)

    转自https://github.com/tangqiaoboy/iOSBlogCN 中文 iOS/Mac 开发博客列表 本博客列表会不断更新维护,如果有推荐的博客,请到此处提交博客信息. 本博客列表 ...

  5. Android OpenGL ES 开发教程 从入门到精通

    感谢,摘自:http://blog.csdn.net/mapdigit/article/details/7526556 Android OpenGL ES 简明开发教程 Android OpenGL ...

  6. iOS 非ARC基本内存管理系列 -手把手教你ARC——iOS/Mac开发ARC入门和使用(转)

    手把手教你ARC——iOS/Mac开发ARC入门和使用 Revolution of Objective-c 本文部分实例取自iOS 5 Toturail一书中关于ARC的教程和公开内容,仅用于技术交流 ...

  7. iOS/mac开发的一些知名个人博客

    王巍的博客:王巍目前在日本横滨任职于LINE.工作内容主要进行Unity3D开发,8小时之外经常进行iOS/Mac开发.他的陈列柜中已有多款应用,其中番茄工作法工具非常棒. http://onevca ...

  8. 【OpenGL游戏开发之二】OpenGL常用API

    OpenGL常用API 开发基于OpenGL的应用程序,必须先了解OpenGL的库函数.它采用C语言风格,提供大量的函数来进行图形的处理和显示.OpenGL库函数的命名方式非常有规律.所有OpenGL ...

  9. MAC开发环境安装

    MAC开发环境安装 安装sancha cmd: 安装: https://www.sencha.com/products/extjs/cmd-download/ cmd运行 $ open .bash_p ...

  10. Android OpenGL ES 开发(三): OpenGL ES 定义形状

    在上篇文章,我们能够配置好基本的Android OpenGL 使用的环境.但是如果我们不了解OpenGL ES如何定义图像的一些基本知识就使用OpenGL ES进行绘图还是有点棘手的.所以能够在Ope ...

随机推荐

  1. MySQL备份管理

    MySQL备份管理 目录 MySQL备份管理 一.MySQL备份管理 1.1.1 MySQL备份管理介绍 1.1.2 基于mysqldump的备份恢复 1.1.3 基于xtrabackup软件的物理备 ...

  2. 搭建react项目

    1.打开新建的项目空文件夹,终端输入命令:npm init,文件夹生成package.json文件: 2.安装webpack.webpack-cli和cross-env:npm install web ...

  3. 解决linux时间转换为yyyy-MM-dd

    linux时间显示为:Tue Nov 30 09:33:04 CST 2021 SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd ...

  4. ucharts的区域图、折线图(有x轴的),修改x轴显示为隔一个显示

    1.原本的显示方式: 2.想要的效果: 3.这边我使用的是uchart的组件,在uni_modules > qiun-data-charts > js_sdk > u-charts, ...

  5. @Transactional详细介绍

    @Transactional在设置的时候有以下几个主要属性可以设置, 1.propagation:分别为事务的传播行为; 2.isolation:事务的隔离级别; 3.readOnly读写事务控制; ...

  6. OO课程第三阶段(实验和pta试题)总结Blog3

    OO课程第三阶段(实验和pta试题)总结Blog3 前言:学习OOP课程的第三阶段已经结束了,在此进行对于知识点,题量,难度的个人看法. 学习OOP课程的第三阶段已经结束了,较第一次阶段学习难度加大, ...

  7. 微信支付 easy wechat 使用

    /*微信小程序的配置信息微信商户信息*/ public function __construct(){ parent::__construct(); $this->OrderModel = ne ...

  8. Android studio 使用Internet传递信息

    使用Intent在Activity之间传递信息1.首先创建一个新的Activity,在activity_main.xml中设计页面,将android.support.constraint.Constr ...

  9. PHP实现微信提现V3版本2022-5更新接口:商家转账到零钱

    微信官方又更新了接口... V3版本的微信商家转账到零钱的接口---俗称提现接口 注意事项 一:开通条件:需满足入驻满90天,连续正常交易30天,保持正常健康交易.二:分为页面发起和api接口操作,均 ...

  10. Java定时器Timer和TimerTask

    方式一:设定指定任务task在指定时间time执行 schedule(TimerTask task, Date date)   public static void main(String[] arg ...