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变量表示的逻辑设备分配内存对象。

猜你喜欢

转载自blog.csdn.net/qq_19473837/article/details/85071241
今日推荐