Nuklear学习及二开记录
Nuklear项目及其简单二开使用
Nuklear介绍
Nuklear是一个用 ANSI C 编写、基于最小状态(minimal-state)和即时模式(immediate-mode)的图形用户界面工具包,采用公共领域许可(public domain)。它被设计成一个简单、可嵌入到应用程序中的用户界面,没有任何依赖项,没有默认的渲染后端,也不处理操作系统窗口/输入,而是采用高度模块化、基于库的方式,提供简单的输入状态作为输入,并输出描述基本形状的绘制命令。因此,它不是提供一个试图在多个平台和渲染后端之上进行抽象的分层库,而是专注于实际的 UI 部分。
Nuklear,是即时模式 GUI,类似 ImGui,但 Nuklear 对后端的适应更灵活,性能要求也更低。
功能特性
1、即时模式图形用户界面工具包
2、单头文件库
3、用 C89(ANSI C)编写
4、代码量小(约 18k 行)
5、注重可移植性、高效性和简洁性
6、无依赖(如果需要,甚至不依赖标准库)
7、完全可换肤、可定制
8、内存占用低,并可完全控制内存使用
9、支持 UTF-8
10、无全局或隐藏状态
11、可定制的库模块(可按需编译和使用)
12、可选字体打包器和顶点缓冲区输出
构建
该库只包含在一个头文件中,可以只在头模式或者实现模式下使用。默认情况下使用头模式
当包含或者允许包含其他头文件,不包含实际的实现。
实现模式需要在此文件之前,在一个.c/.cpp文件之前导入这个文件,而且定义一个预处理宏,例如:
1 |
重要提示:你必须每次定义相同的可选标志,每次包含”nuklear.h”.这非常重要不会导致编译错误或者堆栈损坏。
Nuklear显示中文
1 | /* Load Fonts: if none of these are loaded a default font will be used */ |
Nuklear二开
待补充
参考链接
- https://github.com/Immediate-Mode-UI/Nuklear
- https://www.bilibili.com/opus/1100453333722726408
- https://zhuanlan.zhihu.com/p/43099681
- https://rawgit.com/vurtun/nuklear/master/doc/nuklear.html
- https://blog.csdn.net/gitblog_00923/article/details/150720982
- https://blog.csdn.net/gitblog_00112/article/details/153509406
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Attitude’s Blog!
