/** Ċ Ġ* ĠCopyright Ġ[ 2 0 1 9 ] Ġ[ Dom in ic ĠF is cher ] Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġcom . k gl . v ulkan . handles Ċ Ċ import Ġcom . k gl . core . utils . Virtual Stack Ċ import Ġcom . k gl . v ulkan . utils . Vk Handle Ċ import Ġcom . k gl . v ulkan . utils . Vk Handle Native Ċ import Ġcom . k gl . v ulkan . utils . to Vk Type Ċ import Ġcv ulkan . Vk DescriptorSet Ċ import Ġcv ulkan . Vk DescriptorSet Var Ċ import Ġkotlinx . c interop . alloc Ċ import Ġkotlinx . c interop . invoke Ċ import Ġkotlinx . c interop . ptr Ċ import Ġkotlinx . c interop . value Ċ import Ġkotlinx . io . core . Io Buffer Ċ Ċ actual Ġclass ĠDescriptor Set ( override Ġval Ġptr : ĠVk DescriptorSet , Ġactual Ġval Ġdescriptor Pool : ĠDescriptor Pool ) Ġ: ĠVk Handle Native < Vk DescriptorSet >(), ĠVk Handle Ġ{ Ċ ĉ internal Ġval Ġdispatch Table Ġ= Ġdescriptor Pool . dispatch Table ĊĊ ĉ override Ġfun Ġclose () Ġ{ Ċĉ ĉ Virtual Stack . push () Ċĉ ĉ try Ġ{ Ċĉĉ ĉ val Ġdescriptor Set Ġ= ĠVirtual Stack . alloc < Vk DescriptorSet Var > Ġ{ Ġvalue Ġ= Ġthis @ DescriptorSet . ptr Ġ} Ċĉĉ ĉ dispatch Table . vk Free Descriptor Sets ( descriptor Pool . device . ptr , Ġdescriptor Pool . ptr , Ġ 1 u , Ġdescriptor Set . ptr ) Ċĉ ĉ } Ġfinally Ġ{ Ċĉĉ ĉ Virtual Stack . pop () Ċĉ ĉ } Ċ ĉ } ĊĊ ĉ actual Ġfun Ġupdate With Template ( descriptor Update Template : ĠDescriptor Update Template , Ġdata : ĠIo Buffer ) Ġ{ Ċĉ ĉ TODO () Ċĉ ĉ Virtual Stack . push () Ċĉ ĉ try Ġ{ Ċĉĉ ĉ dispatch Table . vk Update DescriptorSet With Template !! ( descriptor Pool . device . to Vk Type (), Ġto Vk Type (), Ċĉĉĉĉ ĉ descriptor Update Template . to Vk Type (), Ġdata . to Vk Type ()) Ċĉ ĉ } Ġfinally Ġ{ Ċĉĉ ĉ Virtual Stack . pop () Ċĉ ĉ } Ċ ĉ } Ċ } ĊĊ