/** Ċ Ġ* Ġ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 . dsl s Ċ Ċ import Ġcom . k gl . v ulkan . enums .* Ċ import Ġcom . k gl . v ulkan . utils . Vk Flag Ċ import Ġcom . k gl . v ulkan . utils . map To Stack Array Ċ import Ġcom . k gl . v ulkan . utils . to Vk Type Ċ import Ġorg . lwjgl . v ulkan .* Ċ Ċ actual Ġclass ĠImage Sub resource Builder ( internal Ġval Ġtarget : ĠVk Image Sub resource ) Ġ{ Ċ ĉ actual Ġvar Ġaspect Mask : ĠVk Flag < Image Aspect >? Ċĉ ĉ get () Ġ= ĠImage Aspect . from Multiple ( target . aspect Mask ()) Ċĉ ĉ set ( value ) Ġ{ Ċĉĉ ĉ target . aspect Mask ( value . to Vk Type ()) Ċĉ ĉ } ĊĊ ĉ actual Ġvar Ġmip Level : ĠUInt Ċĉ ĉ get () Ġ= Ġtarget . mip Level (). to UInt () Ċĉ ĉ set ( value ) Ġ{ Ċĉĉ ĉ target . mip Level ( value . to Vk Type ()) Ċĉ ĉ } ĊĊ ĉ actual Ġvar Ġarray Layer : ĠUInt Ċĉ ĉ get () Ġ= Ġtarget . array Layer (). to UInt () Ċĉ ĉ set ( value ) Ġ{ Ċĉĉ ĉ target . array Layer ( value . to Vk Type ()) Ċĉ ĉ } ĊĊ ĉ internal Ġfun Ġinit () Ġ{ Ċ ĉ } Ċ } Ċ Ċ actual Ġclass ĠOffset 3 D Builder ( internal Ġval Ġtarget : ĠVk Offset 3 D ) Ġ{ Ċ ĉ internal Ġfun Ġinit ( x : ĠInt , Ġy : ĠInt , Ġz : ĠInt ) Ġ{ Ċĉ ĉ target . x ( x . to Vk Type ()) Ċĉ ĉ target . y ( y . to Vk Type ()) Ċĉ ĉ target . z ( z . to Vk Type ()) Ċ ĉ } Ċ } Ċ Ċ actual Ġclass ĠExt ent 3 D Builder ( internal Ġval Ġtarget : ĠVk Extent 3 D ) Ġ{ Ċ ĉ internal Ġfun Ġinit ( width : ĠUInt , Ġheight : ĠUInt , Ġdepth : ĠUInt ) Ġ{ Ċĉ ĉ target . width ( width . to Vk Type ()) Ċĉ ĉ target . height ( height . to Vk Type ()) Ċĉ ĉ target . depth ( depth . to Vk Type ()) Ċ ĉ } Ċ } Ċ Ċ actual Ġclass ĠComponent Mapping Builder ( internal Ġval Ġtarget : ĠVk Component Mapping ) Ġ{ Ċ ĉ actual Ġvar Ġr : ĠComponent Sw izzle ? Ċĉ ĉ get () Ġ= ĠComponent Sw izzle . from ( target . r ()) Ċĉ ĉ set ( value ) Ġ{ Ċĉĉ ĉ target . r ( value . to Vk Type ()) Ċĉ ĉ } ĊĊ ĉ actual Ġvar Ġg : ĠComponent Sw izzle ? Ċĉ ĉ get () Ġ= ĠComponent Sw izzle . from ( target . g ()) Ċĉ ĉ set ( value ) Ġ{ Ċĉĉ ĉ target . g ( value . to Vk Type ()) Ċĉ ĉ } ĊĊ ĉ actual Ġvar Ġb : ĠComponent Sw izzle ? Ċĉ ĉ get () Ġ= ĠComponent Sw izzle . from ( target . b ()) Ċĉ ĉ set ( value ) Ġ{ Ċĉĉ ĉ target . b ( value . to Vk Type ()) Ċĉ ĉ } ĊĊ ĉ actual Ġvar Ġa : ĠComponent Sw izzle ? Ċĉ ĉ get () Ġ= ĠComponent Sw izzle . from ( target . a ()) Ċĉ ĉ set ( value ) Ġ{ Ċĉĉ ĉ target . a ( value . to Vk Type ()) Ċĉ ĉ } ĊĊ ĉ internal Ġfun Ġinit () Ġ{ Ċ ĉ } Ċ } Ċ Ċ actual Ġclass ĠView port Builder ( internal Ġval Ġtarget : ĠVk Viewport ) Ġ{ Ċ ĉ actual Ġvar Ġx : ĠFloat Ċĉ ĉ get () Ġ= Ġtarget . x () Ċĉ ĉ set ( value ) Ġ{ Ċĉĉ ĉ target . x ( value . to Vk Type ()) Ċĉ ĉ } ĊĊ ĉ actual Ġvar Ġy : ĠFloat Ċĉ ĉ get () Ġ= Ġtarget . y () Ċĉ ĉ set ( value ) Ġ{ Ċĉĉ ĉ target . y ( value . to Vk Type ()) Ċĉ ĉ } ĊĊ ĉ actual Ġvar Ġwidth : ĠFloat Ċĉ ĉ get () Ġ= Ġtarget . width () Ċĉ ĉ set ( value ) Ġ{ Ċĉĉ ĉ target . width ( value . to Vk Type ()) Ċĉ ĉ } ĊĊ ĉ actual Ġvar Ġheight : ĠFloat Ċĉ ĉ get () Ġ= Ġtarget . height () Ċĉ ĉ set ( value ) Ġ{ Ċĉĉ ĉ target . height ( value . to Vk Type ()) Ċĉ ĉ } ĊĊ ĉ actual Ġvar Ġmin Depth : ĠFloat Ċĉ ĉ get () Ġ= Ġtarget . min Depth () Ċĉ ĉ set ( value ) Ġ{ Ċĉĉ ĉ target . min Depth ( value . to Vk Type ()) Ċĉ ĉ } ĊĊ ĉ actual Ġvar Ġmax Depth : ĠFloat Ċĉ ĉ get () Ġ= Ġtarget . max Depth () Ċĉ ĉ set ( value ) Ġ{ Ċĉĉ ĉ target . max Depth ( value . to Vk Type ()) Ċĉ ĉ } ĊĊ ĉ internal Ġfun Ġinit () Ġ{ Ċ ĉ } Ċ } Ċ Ċ actual Ġclass ĠExt ent 2 D Builder ( internal Ġval Ġtarget : ĠVk Extent 2 D ) Ġ{ Ċ ĉ internal Ġfun Ġinit ( width : ĠUInt , Ġheight : ĠUInt ) Ġ{ Ċĉ ĉ target . width ( width . to Vk Type ()) Ċĉ ĉ target . height ( height . to Vk Type ()) Ċ ĉ } Ċ } Ċ Ċ actual Ġclass ĠRect 2 D Builder ( internal Ġval Ġtarget : ĠVk Rect 2 D ) Ġ{ Ċ ĉ actual Ġfun Ġoffset ( x : ĠInt , Ġy : ĠInt ) Ġ{ Ċĉ ĉ val Ġsub Target Ġ= Ġtarget . offset () Ċĉ ĉ val Ġbuilder Ġ= ĠOffset 2 D Builder ( sub Target ) Ċĉ ĉ builder . init ( x , Ġy ) Ċ ĉ } ĊĊ ĉ actual Ġfun Ġextent ( width : ĠUInt , Ġheight : ĠUInt ) Ġ{ Ċĉ ĉ val Ġsub Target Ġ= Ġtarget . extent () Ċĉ ĉ val Ġbuilder Ġ= ĠExt ent 2 D Builder ( sub Target ) Ċĉ ĉ builder . init ( width , Ġheight ) Ċ ĉ } ĊĊ ĉ internal Ġfun Ġinit () Ġ{ Ċ ĉ } Ċ } Ċ Ċ actual Ġclass ĠDescriptor Set Layout CreateInfo Builder ( internal Ġval Ġtarget : ĠVk DescriptorSet Layout CreateInfo ) Ġ{ Ċ ĉ actual Ġvar Ġflags : ĠVk Flag < DescriptorSet Layout Create >? Ċĉ ĉ get () Ġ= ĠDescriptor Set Layout Create . from Multiple ( target . flags ()) Ċĉ ĉ set ( value ) Ġ{ Ċĉĉ ĉ target . flags ( value . to Vk Type ()) Ċĉ ĉ } ĊĊ ĉ actual Ġfun Ġbindings ( block : ĠDescriptor Set Layout Bindings Builder . () Ġ-> ĠUnit ) Ġ{ Ċĉ ĉ val Ġtargets Ġ= ĠDescriptor Set Layout Bindings Builder (). apply ( block ). targets Ċĉ ĉ target . p Bindings ( targets . map To Stack Array ( Vk DescriptorSet Layout Binding :: calloc Stack )) Ċ ĉ } ĊĊ ĉ internal Ġfun Ġinit () Ġ{ Ċĉ ĉ target . sType ( VK 1 1 . VK _ STRUCTURE _ TYPE _ DESCRIPTOR _ SET _ LAYOUT _ CREATE _ INFO ) Ċĉ ĉ target . pNext ( 0 ) Ċ ĉ } Ċ } Ċ Ċ actual Ġclass ĠDebug Utils ObjectName Info EXT Builder ( internal Ġval Ġtarget : ĠVk Debug Utils ObjectName Info EXT ) Ġ{ Ċ ĉ actual Ġvar Ġobject Type : ĠObjectType ? Ċĉ ĉ get () Ġ= ĠObjectType . from ( target . object Type ()) Ċĉ ĉ set ( value ) Ġ{ Ċĉĉ ĉ target . object Type ( value . to Vk Type ()) Ċĉ ĉ } ĊĊ ĉ actual Ġvar Ġobject Handle : ĠU Long Ċĉ ĉ get () Ġ= Ġtarget . object Handle (). to UL ong () Ċĉ ĉ set ( value ) Ġ{ Ċĉĉ ĉ target . object Handle ( value . to Vk Type ()) Ċĉ ĉ } ĊĊ ĉ actual Ġvar Ġobject Name : ĠString ? Ċĉ ĉ get () Ġ= Ġtarget . p ObjectName String () Ċĉ ĉ set ( value ) Ġ{ Ċĉĉ ĉ target . p ObjectName ( value . to Vk Type ()) Ċĉ ĉ } ĊĊ ĉ internal Ġfun Ġinit () Ġ{ Ċĉ ĉ target . sType ( EXT Debug Utils . VK _ STRUCTURE _ TYPE _ DEBUG _ UTILS _ OBJECT _ NAME _ INFO _ EXT ) Ċĉ ĉ target . pNext ( 0 ) Ċ ĉ } Ċ } Ċ Ċ actual Ġclass ĠDebug Utils Label EXT Builder ( internal Ġval Ġtarget : ĠVk Debug Utils Label EXT ) Ġ{ Ċ ĉ actual Ġvar Ġlabel Name : ĠString ? Ċĉ ĉ get () Ġ= Ġtarget . p Label Name String () Ċĉ ĉ set ( value ) Ġ{ Ċĉĉ ĉ target . p Label Name ( value . to Vk Type ()) Ċĉ ĉ } ĊĊ ĉ actual Ġfun Ġcolor ( arg 0 : ĠFloat , Ġarg 1 : ĠFloat , Ġarg 2 : ĠFloat , Ġarg 3 : ĠFloat ) Ġ{ Ċĉ ĉ target . color ( 0 , Ġarg 0 . to Vk Type ()) Ċĉ ĉ target . color ( 1 , Ġarg 1 . to Vk Type ()) Ċĉ ĉ target . color ( 2 , Ġarg 2 . to Vk Type ()) Ċĉ ĉ target . color ( 3 , Ġarg 3 . to Vk Type ()) Ċ ĉ } ĊĊ ĉ internal Ġfun Ġinit () Ġ{ Ċĉ ĉ target . sType ( EXT Debug Utils . VK _ STRUCTURE _ TYPE _ DEBUG _ UTILS _ LABEL _ EXT ) Ċĉ ĉ target . pNext ( 0 ) Ċ ĉ } Ċ } Ċ Ċ actual Ġclass ĠAccel eration Structure Info NV Builder ( internal Ġval Ġtarget : ĠVk AccelerationStructure Info NV ) Ġ{ Ċ ĉ actual Ġvar Ġtype : ĠAccel eration Structure Type NV ? Ċĉ ĉ get () Ġ= ĠAccel eration Structure Type NV . from ( target . type ()) Ċĉ ĉ set ( value ) Ġ{ Ċĉĉ ĉ target . type ( value . to Vk Type ()) Ċĉ ĉ } ĊĊ ĉ actual Ġvar Ġflags : ĠVk Flag < Build AccelerationStructure NV >? Ċĉ ĉ get () Ġ= ĠBuild AccelerationStructure NV . from Multiple ( target . flags ()) Ċĉ ĉ set ( value ) Ġ{ Ċĉĉ ĉ target . flags ( value . to Vk Type ()) Ċĉ ĉ } ĊĊ ĉ actual Ġvar Ġinstance Count : ĠUInt Ċĉ ĉ get () Ġ= Ġtarget . instance Count (). to UInt () Ċĉ ĉ set ( value ) Ġ{ Ċĉĉ ĉ target . instance Count ( value . to Vk Type ()) Ċĉ ĉ } ĊĊ ĉ actual Ġfun Ġge ometries ( block : ĠGeometry NV s Builder . () Ġ-> ĠUnit ) Ġ{ Ċĉ ĉ val Ġtargets Ġ= ĠGeometry NV s Builder (). apply ( block ). targets Ċĉ ĉ target . p Ge ometries ( targets . map To Stack Array ( Vk Geometry NV :: calloc Stack )) Ċ ĉ } ĊĊ ĉ internal Ġfun Ġinit () Ġ{ Ċĉ ĉ target . sType ( NV Ray Tracing . VK _ STRUCTURE _ TYPE _ AC CELER ATION _ STRUCTURE _ INFO _ NV ) Ċĉ ĉ target . pNext ( 0 ) Ċ ĉ } Ċ } ĊĊ