/* Ċ Ġ* ĠCopyright ĠL WJ GL . ĠAll Ġrights Ġreserved . Ċ Ġ* ĠLicense Ġterms : Ġhttps :// www . lwjgl . org / license Ċ Ġ* ĠM ACH INE ĠGENERATED ĠFILE , ĠDO ĠNOT ĠEDIT Ċ Ġ*/ Ċ package Ġv ulkan . templates Ċ Ċ import Ġorg . lwjgl . generator .* Ċ import Ġv ulkan .* Ċ Ċ val ĠEXT _ vertex _ input _ dynamic _ state Ġ= Ġ" EXT Vertex Input Dynamic State ". native Class VK (" EXT _ vertex _ input _ dynamic _ state ", Ġtype Ġ= Ġ" device ", Ġpostfix Ġ= ĠEXT ) Ġ{ ĊĠĠĠ Ġdocumentation Ġ= ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ ĠOne Ġof Ġthe Ġstates Ġthat Ġcontribut es Ġto Ġthe Ġcombin ator ial Ġexplo sion Ġof Ġpipeline Ġstate Ġobjects Ġthat Ġneed Ġto Ġbe Ġcreated , Ġis Ġthe Ġvertex Ġinput Ġbinding Ġand Ġattribute Ġdescriptions . ĠBy Ġallowing Ġthem Ġto Ġbe Ġdynamic Ġapplications Ġmay Ġreduce Ġthe Ġnumber Ġof Ġpipeline Ġobjects Ġthey Ġneed Ġto Ġcreate . ĊĊĠĠĠĠĠĠĠ ĠThis Ġextension Ġadds Ġdynamic Ġstate Ġsupport Ġfor Ġwhat Ġis Ġnormally Ġstatic Ġstate Ġin Ġ## Vk Pipeline Vertex Input State CreateInfo . ĊĊĠĠĠĠĠĠĠ Ġ< h 5 > VK _ EXT _ vertex _ input _ dynamic _ state </ h 5 > ĊĠĠĠĠĠĠĠ Ġ< dl > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dt >< b > Name ĠString </ b ></ dt > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dd >{@ code ĠVK _ EXT _ vertex _ input _ dynamic _ state }</ dd > ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dt >< b > Extension ĠType </ b ></ dt > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dd > Device Ġextension </ dd > ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dt >< b > Registered ĠExtension ĠNumber </ b ></ dt > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dd > 3 5 3 </ dd > ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dt >< b > Revision </ b ></ dt > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dd > 2 </ dd > ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dt >< b > Extension Ġand ĠVersion ĠDependencies </ b ></ dt > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dd >< ul > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< li > Requires ĠVulkan Ġ 1 . 0 </ li > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< li > Requires Ġ{@ link ĠK HR Get PhysicalDevice Properties 2 ĠVK _ KHR _ get _ physical _ device _ properties 2 }</ li > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ</ ul ></ dd > ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dt >< b > Contact </ b ></ dt > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dd >< ul > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< li > Pi ers ĠDaniel l Ġ< a Ġtarget ="_ blank " Ġhref =" https :// github . com / Kh ronos Group / Vulkan - Docs / issues / new ? body =[ VK _ EXT _ vertex _ input _ dynamic _ state ] % 2 0 @ pd an iel l - nv % 2 5 0 A % 3 C % 3 CH ere % 2 0 describe % 2 0 the % 2 0 issue % 2 0 or % 2 0 question % 2 0 you % 2 0 have % 2 0 about % 2 0 the % 2 0 VK _ EXT _ vertex _ input _ dynamic _ state % 2 0 extension % 3 E % 3 E "> pd an iel l - nv </ a ></ li > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ</ ul ></ dd > ĊĠĠĠĠĠĠĠ Ġ</ dl > ĊĊĠĠĠĠĠĠĠ Ġ< h 5 > Other ĠExtension ĠMetadata </ h 5 > ĊĠĠĠĠĠĠĠ Ġ< dl > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dt >< b > Last ĠModified ĠDate </ b ></ dt > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dd > 2 0 2 0 - 0 8 - 2 1 </ dd > ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dt >< b > IP ĠStatus </ b ></ dt > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dd > No Ġknown ĠIP Ġclaims .</ dd > ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dt >< b > Contribut ors </ b ></ dt > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< dd >< ul > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< li > J eff ĠB ol z , ĠNVIDIA </ li > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< li > S pen cer ĠF ric ke , ĠSamsung </ li > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< li > St u ĠSmith , ĠAMD </ li > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ</ ul ></ dd > ĊĠĠĠĠĠĠĠ Ġ</ dl > ĊĠĠĠĠĠĠĠ Ġ""" ĊĊĠĠĠ ĠInt Constant ( ĊĠĠĠĠĠĠĠ Ġ" The Ġextension Ġspecification Ġversion .", ĊĊĠĠĠĠĠĠĠ Ġ" EXT _ VERTEX _ INPUT _ DYNAMIC _ STATE _ SPEC _ VERSION " .." 2 " ĊĠĠĠ Ġ) ĊĊĠĠĠ ĠString Constant ( ĊĠĠĠĠĠĠĠ Ġ" The Ġextension Ġname .", ĊĊĠĠĠĠĠĠĠ Ġ" EXT _ VERTEX _ INPUT _ DYNAMIC _ STATE _ EXTENSION _ NAME " .." VK _ EXT _ vertex _ input _ dynamic _ state " ĊĠĠĠ Ġ) ĊĊĠĠĠ ĠEnum Constant ( ĊĠĠĠĠĠĠĠ Ġ" Ext ends Ġ{@ code ĠVk Structure Type }. ", ĊĊĠĠĠĠĠĠĠ Ġ" STRUCTURE _ TYPE _ PHYSICAL _ DEVICE _ VERTEX _ INPUT _ DYNAMIC _ STATE _ FEATURES _ EXT " .." 1 0 0 0 3 5 2 0 0 0 ", ĊĠĠĠĠĠĠĠ Ġ" STRUCTURE _ TYPE _ VERTEX _ INPUT _ BINDING _ DESCRIPTION _ 2 _ EXT " .." 1 0 0 0 3 5 2 0 0 1 ", ĊĠĠĠĠĠĠĠ Ġ" STRUCTURE _ TYPE _ VERTEX _ INPUT _ ATTRIBUTE _ DESCRIPTION _ 2 _ EXT " .." 1 0 0 0 3 5 2 0 0 2 " ĊĠĠĠ Ġ) ĊĊĠĠĠ ĠEnum Constant ( ĊĠĠĠĠĠĠĠ Ġ" Ext ends Ġ{@ code ĠVk Dynamic State }. ", ĊĊĠĠĠĠĠĠĠ Ġ" DYNAMIC _ STATE _ VERTEX _ INPUT _ EXT " .." 1 0 0 0 3 5 2 0 0 0 " ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġvoid ( ĊĠĠĠĠĠĠĠ Ġ" Cmd Set Vertex Input EXT ", ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ ĠSet Ġthe Ġvertex Ġinput Ġstate Ġdynamically Ġfor Ġa Ġcommand Ġbuffer . ĊĊĠĠĠĠĠĠĠ Ġ< h 5 > C ĠSpecification </ h 5 > ĊĠĠĠĠĠĠĠ ĠTo Ġ< a Ġtarget ="_ blank " Ġhref =" https :// www . kh ronos . org / registry / v ulkan / specs / 1 . 2 - extensions / html / vk spec . html \ # pipelines - dynamic - state "> dynamic ally Ġset </ a > Ġthe Ġvertex Ġinput Ġattribute Ġand Ġvertex Ġinput Ġbinding Ġdescriptions , Ġcall : ĊĊĠĠĠĠĠĠĠ Ġ< pre >< code > Ċ ï¿ ¿ void ĠvkCmd Set Vertex Input EXT ( Ċ ï¿ ¿ ĠĠĠ ĠVk CommandBuffer ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcommand Buffer , Ċ ï¿ ¿ ĠĠĠ Ġuint 3 2 _ t ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvertex Binding Description Count , Ċ ï¿ ¿ ĠĠĠ Ġconst ĠVk Vertex Input Binding Description 2 EXT * Ġ Ġp Vertex Binding Descriptions , Ċ ï¿ ¿ ĠĠĠ Ġuint 3 2 _ t ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvertex Attribute Description Count , Ċ ï¿ ¿ ĠĠĠ Ġconst ĠVk Vertex Input Attribute Description 2 EXT * Ġp Vertex Attribute Descriptions );</ code ></ pre > ĊĊĠĠĠĠĠĠĠ Ġ< h 5 > Description </ h 5 > ĊĠĠĠĠĠĠĠ ĠThis Ġcommand Ġsets Ġthe Ġvertex Ġinput Ġattribute Ġand Ġvertex Ġinput Ġbinding Ġdescriptions Ġstate Ġfor Ġsubsequent Ġdrawing Ġcommands Ġwhen Ġthe Ġgraphics Ġpipeline Ġis Ġcreated Ġwith Ġ# DYNAMIC _ STATE _ VERTEX _ INPUT _ EXT Ġset Ġin Ġ## Vk Pipeline Dynamic State CreateInfo {@ code Ġ:: p Dynamic States }. ĠOtherwise , Ġthis Ġstate Ġis Ġspecified Ġby Ġthe Ġ## Vk Graphics Pipeline CreateInfo {@ code Ġ:: p Vertex Input State } Ġvalues Ġused Ġto Ġcreate Ġthe Ġcurrently Ġactive Ġpipeline . ĊĊĠĠĠĠĠĠĠ ĠIf Ġthe Ġbound Ġpipeline Ġstate Ġobject Ġwas Ġalso Ġcreated Ġwith Ġthe Ġ# DYNAMIC _ STATE _ VERTEX _ INPUT _ BINDING _ STRIDE _ EXT Ġdynamic Ġstate Ġenabled , Ġthen Ġ# Cmd Bind Vertex Buffers 2 EXT () Ġcan Ġbe Ġused Ġinstead Ġof Ġ{@ code ĠvkCmd Set Vertex Input EXT } Ġto Ġdynamically Ġset Ġthe Ġstride . ĊĊĠĠĠĠĠĠĠ Ġ< h 5 > Valid ĠUsage </ h 5 > ĊĠĠĠĠĠĠĠ Ġ< ul > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< li > The Ġ< a Ġtarget ="_ blank " Ġhref =" https :// www . kh ronos . org / registry / v ulkan / specs / 1 . 2 - extensions / html / vk spec . html \ # features - vertex Input Dynamic State "> vertex Input Dynamic State </ a > Ġfeature Ġ< b > must </ b > Ġbe Ġenabled </ li > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< li >{@ code Ġvertex Binding Description Count } Ġ< b > must </ b > Ġbe Ġless Ġthan Ġor Ġequal Ġto Ġ## Vk PhysicalDevice Limits {@ code Ġ:: max Vertex Input Bindings }</ li > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< li >{@ code Ġvertex Attribute Description Count } Ġ< b > must </ b > Ġbe Ġless Ġthan Ġor Ġequal Ġto Ġ## Vk PhysicalDevice Limits {@ code Ġ:: max Vertex Input Attributes }</ li > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< li > For Ġevery Ġ{@ code Ġbinding } Ġspecified Ġby Ġeach Ġelement Ġof Ġ{@ code Ġp Vertex Attribute Descriptions }, Ġa Ġ## Vk Vertex Input Binding Description 2 EXT Ġ< b > must </ b > Ġexist Ġin Ġ{@ code Ġp Vertex Binding Descriptions } Ġwith Ġthe Ġsame Ġvalue Ġof Ġ{@ code Ġbinding }</ li > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< li > All Ġelements Ġof Ġ{@ code Ġp Vertex Binding Descriptions } Ġ< b > must </ b > Ġdescribe Ġdistinct Ġbinding Ġnumbers </ li > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< li > All Ġelements Ġof Ġ{@ code Ġp Vertex Attribute Descriptions } Ġ< b > must </ b > Ġdescribe Ġdistinct Ġattribute Ġlocations </ li > ĊĠĠĠĠĠĠĠ Ġ</ ul > ĊĊĠĠĠĠĠĠĠ Ġ< h 5 > Valid ĠUsage Ġ( Implicit )</ h 5 > ĊĠĠĠĠĠĠĠ Ġ< ul > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< li >{@ code Ġcommand Buffer } Ġ< b > must </ b > Ġbe Ġa Ġvalid Ġ{@ code ĠVk CommandBuffer } Ġhandle </ li > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< li > If Ġ{@ code Ġvertex Binding Description Count } Ġis Ġnot Ġ 0 , Ġ{@ code Ġp Vertex Binding Descriptions } Ġ< b > must </ b > Ġbe Ġa Ġvalid Ġpointer Ġto Ġan Ġarray Ġof Ġ{@ code Ġvertex Binding Description Count } Ġvalid Ġ## Vk Vertex Input Binding Description 2 EXT Ġstructures </ li > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< li > If Ġ{@ code Ġvertex Attribute Description Count } Ġis Ġnot Ġ 0 , Ġ{@ code Ġp Vertex Attribute Descriptions } Ġ< b > must </ b > Ġbe Ġa Ġvalid Ġpointer Ġto Ġan Ġarray Ġof Ġ{@ code Ġvertex Attribute Description Count } Ġvalid Ġ## Vk Vertex Input Attribute Description 2 EXT Ġstructures </ li > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< li >{@ code Ġcommand Buffer } Ġ< b > must </ b > Ġbe Ġin Ġthe Ġ< a Ġtarget ="_ blank " Ġhref =" https :// www . kh ronos . org / registry / v ulkan / specs / 1 . 2 - extensions / html / vk spec . html \ # command buffers - lifecycle "> recording Ġstate </ a ></ li > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< li > The Ġ{@ code ĠVk Command Pool } Ġthat Ġ{@ code Ġcommand Buffer } Ġwas Ġallocated Ġfrom Ġ< b > must </ b > Ġsupport Ġgraphics Ġoperations </ li > ĊĠĠĠĠĠĠĠ Ġ</ ul > ĊĊĠĠĠĠĠĠĠ Ġ< h 5 > Host ĠSynchron ization </ h 5 > ĊĠĠĠĠĠĠĠ Ġ< ul > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< li > Host Ġaccess Ġto Ġ{@ code Ġcommand Buffer } Ġ< b > must </ b > Ġbe Ġextern ally Ġsynchronized </ li > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< li > Host Ġaccess Ġto Ġthe Ġ{@ code ĠVk Command Pool } Ġthat Ġ{@ code Ġcommand Buffer } Ġwas Ġallocated Ġfrom Ġ< b > must </ b > Ġbe Ġextern ally Ġsynchronized </ li > ĊĠĠĠĠĠĠĠ Ġ</ ul > ĊĊĠĠĠĠĠĠĠ Ġ< h 5 > Command ĠProperties </ h 5 > ĊĠĠĠĠĠĠĠ Ġ< table Ġclass =" lwjgl "> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< thead >< tr >< th >< a Ġtarget ="_ blank " Ġhref =" https :// www . kh ronos . org / registry / v ulkan / specs / 1 . 2 - extensions / html / vk spec . html \ # Vk CommandBuffer Level "> Command ĠBuffer ĠLevel s </ a ></ th >< th >< a Ġtarget ="_ blank " Ġhref =" https :// www . kh ronos . org / registry / v ulkan / specs / 1 . 2 - extensions / html / vk spec . html \ # vkCmd Begin RenderPass "> Render ĠPass ĠScope </ a ></ th >< th >< a Ġtarget ="_ blank " Ġhref =" https :// www . kh ronos . org / registry / v ulkan / specs / 1 . 2 - extensions / html / vk spec . html \ # Vk Queue Flag Bits "> Supported ĠQueue ĠTypes </ a ></ th ></ tr ></ thead > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< tbody >< tr >< td > Primary ĠSecondary </ td >< td > Both </ td >< td > Graphics </ td ></ tr ></ tbody > ĊĠĠĠĠĠĠĠ Ġ</ table > ĊĊĠĠĠĠĠĠĠ Ġ< h 5 > See ĠAlso </ h 5 > ĊĠĠĠĠĠĠĠ Ġ## Vk Vertex Input Attribute Description 2 EXT , Ġ## Vk Vertex Input Binding Description 2 EXT ĊĠĠĠĠĠĠĠ Ġ"" ", ĊĊĠĠĠĠĠĠĠ ĠVk CommandBuffer (" commandBuffer ", Ġ" the Ġcommand Ġbuffer Ġinto Ġwhich Ġthe Ġcommand Ġwill Ġbe Ġrecorded ."), ĊĠĠĠĠĠĠĠ ĠAuto Size (" p Vertex Binding Descriptions ") .. uint 3 2 _ t (" vertex Binding Description Count ", Ġ" the Ġnumber Ġof Ġvertex Ġbinding Ġdescriptions Ġprovided Ġin Ġ{@ code Ġp Vertex Binding Descriptions }. "), ĊĠĠĠĠĠĠĠ Ġnullable .. Vk Vertex Input Binding Description 2 EXT . const . p (" p Vertex Binding Descriptions ", Ġ" a Ġpointer Ġto Ġan Ġarray Ġof Ġ## Vk Vertex Input Binding Description 2 EXT Ġstructures ."), ĊĠĠĠĠĠĠĠ ĠAuto Size (" p Vertex Attribute Descriptions ") .. uint 3 2 _ t (" vertex Attribute Description Count ", Ġ" the Ġnumber Ġof Ġvertex Ġattribute Ġdescriptions Ġprovided Ġin Ġ{@ code Ġp Vertex Attribute Descriptions }. "), ĊĠĠĠĠĠĠĠ Ġnullable .. Vk Vertex Input Attribute Description 2 EXT . const . p (" p Vertex Attribute Descriptions ", Ġ" a Ġpointer Ġto Ġan Ġarray Ġof Ġ## Vk Vertex Input Attribute Description 2 EXT Ġstructures .") ĊĠĠĠ Ġ) Ċ }