操作系統(tǒng):Windows8.1

顯卡:Nivida GTX965M

開發(fā)工具:Visual Studio 2017


到目前為止,我們了解到Vulkan是一個與平臺特性無關(guān)聯(lián)的API集合。它不能直接與窗口系統(tǒng)進(jìn)行交互。為了將渲染結(jié)果呈現(xiàn)到屏幕,需要建立Vulkan與窗體系統(tǒng)之間的連接,我們需要使用WSI(窗體系統(tǒng)集成)擴展。在本小節(jié)中,我們將討論第一個,即VK_KHR_surface。它暴露了VkSurfaceKHR,它代表surface的一個抽象類型,用以呈現(xiàn)渲染圖像使用。我們程序中將要使用到的surface是由我們已經(jīng)引入的GLFW擴展及其打開的相關(guān)窗體支持的。簡單來說surface就是Vulkan與窗體系統(tǒng)的連接橋梁。

 

VK_KHR_surface擴展是一個instance級擴展,我們目前為止已經(jīng)啟用過它,它包含在glfwGetRequiredInstanceExtensions返回的列表中。該列表還包括將在接下來幾小節(jié)中使用的一些其他WSI擴展。

 

需要在instance創(chuàng)建之后立即創(chuàng)建窗體surface,因為它會影響物理設(shè)備的選擇。之所以在本小節(jié)將surface創(chuàng)建邏輯納入討論范圍,是因為窗體surface對于渲染、呈現(xiàn)方式是一個比較大的課題,如果過早的在創(chuàng)建物理設(shè)備加入這部分內(nèi)容,會混淆基本的物理設(shè)備設(shè)置工作。另外窗體surface本身對于Vulkan也是非強制的。Vulkan允許這樣做,不需要同OpenGL一樣必須要創(chuàng)建窗體surface。

Window surface creation


網(wǎng)友評論