1. 程式人生 > >Vulkan Cookbook 第四章 18 摧毀影象

Vulkan Cookbook 第四章 18 摧毀影象

摧毀影象

譯者注:示例程式碼點選此處

應該銷燬不在使用的影象以釋放其資源。

怎麼做...

1.獲取邏輯裝置的控制代碼並將其儲存在名為logical_device的VkDevice型別變數中。
2.使用影象的控制代碼初始化名為image的VkImage型別變數。
3.呼叫vkDestroyImage( logical_device, image, nullptr )並提供邏輯裝置控制代碼,影象的控制代碼和nullptr值。
4.出於安全原因,請為image變數分配VK_NULL_HANDLE值。

這個怎麼運作...

通過單次呼叫vkDestroyImage()函式來銷燬影象。為此,我們提供邏輯裝置的控制代碼,影象的控制代碼和nullptr值,如下所示:

if( VK_NULL_HANDLE != image ) {
  vkDestroyImage( logical_device, image, nullptr ); 
  image = VK_NULL_HANDLE;
}

首先,檢查控制代碼是否為空,其實我們沒有必要這麼做,因為vkDestroyImageView()函式內會判空。但是跳過不必要的函式呼叫是很好的。接下來,我們銷燬影象檢視併為儲存控制代碼的變數分配空控制代碼。

我們還嘗試通過檢查影象的控制代碼是否為空來避免不必要的函式呼叫。