Vulkan Cookbook 第四章 20 释放内存对象

释放内存对象

译者注:示例代码点击此处

当不在需要内存对象时,需要销毁它们。

怎么做...

1.获取逻辑设备的句柄并将其存储在名为logical_device的VkDevice类型变量中。
2.获取名为memory_object的VkDeviceMemory类型的变量,其中存储了内存对象的句柄。
3.调用vkFreeMemory(logical_device,memory_object,nullptr)并提供逻辑设备句柄,缓冲区内存对象的句柄和nullptr值。
4.出于安全原因,请为buffer_view变量分配VK_NULL_HANDLE值。

这个怎么运作...

在销毁使用它们的资源之前:可以释放内存对象。但我们不能再使用这些资源只能销毁它们。通常,我们不能将一个内存对象绑定到资源,释放它,然后将另一个内存对象再次绑定到相同的资源。

要释放内存对象,可以编写以下代码:

if( VK_NULL_HANDLE != memory_object ) {
  vkFreeMemory( logical_device, memory_object, nullptr ); 
  memory_object = VK_NULL_HANDLE;
}

内存必须是从logical_device变量表示的逻辑设备分配内存对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值