释放内存对象
译者注:示例代码点击此处
当不在需要内存对象时,需要销毁它们。
怎么做...
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变量表示的逻辑设备分配内存对象。