日志
2020/10/14 增加快速入门、环境配置、初始化、资源创建
Version 3.0.0-development (2020-06-24)
快速入门
配置环境
Vulkan Memory Allocator 使用标准格式定义的单头文件工程,不需要其他库文件。你可以将头文件直接加入到你的工程源码中。
"单头文件"并不意味着所有的声明都是用C++声明,有些是使用内联函数或者模板声明的。意思是说实现是和接口在同一个文件中。并且使用编译器宏做扩展。如果配置不对将会引发链接错误。
正确的配置做法:
- 在每个你要使用VMA的CPP文件中包含"vk_mem_alloc.h"头文件
- 在每个包含"vk_mem_alloc.h"头文件的前面激活内部定义宏:VMA_IMPLEMENTATION
#define VMA_IMPLEMENTATION
#include "vk_mem_alloc.h"
对于零散的CPP文件来说,这样声明是一个好主意。
当前VMA虽然是使用C++书写,但也有兼容C语言的接口。因此 vk_mem_alloc.h 可以在C和C++项目中使用。但是VMA_IMPLEMENTATION 宏必须作为c++的一部分进行编译而不是作为C语言编译。
请注意该库内部包含了<vulkan/vulkan.h>头文件,如果是Windows系统又会包含 <windows.h> 头文件,如果你需要一些特殊的宏(比如 Windows 的 WIN32_LEAN_AND_MEAN,Vulkan 的 VK_USE_PLATFORM_WIN32_KHR)必须在包含含"vk_mem_alloc.h"头文件的前面定义声明。

本文介绍了如何在Vulkan中使用VulkanMemoryAllocator进行快速入门、环境配置和资源创建。首先,要在每个使用VMA的CPP文件中包含'vk_mem_alloc.h'并定义VMA_IMPLEMENTATION宏。然后,初始化Vulkan,创建VmaAllocator,并填写VmaAllocatorCreateInfo结构体。在资源创建阶段,可以使用vmaCreateBuffer()或vmaCreateImage()创建并分配内存。最后,别忘了正确释放和销毁资源。
最低0.47元/天 解锁文章
1739





