Vulkan® Memory Allocator::Quick start (VMA::第一章::快速入门)

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

日志

2020/10/14 增加快速入门、环境配置、初始化、资源创建


Version 3.0.0-development (2020-06-24)


快速入门


配置环境

Vulkan Memory Allocator 使用标准格式定义的单头文件工程,不需要其他库文件。你可以将头文件直接加入到你的工程源码中。

"单头文件"并不意味着所有的声明都是用C++声明,有些是使用内联函数或者模板声明的。意思是说实现是和接口在同一个文件中。并且使用编译器宏做扩展。如果配置不对将会引发链接错误。

正确的配置做法:

  1. 在每个你要使用VMA的CPP文件中包含"vk_mem_alloc.h"头文件
  2. 在每个包含"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"头文件的前面定义声明。


初始化<

评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值