/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 9 , ĠC uch az ĠInteractive , ĠLLC . ĠAll Ġrights Ġreserved . Ċ Ġ* ĠLicense Ġterms Ġare Ġat Ġlicense . txt Ġin Ġthe Ġproject Ġroot Ċ Ġ*/ Ċ Ċ package Ġc uch az . kl udge . v ulkan Ċ Ċ import Ġc uch az . kl udge . tools . mem stack Ċ import Ġc uch az . kl udge . window . Window Ċ import Ġorg . lwjgl . glfw . GLFW Vulkan .* Ċ import Ġorg . lwjgl . v ulkan . KHR Surface .* ĊĊ Ċ fun ĠVulkan . surface ( win : ĠWindow ): ĠSurface Ġ{ Ċ ĉ mem stack Ġ{ Ġmem Ġ-> Ċĉ ĉ val Ġp Sur f Ġ= Ġmem . malloc Long ( 1 ) Ċĉ ĉ glfw Create Window Surface ( instance , Ġwin . id , Ġnull , Ġp Sur f ) Ċĉ ĉ return ĠSurface ( this , Ġp Sur f . get ( 0 )) Ċ ĉ } Ċ } Ċ Ċ class ĠSurface Ġinternal Ġconstructor ( Ċ ĉ internal Ġval Ġv ulkan : ĠVulkan , Ċ ĉ internal Ġval Ġid : ĠLong Ċ ) Ġ: ĠAuto Closeable Ġ{ ĊĊ ĉ override Ġfun ĠtoString () Ġ= Ġ" 0 x % x ". format ( id ) ĊĊ ĉ override Ġfun Ġclose () Ġ{ Ċĉ ĉ vk Destroy Surface KHR ( v ulkan . instance , Ġid , Ġnull ) Ċ ĉ } Ċ } Ċ Ċ // ĠTODO : Ġoff - screen Ġsurface ? Ċ