为Vulkan添加Cpp封装.
zlib/libpng License.
大致意思就是可以随便用,但不能剽窃,不能说是自己原创的.
-
不省略功能
严格参照官方手册,对所有功能都提供使用途径. -
使用方便
处理生成依赖管理生命周期,减少API调用参数,能自动完成的就让它自动完成. -
易上手
丰富的信息输出,引导性的接口设计,避免出错的措施.
(大部分功能没测试过 阶段性整理散乱的代码 目前只保证语法正确过编译 欢迎发现和提交问题)
(目前正在改 不能过编)
- 建立API列表
- 基础设计
- 处理生成依赖
- 确定API归属
- 简化参数
- 为位标提供封装(自动生成代码)
- 为pNext提供封装(自动生成代码)
- 为enum提供封装(自动生成代码)
- 进一步封装struct(自动生成代码)
- 创造些类型 用于简化
- 修正生命周期
- 绘制描述图.
- 封装层的描述图
- 封装层与API的关系图.
- 整理代码出个版本
- 只包含一个头文件,以及一个Cpp文件.
- 英文版.
目前完成度上还不够,还要面临很多修改的可能,现阶段不提供详细的说明.
那什么时候提供呢? 当它可以用了,我会总结出一个文章放在知乎专栏,专门介绍.
不过可以介绍一下项目文件:
真正核心的就是vk.h和vk.cpp了. 我希望项目成型后,使用者就放这两个文件到项目里就能用,干净利落没有任何麻烦的地方.
classes.h: 类的前置声明.这种文件独立存在,仅仅是为了编码时看得舒服点.
common.h common.cpp: 一些宏,以及具有通用性的函数.比如加载dll模块,为spdlog定义的宏等.
laka_vk_define.h: 用来存放有关vulkan api的列表,我净化代码用(懒)的技巧.
vk_shortcut.cpp: 里面的内容主要跟简化api参数有关.
vk_mean.h vk_mean.cpp: 专门用来写解释vk各种枚举 结构体的功能,为使用者省去查手册的麻烦(当然也有点过度负责, 还要随时保持和手册同步, 这也是最苦力的工作量了吧).
名为vk 的excel文件: 存放一些整理后的vulkan的信息.有点参考价值.
目前全靠看官方文档做:
-
对官方的Cpp封装,我自己感觉使用起来还是不够方便. 封装是千差万别的,不然也不会绞尽脑汁自己搞封装.
-
基于我自身对Vulkan的兴趣,封装它也是学习的过程.
-
面对一辆方轮自行车, 有的人直接骑上它,努力骑行,以此夸自己力气大. 这样的人很自我享受.
但相对而言我更乐意对它外边套一层变成圆形,骑圆轮自行车.
本项目需要绞尽脑汁满足目标 也考验阅读文档、整理信息的能力和耐心.
Q群:679351558
做人要真诚,非诚勿扰.