A leckéhez tartozó teljes kód megtalálható a hozzá tartozó [branch-en](https://git.sch.bme.hu/kszk/devteam/vulkan-workshop/-/tree/lecture_02-final).
# Megjelenítés
## Felkészülés
Kezdés előtt ajánlott az [anyaghoz tartozó előadás](./Megjelenítés.pptx) átnézése.
Az előző leckének a kiegészített kódja megtalálható a `lecture_02-starter` branch-en.
Ez lesz a mostani kiinduló projektunk.
!!! note ""
A [GLFW](https://www.glfw.org/) ablakozó könyvtárat fogjuk használni, amihez előre elkészítettem egy minimális wrapper osztályt.
## *Extensions*
A Vulkan API *core* részét extension-ökkel szokták bővíteni.
Ezek a bővítmények nem garantáltak, hogy minden esetben elérhetőek/támogatottak; és mint minden használni kívánt dolgot, a kívánt extension-öket is **előre jelezni kell**.
Jelen alkalommal 2-féle bővítményre lesz szükségünk, hogy megjelenítéssel tudjunk foglalkozni.
Ezek a `VK_KHR_surface` és platform specifikus társai, illetve a `VK_KHR_swapchain`.
## `vk::SurfaceKHR`
A monitor és az ablak szorosan nem tartoznak a grafikus API-k hatásköre alá.
Vulkan-ban, lazán csatoltan, egy ablakozó könyvtár által készített ablak felületre tudunk rajzolni.
A kódunkban, hogy ezt a csatolást megteremtsük, vegyünk fel egy `const Window&` paramétert a `Renderer` konstruktorába.