Demo application that renders a triangle using Vulkan on the Pixel 3A.
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

vulkan.hpp 2.4MB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589145901459114592145931459414595145961459714598145991460014601146021460314604146051460614607146081460914610146111461214613146141461514616146171461814619146201462114622146231462414625146261462714628146291463014631146321463314634146351463614637146381463914640146411464214643146441464514646146471464814649146501465114652146531465414655146561465714658146591466014661146621466314664146651466614667146681466914670146711467214673146741467514676146771467814679146801468114682146831468414685146861468714688146891469014691146921469314694146951469614697146981469914700147011470214703147041470514706147071470814709147101471114712147131471414715147161471714718147191472014721147221472314724147251472614727147281472914730147311473214733147341473514736147371473814739147401474114742147431474414745147461474714748147491475014751147521475314754147551475614757147581475914760147611476214763147641476514766147671476814769147701477114772147731477414775147761477714778147791478014781147821478314784147851478614787147881478914790147911479214793147941479514796147971479814799148001480114802148031480414805148061480714808148091481014811148121481314814148151481614817148181481914820148211482214823148241482514826148271482814829148301483114832148331483414835148361483714838148391484014841148421484314844148451484614847148481484914850148511485214853148541485514856148571485814859148601486114862148631486414865148661486714868148691487014871148721487314874148751487614877148781487914880148811488214883148841488514886148871488814889148901489114892148931489414895148961489714898148991490014901149021490314904149051490614907149081490914910149111491214913149141491514916149171491814919149201492114922149231492414925149261492714928149291493014931149321493314934149351493614937149381493914940149411494214943149441494514946149471494814949149501495114952149531495414955149561495714958149591496014961149621496314964149651496614967149681496914970149711497214973149741497514976149771497814979149801498114982149831498414985149861498714988149891499014991149921499314994149951499614997149981499915000150011500215003150041500515006150071500815009150101501115012150131501415015150161501715018150191502015021150221502315024150251502615027150281502915030150311503215033150341503515036150371503815039150401504115042150431504415045150461504715048150491505015051150521505315054150551505615057150581505915060150611506215063150641506515066150671506815069150701507115072150731507415075150761507715078150791508015081150821508315084150851508615087150881508915090150911509215093150941509515096150971509815099151001510115102151031510415105151061510715108151091511015111151121511315114151151511615117151181511915120151211512215123151241512515126151271512815129151301513115132151331513415135151361513715138151391514015141151421514315144151451514615147151481514915150151511515215153151541515515156151571515815159151601516115162151631516415165151661516715168151691517015171151721517315174151751517615177151781517915180151811518215183151841518515186151871518815189151901519115192151931519415195151961519715198151991520015201152021520315204152051520615207152081520915210152111521215213152141521515216152171521815219152201522115222152231522415225152261522715228152291523015231152321523315234152351523615237152381523915240152411524215243152441524515246152471524815249152501525115252152531525415255152561525715258152591526015261152621526315264152651526615267152681526915270152711527215273152741527515276152771527815279152801528115282152831528415285152861528715288152891529015291152921529315294152951529615297152981529915300153011530215303153041530515306153071530815309153101531115312153131531415315153161531715318153191532015321153221532315324153251532615327153281532915330153311533215333153341533515336153371533815339153401534115342153431534415345153461534715348153491535015351153521535315354153551535615357153581535915360153611536215363153641536515366153671536815369153701537115372153731537415375153761537715378153791538015381153821538315384153851538615387153881538915390153911539215393153941539515396153971539815399154001540115402154031540415405154061540715408154091541015411154121541315414154151541615417154181541915420154211542215423154241542515426154271542815429154301543115432154331543415435154361543715438154391544015441154421544315444154451544615447154481544915450154511545215453154541545515456154571545815459154601546115462154631546415465154661546715468154691547015471154721547315474154751547615477154781547915480154811548215483154841548515486154871548815489154901549115492154931549415495154961549715498154991550015501155021550315504155051550615507155081550915510155111551215513155141551515516155171551815519155201552115522155231552415525155261552715528155291553015531155321553315534155351553615537155381553915540155411554215543155441554515546155471554815549155501555115552155531555415555155561555715558155591556015561155621556315564155651556615567155681556915570155711557215573155741557515576155771557815579155801558115582155831558415585155861558715588155891559015591155921559315594155951559615597155981559915600156011560215603156041560515606156071560815609156101561115612156131561415615156161561715618156191562015621156221562315624156251562615627156281562915630156311563215633156341563515636156371563815639156401564115642156431564415645156461564715648156491565015651156521565315654156551565615657156581565915660156611566215663156641566515666156671566815669156701567115672156731567415675156761567715678156791568015681156821568315684156851568615687156881568915690156911569215693156941569515696156971569815699157001570115702157031570415705157061570715708157091571015711157121571315714157151571615717157181571915720157211572215723157241572515726157271572815729157301573115732157331573415735157361573715738157391574015741157421574315744157451574615747157481574915750157511575215753157541575515756157571575815759157601576115762157631576415765157661576715768157691577015771157721577315774157751577615777157781577915780157811578215783157841578515786157871578815789157901579115792157931579415795157961579715798157991580015801158021580315804158051580615807158081580915810158111581215813158141581515816158171581815819158201582115822158231582415825158261582715828158291583015831158321583315834158351583615837158381583915840158411584215843158441584515846158471584815849158501585115852158531585415855158561585715858158591586015861158621586315864158651586615867158681586915870158711587215873158741587515876158771587815879158801588115882158831588415885158861588715888158891589015891158921589315894158951589615897158981589915900159011590215903159041590515906159071590815909159101591115912159131591415915159161591715918159191592015921159221592315924159251592615927159281592915930159311593215933159341593515936159371593815939159401594115942159431594415945159461594715948159491595015951159521595315954159551595615957159581595915960159611596215963159641596515966159671596815969159701597115972159731597415975159761597715978159791598015981159821598315984159851598615987159881598915990159911599215993159941599515996159971599815999160001600116002160031600416005160061600716008160091601016011160121601316014160151601616017160181601916020160211602216023160241602516026160271602816029160301603116032160331603416035160361603716038160391604016041160421604316044160451604616047160481604916050160511605216053160541605516056160571605816059160601606116062160631606416065160661606716068160691607016071160721607316074160751607616077160781607916080160811608216083160841608516086160871608816089160901609116092160931609416095160961609716098160991610016101161021610316104161051610616107161081610916110161111611216113161141611516116161171611816119161201612116122161231612416125161261612716128161291613016131161321613316134161351613616137161381613916140161411614216143161441614516146161471614816149161501615116152161531615416155161561615716158161591616016161161621616316164161651616616167161681616916170161711617216173161741617516176161771617816179161801618116182161831618416185161861618716188161891619016191161921619316194161951619616197161981619916200162011620216203162041620516206162071620816209162101621116212162131621416215162161621716218162191622016221162221622316224162251622616227162281622916230162311623216233162341623516236162371623816239162401624116242162431624416245162461624716248162491625016251162521625316254162551625616257162581625916260162611626216263162641626516266162671626816269162701627116272162731627416275162761627716278162791628016281162821628316284162851628616287162881628916290162911629216293162941629516296162971629816299163001630116302163031630416305163061630716308163091631016311163121631316314163151631616317163181631916320163211632216323163241632516326163271632816329163301633116332163331633416335163361633716338163391634016341163421634316344163451634616347163481634916350163511635216353163541635516356163571635816359163601636116362163631636416365163661636716368163691637016371163721637316374163751637616377163781637916380163811638216383163841638516386163871638816389163901639116392163931639416395163961639716398163991640016401164021640316404164051640616407164081640916410164111641216413164141641516416164171641816419164201642116422164231642416425164261642716428164291643016431164321643316434164351643616437164381643916440164411644216443164441644516446164471644816449164501645116452164531645416455164561645716458164591646016461164621646316464164651646616467164681646916470164711647216473164741647516476164771647816479164801648116482164831648416485164861648716488164891649016491164921649316494164951649616497164981649916500165011650216503165041650516506165071650816509165101651116512165131651416515165161651716518165191652016521165221652316524165251652616527165281652916530165311653216533165341653516536165371653816539165401654116542165431654416545165461654716548165491655016551165521655316554165551655616557165581655916560165611656216563165641656516566165671656816569165701657116572165731657416575165761657716578165791658016581165821658316584165851658616587165881658916590165911659216593165941659516596165971659816599166001660116602166031660416605166061660716608166091661016611166121661316614166151661616617166181661916620166211662216623166241662516626166271662816629166301663116632166331663416635166361663716638166391664016641166421664316644166451664616647166481664916650166511665216653166541665516656166571665816659166601666116662166631666416665166661666716668166691667016671166721667316674166751667616677166781667916680166811668216683166841668516686166871668816689166901669116692166931669416695166961669716698166991670016701167021670316704167051670616707167081670916710167111671216713167141671516716167171671816719167201672116722167231672416725167261672716728167291673016731167321673316734167351673616737167381673916740167411674216743167441674516746167471674816749167501675116752167531675416755167561675716758167591676016761167621676316764167651676616767167681676916770167711677216773167741677516776167771677816779167801678116782167831678416785167861678716788167891679016791167921679316794167951679616797167981679916800168011680216803168041680516806168071680816809168101681116812168131681416815168161681716818168191682016821168221682316824168251682616827168281682916830168311683216833168341683516836168371683816839168401684116842168431684416845168461684716848168491685016851168521685316854168551685616857168581685916860168611686216863168641686516866168671686816869168701687116872168731687416875168761687716878168791688016881168821688316884168851688616887168881688916890168911689216893168941689516896168971689816899169001690116902169031690416905169061690716908169091691016911169121691316914169151691616917169181691916920169211692216923169241692516926169271692816929169301693116932169331693416935169361693716938169391694016941169421694316944169451694616947169481694916950169511695216953169541695516956169571695816959169601696116962169631696416965169661696716968169691697016971169721697316974169751697616977169781697916980169811698216983169841698516986169871698816989169901699116992169931699416995169961699716998169991700017001170021700317004170051700617007170081700917010170111701217013170141701517016170171701817019170201702117022170231702417025170261702717028170291703017031170321703317034170351703617037170381703917040170411704217043170441704517046170471704817049170501705117052170531705417055170561705717058170591706017061170621706317064170651706617067170681706917070170711707217073170741707517076170771707817079170801708117082170831708417085170861708717088170891709017091170921709317094170951709617097170981709917100171011710217103171041710517106171071710817109171101711117112171131711417115171161711717118171191712017121171221712317124171251712617127171281712917130171311713217133171341713517136171371713817139171401714117142171431714417145171461714717148171491715017151171521715317154171551715617157171581715917160171611716217163171641716517166171671716817169171701717117172171731717417175171761717717178171791718017181171821718317184171851718617187171881718917190171911719217193171941719517196171971719817199172001720117202172031720417205172061720717208172091721017211172121721317214172151721617217172181721917220172211722217223172241722517226172271722817229172301723117232172331723417235172361723717238172391724017241172421724317244172451724617247172481724917250172511725217253172541725517256172571725817259172601726117262172631726417265172661726717268172691727017271172721727317274172751727617277172781727917280172811728217283172841728517286172871728817289172901729117292172931729417295172961729717298172991730017301173021730317304173051730617307173081730917310173111731217313173141731517316173171731817319173201732117322173231732417325173261732717328173291733017331173321733317334173351733617337173381733917340173411734217343173441734517346173471734817349173501735117352173531735417355173561735717358173591736017361173621736317364173651736617367173681736917370173711737217373173741737517376173771737817379173801738117382173831738417385173861738717388173891739017391173921739317394173951739617397173981739917400174011740217403174041740517406174071740817409174101741117412174131741417415174161741717418174191742017421174221742317424174251742617427174281742917430174311743217433174341743517436174371743817439174401744117442174431744417445174461744717448174491745017451174521745317454174551745617457174581745917460174611746217463174641746517466174671746817469174701747117472174731747417475174761747717478174791748017481174821748317484174851748617487174881748917490174911749217493174941749517496174971749817499175001750117502175031750417505175061750717508175091751017511175121751317514175151751617517175181751917520175211752217523175241752517526175271752817529175301753117532175331753417535175361753717538175391754017541175421754317544175451754617547175481754917550175511755217553175541755517556175571755817559175601756117562175631756417565175661756717568175691757017571175721757317574175751757617577175781757917580175811758217583175841758517586175871758817589175901759117592175931759417595175961759717598175991760017601176021760317604176051760617607176081760917610176111761217613176141761517616176171761817619176201762117622176231762417625176261762717628176291763017631176321763317634176351763617637176381763917640176411764217643176441764517646176471764817649176501765117652176531765417655176561765717658176591766017661176621766317664176651766617667176681766917670176711767217673176741767517676176771767817679176801768117682176831768417685176861768717688176891769017691176921769317694176951769617697176981769917700177011770217703177041770517706177071770817709177101771117712177131771417715177161771717718177191772017721177221772317724177251772617727177281772917730177311773217733177341773517736177371773817739177401774117742177431774417745177461774717748177491775017751177521775317754177551775617757177581775917760177611776217763177641776517766177671776817769177701777117772177731777417775177761777717778177791778017781177821778317784177851778617787177881778917790177911779217793177941779517796177971779817799178001780117802178031780417805178061780717808178091781017811178121781317814178151781617817178181781917820178211782217823178241782517826178271782817829178301783117832178331783417835178361783717838178391784017841178421784317844178451784617847178481784917850178511785217853178541785517856178571785817859178601786117862178631786417865178661786717868178691787017871178721787317874178751787617877178781787917880178811788217883178841788517886178871788817889178901789117892178931789417895178961789717898178991790017901179021790317904179051790617907179081790917910179111791217913179141791517916179171791817919179201792117922179231792417925179261792717928179291793017931179321793317934179351793617937179381793917940179411794217943179441794517946179471794817949179501795117952179531795417955179561795717958179591796017961179621796317964179651796617967179681796917970179711797217973179741797517976179771797817979179801798117982179831798417985179861798717988179891799017991179921799317994179951799617997179981799918000180011800218003180041800518006180071800818009180101801118012180131801418015180161801718018180191802018021180221802318024180251802618027180281802918030180311803218033180341803518036180371803818039180401804118042180431804418045180461804718048180491805018051180521805318054180551805618057180581805918060180611806218063180641806518066180671806818069180701807118072180731807418075180761807718078180791808018081180821808318084180851808618087180881808918090180911809218093180941809518096180971809818099181001810118102181031810418105181061810718108181091811018111181121811318114181151811618117181181811918120181211812218123181241812518126181271812818129181301813118132181331813418135181361813718138181391814018141181421814318144181451814618147181481814918150181511815218153181541815518156181571815818159181601816118162181631816418165181661816718168181691817018171181721817318174181751817618177181781817918180181811818218183181841818518186181871818818189181901819118192181931819418195181961819718198181991820018201182021820318204182051820618207182081820918210182111821218213182141821518216182171821818219182201822118222182231822418225182261822718228182291823018231182321823318234182351823618237182381823918240182411824218243182441824518246182471824818249182501825118252182531825418255182561825718258182591826018261182621826318264182651826618267182681826918270182711827218273182741827518276182771827818279182801828118282182831828418285182861828718288182891829018291182921829318294182951829618297182981829918300183011830218303183041830518306183071830818309183101831118312183131831418315183161831718318183191832018321183221832318324183251832618327183281832918330183311833218333183341833518336183371833818339183401834118342183431834418345183461834718348183491835018351183521835318354183551835618357183581835918360183611836218363183641836518366183671836818369183701837118372183731837418375183761837718378183791838018381183821838318384183851838618387183881838918390183911839218393183941839518396183971839818399184001840118402184031840418405184061840718408184091841018411184121841318414184151841618417184181841918420184211842218423184241842518426184271842818429184301843118432184331843418435184361843718438184391844018441184421844318444184451844618447184481844918450184511845218453184541845518456184571845818459184601846118462184631846418465184661846718468184691847018471184721847318474184751847618477184781847918480184811848218483184841848518486184871848818489184901849118492184931849418495184961849718498184991850018501185021850318504185051850618507185081850918510185111851218513185141851518516185171851818519185201852118522185231852418525185261852718528185291853018531185321853318534185351853618537185381853918540185411854218543185441854518546185471854818549185501855118552185531855418555185561855718558185591856018561185621856318564185651856618567185681856918570185711857218573185741857518576185771857818579185801858118582185831858418585185861858718588185891859018591185921859318594185951859618597185981859918600186011860218603186041860518606186071860818609186101861118612186131861418615186161861718618186191862018621186221862318624186251862618627186281862918630186311863218633186341863518636186371863818639186401864118642186431864418645186461864718648186491865018651186521865318654186551865618657186581865918660186611866218663186641866518666186671866818669186701867118672186731867418675186761867718678186791868018681186821868318684186851868618687186881868918690186911869218693186941869518696186971869818699187001870118702187031870418705187061870718708187091871018711187121871318714187151871618717187181871918720187211872218723187241872518726187271872818729187301873118732187331873418735187361873718738187391874018741187421874318744187451874618747187481874918750187511875218753187541875518756187571875818759187601876118762187631876418765187661876718768187691877018771187721877318774187751877618777187781877918780187811878218783187841878518786187871878818789187901879118792187931879418795187961879718798187991880018801188021880318804188051880618807188081880918810188111881218813188141881518816188171881818819188201882118822188231882418825188261882718828188291883018831188321883318834188351883618837188381883918840188411884218843188441884518846188471884818849188501885118852188531885418855188561885718858188591886018861188621886318864188651886618867188681886918870188711887218873188741887518876188771887818879188801888118882188831888418885188861888718888188891889018891188921889318894188951889618897188981889918900189011890218903189041890518906189071890818909189101891118912189131891418915189161891718918189191892018921189221892318924189251892618927189281892918930189311893218933189341893518936189371893818939189401894118942189431894418945189461894718948189491895018951189521895318954189551895618957189581895918960189611896218963189641896518966189671896818969189701897118972189731897418975189761897718978189791898018981189821898318984189851898618987189881898918990189911899218993189941899518996189971899818999190001900119002190031900419005190061900719008190091901019011190121901319014190151901619017190181901919020190211902219023190241902519026190271902819029190301903119032190331903419035190361903719038190391904019041190421904319044190451904619047190481904919050190511905219053190541905519056190571905819059190601906119062190631906419065190661906719068190691907019071190721907319074190751907619077190781907919080190811908219083190841908519086190871908819089190901909119092190931909419095190961909719098190991910019101191021910319104191051910619107191081910919110191111911219113191141911519116191171911819119191201912119122191231912419125191261912719128191291913019131191321913319134191351913619137191381913919140191411914219143191441914519146191471914819149191501915119152191531915419155191561915719158191591916019161191621916319164191651916619167191681916919170191711917219173191741917519176191771917819179191801918119182191831918419185191861918719188191891919019191191921919319194191951919619197191981919919200192011920219203192041920519206192071920819209192101921119212192131921419215192161921719218192191922019221192221922319224192251922619227192281922919230192311923219233192341923519236192371923819239192401924119242192431924419245192461924719248192491925019251192521925319254192551925619257192581925919260192611926219263192641926519266192671926819269192701927119272192731927419275192761927719278192791928019281192821928319284192851928619287192881928919290192911929219293192941929519296192971929819299193001930119302193031930419305193061930719308193091931019311193121931319314193151931619317193181931919320193211932219323193241932519326193271932819329193301933119332193331933419335193361933719338193391934019341193421934319344193451934619347193481934919350193511935219353193541935519356193571935819359193601936119362193631936419365193661936719368193691937019371193721937319374193751937619377193781937919380193811938219383193841938519386193871938819389193901939119392193931939419395193961939719398193991940019401194021940319404194051940619407194081940919410194111941219413194141941519416194171941819419194201942119422194231942419425194261942719428194291943019431194321943319434194351943619437194381943919440194411944219443194441944519446194471944819449194501945119452194531945419455194561945719458194591946019461194621946319464194651946619467194681946919470194711947219473194741947519476194771947819479194801948119482194831948419485194861948719488194891949019491194921949319494194951949619497194981949919500195011950219503195041950519506195071950819509195101951119512195131951419515195161951719518195191952019521195221952319524195251952619527195281952919530195311953219533195341953519536195371953819539195401954119542195431954419545195461954719548195491955019551195521955319554195551955619557195581955919560195611956219563195641956519566195671956819569195701957119572195731957419575195761957719578195791958019581195821958319584195851958619587195881958919590195911959219593195941959519596195971959819599196001960119602196031960419605196061960719608196091961019611196121961319614196151961619617196181961919620196211962219623196241962519626196271962819629196301963119632196331963419635196361963719638196391964019641196421964319644196451964619647196481964919650196511965219653196541965519656196571965819659196601966119662196631966419665196661966719668196691967019671196721967319674196751967619677196781967919680196811968219683196841968519686196871968819689196901969119692196931969419695196961969719698196991970019701197021970319704197051970619707197081970919710197111971219713197141971519716197171971819719197201972119722197231972419725197261972719728197291973019731197321973319734197351973619737197381973919740197411974219743197441974519746197471974819749197501975119752197531975419755197561975719758197591976019761197621976319764197651976619767197681976919770197711977219773197741977519776197771977819779197801978119782197831978419785197861978719788197891979019791197921979319794197951979619797197981979919800198011980219803198041980519806198071980819809198101981119812198131981419815198161981719818198191982019821198221982319824198251982619827198281982919830198311983219833198341983519836198371983819839198401984119842198431984419845198461984719848198491985019851198521985319854198551985619857198581985919860198611986219863198641986519866198671986819869198701987119872198731987419875198761987719878198791988019881198821988319884198851988619887198881988919890198911989219893198941989519896198971989819899199001990119902199031990419905199061990719908199091991019911199121991319914199151991619917199181991919920199211992219923199241992519926199271992819929199301993119932199331993419935199361993719938199391994019941199421994319944199451994619947199481994919950199511995219953199541995519956199571995819959199601996119962199631996419965199661996719968199691997019971199721997319974199751997619977199781997919980199811998219983199841998519986199871998819989199901999119992199931999419995199961999719998199992000020001200022000320004200052000620007200082000920010200112001220013200142001520016200172001820019200202002120022200232002420025200262002720028200292003020031200322003320034200352003620037200382003920040200412004220043200442004520046200472004820049200502005120052200532005420055200562005720058200592006020061200622006320064200652006620067200682006920070200712007220073200742007520076200772007820079200802008120082200832008420085200862008720088200892009020091200922009320094200952009620097200982009920100201012010220103201042010520106201072010820109201102011120112201132011420115201162011720118201192012020121201222012320124201252012620127201282012920130201312013220133201342013520136201372013820139201402014120142201432014420145201462014720148201492015020151201522015320154201552015620157201582015920160201612016220163201642016520166201672016820169201702017120172201732017420175201762017720178201792018020181201822018320184201852018620187201882018920190201912019220193201942019520196201972019820199202002020120202202032020420205202062020720208202092021020211202122021320214202152021620217202182021920220202212022220223202242022520226202272022820229202302023120232202332023420235202362023720238202392024020241202422024320244202452024620247202482024920250202512025220253202542025520256202572025820259202602026120262202632026420265202662026720268202692027020271202722027320274202752027620277202782027920280202812028220283202842028520286202872028820289202902029120292202932029420295202962029720298202992030020301203022030320304203052030620307203082030920310203112031220313203142031520316203172031820319203202032120322203232032420325203262032720328203292033020331203322033320334203352033620337203382033920340203412034220343203442034520346203472034820349203502035120352203532035420355203562035720358203592036020361203622036320364203652036620367203682036920370203712037220373203742037520376203772037820379203802038120382203832038420385203862038720388203892039020391203922039320394203952039620397203982039920400204012040220403204042040520406204072040820409204102041120412204132041420415204162041720418204192042020421204222042320424204252042620427204282042920430204312043220433204342043520436204372043820439204402044120442204432044420445204462044720448204492045020451204522045320454204552045620457204582045920460204612046220463204642046520466204672046820469204702047120472204732047420475204762047720478204792048020481204822048320484204852048620487204882048920490204912049220493204942049520496204972049820499205002050120502205032050420505205062050720508205092051020511205122051320514205152051620517205182051920520205212052220523205242052520526205272052820529205302053120532205332053420535205362053720538205392054020541205422054320544205452054620547205482054920550205512055220553205542055520556205572055820559205602056120562205632056420565205662056720568205692057020571205722057320574205752057620577205782057920580205812058220583205842058520586205872058820589205902059120592205932059420595205962059720598205992060020601206022060320604206052060620607206082060920610206112061220613206142061520616206172061820619206202062120622206232062420625206262062720628206292063020631206322063320634206352063620637206382063920640206412064220643206442064520646206472064820649206502065120652206532065420655206562065720658206592066020661206622066320664206652066620667206682066920670206712067220673206742067520676206772067820679206802068120682206832068420685206862068720688206892069020691206922069320694206952069620697206982069920700207012070220703207042070520706207072070820709207102071120712207132071420715207162071720718207192072020721207222072320724207252072620727207282072920730207312073220733207342073520736207372073820739207402074120742207432074420745207462074720748207492075020751207522075320754207552075620757207582075920760207612076220763207642076520766207672076820769207702077120772207732077420775207762077720778207792078020781207822078320784207852078620787207882078920790207912079220793207942079520796207972079820799208002080120802208032080420805208062080720808208092081020811208122081320814208152081620817208182081920820208212082220823208242082520826208272082820829208302083120832208332083420835208362083720838208392084020841208422084320844208452084620847208482084920850208512085220853208542085520856208572085820859208602086120862208632086420865208662086720868208692087020871208722087320874208752087620877208782087920880208812088220883208842088520886208872088820889208902089120892208932089420895208962089720898208992090020901209022090320904209052090620907209082090920910209112091220913209142091520916209172091820919209202092120922209232092420925209262092720928209292093020931209322093320934209352093620937209382093920940209412094220943209442094520946209472094820949209502095120952209532095420955209562095720958209592096020961209622096320964209652096620967209682096920970209712097220973209742097520976209772097820979209802098120982209832098420985209862098720988209892099020991209922099320994209952099620997209982099921000210012100221003210042100521006210072100821009210102101121012210132101421015210162101721018210192102021021210222102321024210252102621027210282102921030210312103221033210342103521036210372103821039210402104121042210432104421045210462104721048210492105021051210522105321054210552105621057210582105921060210612106221063210642106521066210672106821069210702107121072210732107421075210762107721078210792108021081210822108321084210852108621087210882108921090210912109221093210942109521096210972109821099211002110121102211032110421105211062110721108211092111021111211122111321114211152111621117211182111921120211212112221123211242112521126211272112821129211302113121132211332113421135211362113721138211392114021141211422114321144211452114621147211482114921150211512115221153211542115521156211572115821159211602116121162211632116421165211662116721168211692117021171211722117321174211752117621177211782117921180211812118221183211842118521186211872118821189211902119121192211932119421195211962119721198211992120021201212022120321204212052120621207212082120921210212112121221213212142121521216212172121821219212202122121222212232122421225212262122721228212292123021231212322123321234212352123621237212382123921240212412124221243212442124521246212472124821249212502125121252212532125421255212562125721258212592126021261212622126321264212652126621267212682126921270212712127221273212742127521276212772127821279212802128121282212832128421285212862128721288212892129021291212922129321294212952129621297212982129921300213012130221303213042130521306213072130821309213102131121312213132131421315213162131721318213192132021321213222132321324213252132621327213282132921330213312133221333213342133521336213372133821339213402134121342213432134421345213462134721348213492135021351213522135321354213552135621357213582135921360213612136221363213642136521366213672136821369213702137121372213732137421375213762137721378213792138021381213822138321384213852138621387213882138921390213912139221393213942139521396213972139821399214002140121402214032140421405214062140721408214092141021411214122141321414214152141621417214182141921420214212142221423214242142521426214272142821429214302143121432214332143421435214362143721438214392144021441214422144321444214452144621447214482144921450214512145221453214542145521456214572145821459214602146121462214632146421465214662146721468214692147021471214722147321474214752147621477214782147921480214812148221483214842148521486214872148821489214902149121492214932149421495214962149721498214992150021501215022150321504215052150621507215082150921510215112151221513215142151521516215172151821519215202152121522215232152421525215262152721528215292153021531215322153321534215352153621537215382153921540215412154221543215442154521546215472154821549215502155121552215532155421555215562155721558215592156021561215622156321564215652156621567215682156921570215712157221573215742157521576215772157821579215802158121582215832158421585215862158721588215892159021591215922159321594215952159621597215982159921600216012160221603216042160521606216072160821609216102161121612216132161421615216162161721618216192162021621216222162321624216252162621627216282162921630216312163221633216342163521636216372163821639216402164121642216432164421645216462164721648216492165021651216522165321654216552165621657216582165921660216612166221663216642166521666216672166821669216702167121672216732167421675216762167721678216792168021681216822168321684216852168621687216882168921690216912169221693216942169521696216972169821699217002170121702217032170421705217062170721708217092171021711217122171321714217152171621717217182171921720217212172221723217242172521726217272172821729217302173121732217332173421735217362173721738217392174021741217422174321744217452174621747217482174921750217512175221753217542175521756217572175821759217602176121762217632176421765217662176721768217692177021771217722177321774217752177621777217782177921780217812178221783217842178521786217872178821789217902179121792217932179421795217962179721798217992180021801218022180321804218052180621807218082180921810218112181221813218142181521816218172181821819218202182121822218232182421825218262182721828218292183021831218322183321834218352183621837218382183921840218412184221843218442184521846218472184821849218502185121852218532185421855218562185721858218592186021861218622186321864218652186621867218682186921870218712187221873218742187521876218772187821879218802188121882218832188421885218862188721888218892189021891218922189321894218952189621897218982189921900219012190221903219042190521906219072190821909219102191121912219132191421915219162191721918219192192021921219222192321924219252192621927219282192921930219312193221933219342193521936219372193821939219402194121942219432194421945219462194721948219492195021951219522195321954219552195621957219582195921960219612196221963219642196521966219672196821969219702197121972219732197421975219762197721978219792198021981219822198321984219852198621987219882198921990219912199221993219942199521996219972199821999220002200122002220032200422005220062200722008220092201022011220122201322014220152201622017220182201922020220212202222023220242202522026220272202822029220302203122032220332203422035220362203722038220392204022041220422204322044220452204622047220482204922050220512205222053220542205522056220572205822059220602206122062220632206422065220662206722068220692207022071220722207322074220752207622077220782207922080220812208222083220842208522086220872208822089220902209122092220932209422095220962209722098220992210022101221022210322104221052210622107221082210922110221112211222113221142211522116221172211822119221202212122122221232212422125221262212722128221292213022131221322213322134221352213622137221382213922140221412214222143221442214522146221472214822149221502215122152221532215422155221562215722158221592216022161221622216322164221652216622167221682216922170221712217222173221742217522176221772217822179221802218122182221832218422185221862218722188221892219022191221922219322194221952219622197221982219922200222012220222203222042220522206222072220822209222102221122212222132221422215222162221722218222192222022221222222222322224222252222622227222282222922230222312223222233222342223522236222372223822239222402224122242222432224422245222462224722248222492225022251222522225322254222552225622257222582225922260222612226222263222642226522266222672226822269222702227122272222732227422275222762227722278222792228022281222822228322284222852228622287222882228922290222912229222293222942229522296222972229822299223002230122302223032230422305223062230722308223092231022311223122231322314223152231622317223182231922320223212232222323223242232522326223272232822329223302233122332223332233422335223362233722338223392234022341223422234322344223452234622347223482234922350223512235222353223542235522356223572235822359223602236122362223632236422365223662236722368223692237022371223722237322374223752237622377223782237922380223812238222383223842238522386223872238822389223902239122392223932239422395223962239722398223992240022401224022240322404224052240622407224082240922410224112241222413224142241522416224172241822419224202242122422224232242422425224262242722428224292243022431224322243322434224352243622437224382243922440224412244222443224442244522446224472244822449224502245122452224532245422455224562245722458224592246022461224622246322464224652246622467224682246922470224712247222473224742247522476224772247822479224802248122482224832248422485224862248722488224892249022491224922249322494224952249622497224982249922500225012250222503225042250522506225072250822509225102251122512225132251422515225162251722518225192252022521225222252322524225252252622527225282252922530225312253222533225342253522536225372253822539225402254122542225432254422545225462254722548225492255022551225522255322554225552255622557225582255922560225612256222563225642256522566225672256822569225702257122572225732257422575225762257722578225792258022581225822258322584225852258622587225882258922590225912259222593225942259522596225972259822599226002260122602226032260422605226062260722608226092261022611226122261322614226152261622617226182261922620226212262222623226242262522626226272262822629226302263122632226332263422635226362263722638226392264022641226422264322644226452264622647226482264922650226512265222653226542265522656226572265822659226602266122662226632266422665226662266722668226692267022671226722267322674226752267622677226782267922680226812268222683226842268522686226872268822689226902269122692226932269422695226962269722698226992270022701227022270322704227052270622707227082270922710227112271222713227142271522716227172271822719227202272122722227232272422725227262272722728227292273022731227322273322734227352273622737227382273922740227412274222743227442274522746227472274822749227502275122752227532275422755227562275722758227592276022761227622276322764227652276622767227682276922770227712277222773227742277522776227772277822779227802278122782227832278422785227862278722788227892279022791227922279322794227952279622797227982279922800228012280222803228042280522806228072280822809228102281122812228132281422815228162281722818228192282022821228222282322824228252282622827228282282922830228312283222833228342283522836228372283822839228402284122842228432284422845228462284722848228492285022851228522285322854228552285622857228582285922860228612286222863228642286522866228672286822869228702287122872228732287422875228762287722878228792288022881228822288322884228852288622887228882288922890228912289222893228942289522896228972289822899229002290122902229032290422905229062290722908229092291022911229122291322914229152291622917229182291922920229212292222923229242292522926229272292822929229302293122932229332293422935229362293722938229392294022941229422294322944229452294622947229482294922950229512295222953229542295522956229572295822959229602296122962229632296422965229662296722968229692297022971229722297322974229752297622977229782297922980229812298222983229842298522986229872298822989229902299122992229932299422995229962299722998229992300023001230022300323004230052300623007230082300923010230112301223013230142301523016230172301823019230202302123022230232302423025230262302723028230292303023031230322303323034230352303623037230382303923040230412304223043230442304523046230472304823049230502305123052230532305423055230562305723058230592306023061230622306323064230652306623067230682306923070230712307223073230742307523076230772307823079230802308123082230832308423085230862308723088230892309023091230922309323094230952309623097230982309923100231012310223103231042310523106231072310823109231102311123112231132311423115231162311723118231192312023121231222312323124231252312623127231282312923130231312313223133231342313523136231372313823139231402314123142231432314423145231462314723148231492315023151231522315323154231552315623157231582315923160231612316223163231642316523166231672316823169231702317123172231732317423175231762317723178231792318023181231822318323184231852318623187231882318923190231912319223193231942319523196231972319823199232002320123202232032320423205232062320723208232092321023211232122321323214232152321623217232182321923220232212322223223232242322523226232272322823229232302323123232232332323423235232362323723238232392324023241232422324323244232452324623247232482324923250232512325223253232542325523256232572325823259232602326123262232632326423265232662326723268232692327023271232722327323274232752327623277232782327923280232812328223283232842328523286232872328823289232902329123292232932329423295232962329723298232992330023301233022330323304233052330623307233082330923310233112331223313233142331523316233172331823319233202332123322233232332423325233262332723328233292333023331233322333323334233352333623337233382333923340233412334223343233442334523346233472334823349233502335123352233532335423355233562335723358233592336023361233622336323364233652336623367233682336923370233712337223373233742337523376233772337823379233802338123382233832338423385233862338723388233892339023391233922339323394233952339623397233982339923400234012340223403234042340523406234072340823409234102341123412234132341423415234162341723418234192342023421234222342323424234252342623427234282342923430234312343223433234342343523436234372343823439234402344123442234432344423445234462344723448234492345023451234522345323454234552345623457234582345923460234612346223463234642346523466234672346823469234702347123472234732347423475234762347723478234792348023481234822348323484234852348623487234882348923490234912349223493234942349523496234972349823499235002350123502235032350423505235062350723508235092351023511235122351323514235152351623517235182351923520235212352223523235242352523526235272352823529235302353123532235332353423535235362353723538235392354023541235422354323544235452354623547235482354923550235512355223553235542355523556235572355823559235602356123562235632356423565235662356723568235692357023571235722357323574235752357623577235782357923580235812358223583235842358523586235872358823589235902359123592235932359423595235962359723598235992360023601236022360323604236052360623607236082360923610236112361223613236142361523616236172361823619236202362123622236232362423625236262362723628236292363023631236322363323634236352363623637236382363923640236412364223643236442364523646236472364823649236502365123652236532365423655236562365723658236592366023661236622366323664236652366623667236682366923670236712367223673236742367523676236772367823679236802368123682236832368423685236862368723688236892369023691236922369323694236952369623697236982369923700237012370223703237042370523706237072370823709237102371123712237132371423715237162371723718237192372023721237222372323724237252372623727237282372923730237312373223733237342373523736237372373823739237402374123742237432374423745237462374723748237492375023751237522375323754237552375623757237582375923760237612376223763237642376523766237672376823769237702377123772237732377423775237762377723778237792378023781237822378323784237852378623787237882378923790237912379223793237942379523796237972379823799238002380123802238032380423805238062380723808238092381023811238122381323814238152381623817238182381923820238212382223823238242382523826238272382823829238302383123832238332383423835238362383723838238392384023841238422384323844238452384623847238482384923850238512385223853238542385523856238572385823859238602386123862238632386423865238662386723868238692387023871238722387323874238752387623877238782387923880238812388223883238842388523886238872388823889238902389123892238932389423895238962389723898238992390023901239022390323904239052390623907239082390923910239112391223913239142391523916239172391823919239202392123922239232392423925239262392723928239292393023931239322393323934239352393623937239382393923940239412394223943239442394523946239472394823949239502395123952239532395423955239562395723958239592396023961239622396323964239652396623967239682396923970239712397223973239742397523976239772397823979239802398123982239832398423985239862398723988239892399023991239922399323994239952399623997239982399924000240012400224003240042400524006240072400824009240102401124012240132401424015240162401724018240192402024021240222402324024240252402624027240282402924030240312403224033240342403524036240372403824039240402404124042240432404424045240462404724048240492405024051240522405324054240552405624057240582405924060240612406224063240642406524066240672406824069240702407124072240732407424075240762407724078240792408024081240822408324084240852408624087240882408924090240912409224093240942409524096240972409824099241002410124102241032410424105241062410724108241092411024111241122411324114241152411624117241182411924120241212412224123241242412524126241272412824129241302413124132241332413424135241362413724138241392414024141241422414324144241452414624147241482414924150241512415224153241542415524156241572415824159241602416124162241632416424165241662416724168241692417024171241722417324174241752417624177241782417924180241812418224183241842418524186241872418824189241902419124192241932419424195241962419724198241992420024201242022420324204242052420624207242082420924210242112421224213242142421524216242172421824219242202422124222242232422424225242262422724228242292423024231242322423324234242352423624237242382423924240242412424224243242442424524246242472424824249242502425124252242532425424255242562425724258242592426024261242622426324264242652426624267242682426924270242712427224273242742427524276242772427824279242802428124282242832428424285242862428724288242892429024291242922429324294242952429624297242982429924300243012430224303243042430524306243072430824309243102431124312243132431424315243162431724318243192432024321243222432324324243252432624327243282432924330243312433224333243342433524336243372433824339243402434124342243432434424345243462434724348243492435024351243522435324354243552435624357243582435924360243612436224363243642436524366243672436824369243702437124372243732437424375243762437724378243792438024381243822438324384243852438624387243882438924390243912439224393243942439524396243972439824399244002440124402244032440424405244062440724408244092441024411244122441324414244152441624417244182441924420244212442224423244242442524426244272442824429244302443124432244332443424435244362443724438244392444024441244422444324444244452444624447244482444924450244512445224453244542445524456244572445824459244602446124462244632446424465244662446724468244692447024471244722447324474244752447624477244782447924480244812448224483244842448524486244872448824489244902449124492244932449424495244962449724498244992450024501245022450324504245052450624507245082450924510245112451224513245142451524516245172451824519245202452124522245232452424525245262452724528245292453024531245322453324534245352453624537245382453924540245412454224543245442454524546245472454824549245502455124552245532455424555245562455724558245592456024561245622456324564245652456624567245682456924570245712457224573245742457524576245772457824579245802458124582245832458424585245862458724588245892459024591245922459324594245952459624597245982459924600246012460224603246042460524606246072460824609246102461124612246132461424615246162461724618246192462024621246222462324624246252462624627246282462924630246312463224633246342463524636246372463824639246402464124642246432464424645246462464724648246492465024651246522465324654246552465624657246582465924660246612466224663246642466524666246672466824669246702467124672246732467424675246762467724678246792468024681246822468324684246852468624687246882468924690246912469224693246942469524696246972469824699247002470124702247032470424705247062470724708247092471024711247122471324714247152471624717247182471924720247212472224723247242472524726247272472824729247302473124732247332473424735247362473724738247392474024741247422474324744247452474624747247482474924750247512475224753247542475524756247572475824759247602476124762247632476424765247662476724768247692477024771247722477324774247752477624777247782477924780247812478224783247842478524786247872478824789247902479124792247932479424795247962479724798247992480024801248022480324804248052480624807248082480924810248112481224813248142481524816248172481824819248202482124822248232482424825248262482724828248292483024831248322483324834248352483624837248382483924840248412484224843248442484524846248472484824849248502485124852248532485424855248562485724858248592486024861248622486324864248652486624867248682486924870248712487224873248742487524876248772487824879248802488124882248832488424885248862488724888248892489024891248922489324894248952489624897248982489924900249012490224903249042490524906249072490824909249102491124912249132491424915249162491724918249192492024921249222492324924249252492624927249282492924930249312493224933249342493524936249372493824939249402494124942249432494424945249462494724948249492495024951249522495324954249552495624957249582495924960249612496224963249642496524966249672496824969249702497124972249732497424975249762497724978249792498024981249822498324984249852498624987249882498924990249912499224993249942499524996249972499824999250002500125002250032500425005250062500725008250092501025011250122501325014250152501625017250182501925020250212502225023250242502525026250272502825029250302503125032250332503425035250362503725038250392504025041250422504325044250452504625047250482504925050250512505225053250542505525056250572505825059250602506125062250632506425065250662506725068250692507025071250722507325074250752507625077250782507925080250812508225083250842508525086250872508825089250902509125092250932509425095250962509725098250992510025101251022510325104251052510625107251082510925110251112511225113251142511525116251172511825119251202512125122251232512425125251262512725128251292513025131251322513325134251352513625137251382513925140251412514225143251442514525146251472514825149251502515125152251532515425155251562515725158251592516025161251622516325164251652516625167251682516925170251712517225173251742517525176251772517825179251802518125182251832518425185251862518725188251892519025191251922519325194251952519625197251982519925200252012520225203252042520525206252072520825209252102521125212252132521425215252162521725218252192522025221252222522325224252252522625227252282522925230252312523225233252342523525236252372523825239252402524125242252432524425245252462524725248252492525025251252522525325254252552525625257252582525925260252612526225263252642526525266252672526825269252702527125272252732527425275252762527725278252792528025281252822528325284252852528625287252882528925290252912529225293252942529525296252972529825299253002530125302253032530425305253062530725308253092531025311253122531325314253152531625317253182531925320253212532225323253242532525326253272532825329253302533125332253332533425335253362533725338253392534025341253422534325344253452534625347253482534925350253512535225353253542535525356253572535825359253602536125362253632536425365253662536725368253692537025371253722537325374253752537625377253782537925380253812538225383253842538525386253872538825389253902539125392253932539425395253962539725398253992540025401254022540325404254052540625407254082540925410254112541225413254142541525416254172541825419254202542125422254232542425425254262542725428254292543025431254322543325434254352543625437254382543925440254412544225443254442544525446254472544825449254502545125452254532545425455254562545725458254592546025461254622546325464254652546625467254682546925470254712547225473254742547525476254772547825479254802548125482254832548425485254862548725488254892549025491254922549325494254952549625497254982549925500255012550225503255042550525506255072550825509255102551125512255132551425515255162551725518255192552025521255222552325524255252552625527255282552925530255312553225533255342553525536255372553825539255402554125542255432554425545255462554725548255492555025551255522555325554255552555625557255582555925560255612556225563255642556525566255672556825569255702557125572255732557425575255762557725578255792558025581255822558325584255852558625587255882558925590255912559225593255942559525596255972559825599256002560125602256032560425605256062560725608256092561025611256122561325614256152561625617256182561925620256212562225623256242562525626256272562825629256302563125632256332563425635256362563725638256392564025641256422564325644256452564625647256482564925650256512565225653256542565525656256572565825659256602566125662256632566425665256662566725668256692567025671256722567325674256752567625677256782567925680256812568225683256842568525686256872568825689256902569125692256932569425695256962569725698256992570025701257022570325704257052570625707257082570925710257112571225713257142571525716257172571825719257202572125722257232572425725257262572725728257292573025731257322573325734257352573625737257382573925740257412574225743257442574525746257472574825749257502575125752257532575425755257562575725758257592576025761257622576325764257652576625767257682576925770257712577225773257742577525776257772577825779257802578125782257832578425785257862578725788257892579025791257922579325794257952579625797257982579925800258012580225803258042580525806258072580825809258102581125812258132581425815258162581725818258192582025821258222582325824258252582625827258282582925830258312583225833258342583525836258372583825839258402584125842258432584425845258462584725848258492585025851258522585325854258552585625857258582585925860258612586225863258642586525866258672586825869258702587125872258732587425875258762587725878258792588025881258822588325884258852588625887258882588925890258912589225893258942589525896258972589825899259002590125902259032590425905259062590725908259092591025911259122591325914259152591625917259182591925920259212592225923259242592525926259272592825929259302593125932259332593425935259362593725938259392594025941259422594325944259452594625947259482594925950259512595225953259542595525956259572595825959259602596125962259632596425965259662596725968259692597025971259722597325974259752597625977259782597925980259812598225983259842598525986259872598825989259902599125992259932599425995259962599725998259992600026001260022600326004260052600626007260082600926010260112601226013260142601526016260172601826019260202602126022260232602426025260262602726028260292603026031260322603326034260352603626037260382603926040260412604226043260442604526046260472604826049260502605126052260532605426055260562605726058260592606026061260622606326064260652606626067260682606926070260712607226073260742607526076260772607826079260802608126082260832608426085260862608726088260892609026091260922609326094260952609626097260982609926100261012610226103261042610526106261072610826109261102611126112261132611426115261162611726118261192612026121261222612326124261252612626127261282612926130261312613226133261342613526136261372613826139261402614126142261432614426145261462614726148261492615026151261522615326154261552615626157261582615926160261612616226163261642616526166261672616826169261702617126172261732617426175261762617726178261792618026181261822618326184261852618626187261882618926190261912619226193261942619526196261972619826199262002620126202262032620426205262062620726208262092621026211262122621326214262152621626217262182621926220262212622226223262242622526226262272622826229262302623126232262332623426235262362623726238262392624026241262422624326244262452624626247262482624926250262512625226253262542625526256262572625826259262602626126262262632626426265262662626726268262692627026271262722627326274262752627626277262782627926280262812628226283262842628526286262872628826289262902629126292262932629426295262962629726298262992630026301263022630326304263052630626307263082630926310263112631226313263142631526316263172631826319263202632126322263232632426325263262632726328263292633026331263322633326334263352633626337263382633926340263412634226343263442634526346263472634826349263502635126352263532635426355263562635726358263592636026361263622636326364263652636626367263682636926370263712637226373263742637526376263772637826379263802638126382263832638426385263862638726388263892639026391263922639326394263952639626397263982639926400264012640226403264042640526406264072640826409264102641126412264132641426415264162641726418264192642026421264222642326424264252642626427264282642926430264312643226433264342643526436264372643826439264402644126442264432644426445264462644726448264492645026451264522645326454264552645626457264582645926460264612646226463264642646526466264672646826469264702647126472264732647426475264762647726478264792648026481264822648326484264852648626487264882648926490264912649226493264942649526496264972649826499265002650126502265032650426505265062650726508265092651026511265122651326514265152651626517265182651926520265212652226523265242652526526265272652826529265302653126532265332653426535265362653726538265392654026541265422654326544265452654626547265482654926550265512655226553265542655526556265572655826559265602656126562265632656426565265662656726568265692657026571265722657326574265752657626577265782657926580265812658226583265842658526586265872658826589265902659126592265932659426595265962659726598265992660026601266022660326604266052660626607266082660926610266112661226613266142661526616266172661826619266202662126622266232662426625266262662726628266292663026631266322663326634266352663626637266382663926640266412664226643266442664526646266472664826649266502665126652266532665426655266562665726658266592666026661266622666326664266652666626667266682666926670266712667226673266742667526676266772667826679266802668126682266832668426685266862668726688266892669026691266922669326694266952669626697266982669926700267012670226703267042670526706267072670826709267102671126712267132671426715267162671726718267192672026721267222672326724267252672626727267282672926730267312673226733267342673526736267372673826739267402674126742267432674426745267462674726748267492675026751267522675326754267552675626757267582675926760267612676226763267642676526766267672676826769267702677126772267732677426775267762677726778267792678026781267822678326784267852678626787267882678926790267912679226793267942679526796267972679826799268002680126802268032680426805268062680726808268092681026811268122681326814268152681626817268182681926820268212682226823268242682526826268272682826829268302683126832268332683426835268362683726838268392684026841268422684326844268452684626847268482684926850268512685226853268542685526856268572685826859268602686126862268632686426865268662686726868268692687026871268722687326874268752687626877268782687926880268812688226883268842688526886268872688826889268902689126892268932689426895268962689726898268992690026901269022690326904269052690626907269082690926910269112691226913269142691526916269172691826919269202692126922269232692426925269262692726928269292693026931269322693326934269352693626937269382693926940269412694226943269442694526946269472694826949269502695126952269532695426955269562695726958269592696026961269622696326964269652696626967269682696926970269712697226973269742697526976269772697826979269802698126982269832698426985269862698726988269892699026991269922699326994269952699626997269982699927000270012700227003270042700527006270072700827009270102701127012270132701427015270162701727018270192702027021270222702327024270252702627027270282702927030270312703227033270342703527036270372703827039270402704127042270432704427045270462704727048270492705027051270522705327054270552705627057270582705927060270612706227063270642706527066270672706827069270702707127072270732707427075270762707727078270792708027081270822708327084270852708627087270882708927090270912709227093270942709527096270972709827099271002710127102271032710427105271062710727108271092711027111271122711327114271152711627117271182711927120271212712227123271242712527126271272712827129271302713127132271332713427135271362713727138271392714027141271422714327144271452714627147271482714927150271512715227153271542715527156271572715827159271602716127162271632716427165271662716727168271692717027171271722717327174271752717627177271782717927180271812718227183271842718527186271872718827189271902719127192271932719427195271962719727198271992720027201272022720327204272052720627207272082720927210272112721227213272142721527216272172721827219272202722127222272232722427225272262722727228272292723027231272322723327234272352723627237272382723927240272412724227243272442724527246272472724827249272502725127252272532725427255272562725727258272592726027261272622726327264272652726627267272682726927270272712727227273272742727527276272772727827279272802728127282272832728427285272862728727288272892729027291272922729327294272952729627297272982729927300273012730227303273042730527306273072730827309273102731127312273132731427315273162731727318273192732027321273222732327324273252732627327273282732927330273312733227333273342733527336273372733827339273402734127342273432734427345273462734727348273492735027351273522735327354273552735627357273582735927360273612736227363273642736527366273672736827369273702737127372273732737427375273762737727378273792738027381273822738327384273852738627387273882738927390273912739227393273942739527396273972739827399274002740127402274032740427405274062740727408274092741027411274122741327414274152741627417274182741927420274212742227423274242742527426274272742827429274302743127432274332743427435274362743727438274392744027441274422744327444274452744627447274482744927450274512745227453274542745527456274572745827459274602746127462274632746427465274662746727468274692747027471274722747327474274752747627477274782747927480274812748227483274842748527486274872748827489274902749127492274932749427495274962749727498274992750027501275022750327504275052750627507275082750927510275112751227513275142751527516275172751827519275202752127522275232752427525275262752727528275292753027531275322753327534275352753627537275382753927540275412754227543275442754527546275472754827549275502755127552275532755427555275562755727558275592756027561275622756327564275652756627567275682756927570275712757227573275742757527576275772757827579275802758127582275832758427585275862758727588275892759027591275922759327594275952759627597275982759927600276012760227603276042760527606276072760827609276102761127612276132761427615276162761727618276192762027621276222762327624276252762627627276282762927630276312763227633276342763527636276372763827639276402764127642276432764427645276462764727648276492765027651276522765327654276552765627657276582765927660276612766227663276642766527666276672766827669276702767127672276732767427675276762767727678276792768027681276822768327684276852768627687276882768927690276912769227693276942769527696276972769827699277002770127702277032770427705277062770727708277092771027711277122771327714277152771627717277182771927720277212772227723277242772527726277272772827729277302773127732277332773427735277362773727738277392774027741277422774327744277452774627747277482774927750277512775227753277542775527756277572775827759277602776127762277632776427765277662776727768277692777027771277722777327774277752777627777277782777927780277812778227783277842778527786277872778827789277902779127792277932779427795277962779727798277992780027801278022780327804278052780627807278082780927810278112781227813278142781527816278172781827819278202782127822278232782427825278262782727828278292783027831278322783327834278352783627837278382783927840278412784227843278442784527846278472784827849278502785127852278532785427855278562785727858278592786027861278622786327864278652786627867278682786927870278712787227873278742787527876278772787827879278802788127882278832788427885278862788727888278892789027891278922789327894278952789627897278982789927900279012790227903279042790527906279072790827909279102791127912279132791427915279162791727918279192792027921279222792327924279252792627927279282792927930279312793227933279342793527936279372793827939279402794127942279432794427945279462794727948279492795027951279522795327954279552795627957279582795927960279612796227963279642796527966279672796827969279702797127972279732797427975279762797727978279792798027981279822798327984279852798627987279882798927990279912799227993279942799527996279972799827999280002800128002280032800428005280062800728008280092801028011280122801328014280152801628017280182801928020280212802228023280242802528026280272802828029280302803128032280332803428035280362803728038280392804028041280422804328044280452804628047280482804928050280512805228053280542805528056280572805828059280602806128062280632806428065280662806728068280692807028071280722807328074280752807628077280782807928080280812808228083280842808528086280872808828089280902809128092280932809428095280962809728098280992810028101281022810328104281052810628107281082810928110281112811228113281142811528116281172811828119281202812128122281232812428125281262812728128281292813028131281322813328134281352813628137281382813928140281412814228143281442814528146281472814828149281502815128152281532815428155281562815728158281592816028161281622816328164281652816628167281682816928170281712817228173281742817528176281772817828179281802818128182281832818428185281862818728188281892819028191281922819328194281952819628197281982819928200282012820228203282042820528206282072820828209282102821128212282132821428215282162821728218282192822028221282222822328224282252822628227282282822928230282312823228233282342823528236282372823828239282402824128242282432824428245282462824728248282492825028251282522825328254282552825628257282582825928260282612826228263282642826528266282672826828269282702827128272282732827428275282762827728278282792828028281282822828328284282852828628287282882828928290282912829228293282942829528296282972829828299283002830128302283032830428305283062830728308283092831028311283122831328314283152831628317283182831928320283212832228323283242832528326283272832828329283302833128332283332833428335283362833728338283392834028341283422834328344283452834628347283482834928350283512835228353283542835528356283572835828359283602836128362283632836428365283662836728368283692837028371283722837328374283752837628377283782837928380283812838228383283842838528386283872838828389283902839128392283932839428395283962839728398283992840028401284022840328404284052840628407284082840928410284112841228413284142841528416284172841828419284202842128422284232842428425284262842728428284292843028431284322843328434284352843628437284382843928440284412844228443284442844528446284472844828449284502845128452284532845428455284562845728458284592846028461284622846328464284652846628467284682846928470284712847228473284742847528476284772847828479284802848128482284832848428485284862848728488284892849028491284922849328494284952849628497284982849928500285012850228503285042850528506285072850828509285102851128512285132851428515285162851728518285192852028521285222852328524285252852628527285282852928530285312853228533285342853528536285372853828539285402854128542285432854428545285462854728548285492855028551285522855328554285552855628557285582855928560285612856228563285642856528566285672856828569285702857128572285732857428575285762857728578285792858028581285822858328584285852858628587285882858928590285912859228593285942859528596285972859828599286002860128602286032860428605286062860728608286092861028611286122861328614286152861628617286182861928620286212862228623286242862528626286272862828629286302863128632286332863428635286362863728638286392864028641286422864328644286452864628647286482864928650286512865228653286542865528656286572865828659286602866128662286632866428665286662866728668286692867028671286722867328674286752867628677286782867928680286812868228683286842868528686286872868828689286902869128692286932869428695286962869728698286992870028701287022870328704287052870628707287082870928710287112871228713287142871528716287172871828719287202872128722287232872428725287262872728728287292873028731287322873328734287352873628737287382873928740287412874228743287442874528746287472874828749287502875128752287532875428755287562875728758287592876028761287622876328764287652876628767287682876928770287712877228773287742877528776287772877828779287802878128782287832878428785287862878728788287892879028791287922879328794287952879628797287982879928800288012880228803288042880528806288072880828809288102881128812288132881428815288162881728818288192882028821288222882328824288252882628827288282882928830288312883228833288342883528836288372883828839288402884128842288432884428845288462884728848288492885028851288522885328854288552885628857288582885928860288612886228863288642886528866288672886828869288702887128872288732887428875288762887728878288792888028881288822888328884288852888628887288882888928890288912889228893288942889528896288972889828899289002890128902289032890428905289062890728908289092891028911289122891328914289152891628917289182891928920289212892228923289242892528926289272892828929289302893128932289332893428935289362893728938289392894028941289422894328944289452894628947289482894928950289512895228953289542895528956289572895828959289602896128962289632896428965289662896728968289692897028971289722897328974289752897628977289782897928980289812898228983289842898528986289872898828989289902899128992289932899428995289962899728998289992900029001290022900329004290052900629007290082900929010290112901229013290142901529016290172901829019290202902129022290232902429025290262902729028290292903029031290322903329034290352903629037290382903929040290412904229043290442904529046290472904829049290502905129052290532905429055290562905729058290592906029061290622906329064290652906629067290682906929070290712907229073290742907529076290772907829079290802908129082290832908429085290862908729088290892909029091290922909329094290952909629097290982909929100291012910229103291042910529106291072910829109291102911129112291132911429115291162911729118291192912029121291222912329124291252912629127291282912929130291312913229133291342913529136291372913829139291402914129142291432914429145291462914729148291492915029151291522915329154291552915629157291582915929160291612916229163291642916529166291672916829169291702917129172291732917429175291762917729178291792918029181291822918329184291852918629187291882918929190291912919229193291942919529196291972919829199292002920129202292032920429205292062920729208292092921029211292122921329214292152921629217292182921929220292212922229223292242922529226292272922829229292302923129232292332923429235292362923729238292392924029241292422924329244292452924629247292482924929250292512925229253292542925529256292572925829259292602926129262292632926429265292662926729268292692927029271292722927329274292752927629277292782927929280292812928229283292842928529286292872928829289292902929129292292932929429295292962929729298292992930029301293022930329304293052930629307293082930929310293112931229313293142931529316293172931829319293202932129322293232932429325293262932729328293292933029331293322933329334293352933629337293382933929340293412934229343293442934529346293472934829349293502935129352293532935429355293562935729358293592936029361293622936329364293652936629367293682936929370293712937229373293742937529376293772937829379293802938129382293832938429385293862938729388293892939029391293922939329394293952939629397293982939929400294012940229403294042940529406294072940829409294102941129412294132941429415294162941729418294192942029421294222942329424294252942629427294282942929430294312943229433294342943529436294372943829439294402944129442294432944429445294462944729448294492945029451294522945329454294552945629457294582945929460294612946229463294642946529466294672946829469294702947129472294732947429475294762947729478294792948029481294822948329484294852948629487294882948929490294912949229493294942949529496294972949829499295002950129502295032950429505295062950729508295092951029511295122951329514295152951629517295182951929520295212952229523295242952529526295272952829529295302953129532295332953429535295362953729538295392954029541295422954329544295452954629547295482954929550295512955229553295542955529556295572955829559295602956129562295632956429565295662956729568295692957029571295722957329574295752957629577295782957929580295812958229583295842958529586295872958829589295902959129592295932959429595295962959729598295992960029601296022960329604296052960629607296082960929610296112961229613296142961529616296172961829619296202962129622296232962429625296262962729628296292963029631296322963329634296352963629637296382963929640296412964229643296442964529646296472964829649296502965129652296532965429655296562965729658296592966029661296622966329664296652966629667296682966929670296712967229673296742967529676296772967829679296802968129682296832968429685296862968729688296892969029691296922969329694296952969629697296982969929700297012970229703297042970529706297072970829709297102971129712297132971429715297162971729718297192972029721297222972329724297252972629727297282972929730297312973229733297342973529736297372973829739297402974129742297432974429745297462974729748297492975029751297522975329754297552975629757297582975929760297612976229763297642976529766297672976829769297702977129772297732977429775297762977729778297792978029781297822978329784297852978629787297882978929790297912979229793297942979529796297972979829799298002980129802298032980429805298062980729808298092981029811298122981329814298152981629817298182981929820298212982229823298242982529826298272982829829298302983129832298332983429835298362983729838298392984029841298422984329844298452984629847298482984929850298512985229853298542985529856298572985829859298602986129862298632986429865298662986729868298692987029871298722987329874298752987629877298782987929880298812988229883298842988529886298872988829889298902989129892298932989429895298962989729898298992990029901299022990329904299052990629907299082990929910299112991229913299142991529916299172991829919299202992129922299232992429925299262992729928299292993029931299322993329934299352993629937299382993929940299412994229943299442994529946299472994829949299502995129952299532995429955299562995729958299592996029961299622996329964299652996629967299682996929970299712997229973299742997529976299772997829979299802998129982299832998429985299862998729988299892999029991299922999329994299952999629997299982999930000300013000230003300043000530006300073000830009300103001130012300133001430015300163001730018300193002030021300223002330024300253002630027300283002930030300313003230033300343003530036300373003830039300403004130042300433004430045300463004730048300493005030051300523005330054300553005630057300583005930060300613006230063300643006530066300673006830069300703007130072300733007430075300763007730078300793008030081300823008330084300853008630087300883008930090300913009230093300943009530096300973009830099301003010130102301033010430105301063010730108301093011030111301123011330114301153011630117301183011930120301213012230123301243012530126301273012830129301303013130132301333013430135301363013730138301393014030141301423014330144301453014630147301483014930150301513015230153301543015530156301573015830159301603016130162301633016430165301663016730168301693017030171301723017330174301753017630177301783017930180301813018230183301843018530186301873018830189301903019130192301933019430195301963019730198301993020030201302023020330204302053020630207302083020930210302113021230213302143021530216302173021830219302203022130222302233022430225302263022730228302293023030231302323023330234302353023630237302383023930240302413024230243302443024530246302473024830249302503025130252302533025430255302563025730258302593026030261302623026330264302653026630267302683026930270302713027230273302743027530276302773027830279302803028130282302833028430285302863028730288302893029030291302923029330294302953029630297302983029930300303013030230303303043030530306303073030830309303103031130312303133031430315303163031730318303193032030321303223032330324303253032630327303283032930330303313033230333303343033530336303373033830339303403034130342303433034430345303463034730348303493035030351303523035330354303553035630357303583035930360303613036230363303643036530366303673036830369303703037130372303733037430375303763037730378303793038030381303823038330384303853038630387303883038930390303913039230393303943039530396303973039830399304003040130402304033040430405304063040730408304093041030411304123041330414304153041630417304183041930420304213042230423304243042530426304273042830429304303043130432304333043430435304363043730438304393044030441304423044330444304453044630447304483044930450304513045230453304543045530456304573045830459304603046130462304633046430465304663046730468304693047030471304723047330474304753047630477304783047930480304813048230483304843048530486304873048830489304903049130492304933049430495304963049730498304993050030501305023050330504305053050630507305083050930510305113051230513305143051530516305173051830519305203052130522305233052430525305263052730528305293053030531305323053330534305353053630537305383053930540305413054230543305443054530546305473054830549305503055130552305533055430555305563055730558305593056030561305623056330564305653056630567305683056930570305713057230573305743057530576305773057830579305803058130582305833058430585305863058730588305893059030591305923059330594305953059630597305983059930600306013060230603306043060530606306073060830609306103061130612306133061430615306163061730618306193062030621306223062330624306253062630627306283062930630306313063230633306343063530636306373063830639306403064130642306433064430645306463064730648306493065030651306523065330654306553065630657306583065930660306613066230663306643066530666306673066830669306703067130672306733067430675306763067730678306793068030681306823068330684306853068630687306883068930690306913069230693306943069530696306973069830699307003070130702307033070430705307063070730708307093071030711307123071330714307153071630717307183071930720307213072230723307243072530726307273072830729307303073130732307333073430735307363073730738307393074030741307423074330744307453074630747307483074930750307513075230753307543075530756307573075830759307603076130762307633076430765307663076730768307693077030771307723077330774307753077630777307783077930780307813078230783307843078530786307873078830789307903079130792307933079430795307963079730798307993080030801308023080330804308053080630807308083080930810308113081230813308143081530816308173081830819308203082130822308233082430825308263082730828308293083030831308323083330834308353083630837308383083930840308413084230843308443084530846308473084830849308503085130852308533085430855308563085730858308593086030861308623086330864308653086630867308683086930870308713087230873308743087530876308773087830879308803088130882308833088430885308863088730888308893089030891308923089330894308953089630897308983089930900309013090230903309043090530906309073090830909309103091130912309133091430915309163091730918309193092030921309223092330924309253092630927309283092930930309313093230933309343093530936309373093830939309403094130942309433094430945309463094730948309493095030951309523095330954309553095630957309583095930960309613096230963309643096530966309673096830969309703097130972309733097430975309763097730978309793098030981309823098330984309853098630987309883098930990309913099230993309943099530996309973099830999310003100131002310033100431005310063100731008310093101031011310123101331014310153101631017310183101931020310213102231023310243102531026310273102831029310303103131032310333103431035310363103731038310393104031041310423104331044310453104631047310483104931050310513105231053310543105531056310573105831059310603106131062310633106431065310663106731068310693107031071310723107331074310753107631077310783107931080310813108231083310843108531086310873108831089310903109131092310933109431095310963109731098310993110031101311023110331104311053110631107311083110931110311113111231113311143111531116311173111831119311203112131122311233112431125311263112731128311293113031131311323113331134311353113631137311383113931140311413114231143311443114531146311473114831149311503115131152311533115431155311563115731158311593116031161311623116331164311653116631167311683116931170311713117231173311743117531176311773117831179311803118131182311833118431185311863118731188311893119031191311923119331194311953119631197311983119931200312013120231203312043120531206312073120831209312103121131212312133121431215312163121731218312193122031221312223122331224312253122631227312283122931230312313123231233312343123531236312373123831239312403124131242312433124431245312463124731248312493125031251312523125331254312553125631257312583125931260312613126231263312643126531266312673126831269312703127131272312733127431275312763127731278312793128031281312823128331284312853128631287312883128931290312913129231293312943129531296312973129831299313003130131302313033130431305313063130731308313093131031311313123131331314313153131631317313183131931320313213132231323313243132531326313273132831329313303133131332313333133431335313363133731338313393134031341313423134331344313453134631347313483134931350313513135231353313543135531356313573135831359313603136131362313633136431365313663136731368313693137031371313723137331374313753137631377313783137931380313813138231383313843138531386313873138831389313903139131392313933139431395313963139731398313993140031401314023140331404314053140631407314083140931410314113141231413314143141531416314173141831419314203142131422314233142431425314263142731428314293143031431314323143331434314353143631437314383143931440314413144231443314443144531446314473144831449314503145131452314533145431455314563145731458314593146031461314623146331464314653146631467314683146931470314713147231473314743147531476314773147831479314803148131482314833148431485314863148731488314893149031491314923149331494314953149631497314983149931500315013150231503315043150531506315073150831509315103151131512315133151431515315163151731518315193152031521315223152331524315253152631527315283152931530315313153231533315343153531536315373153831539315403154131542315433154431545315463154731548315493155031551315523155331554315553155631557315583155931560315613156231563315643156531566315673156831569315703157131572315733157431575315763157731578315793158031581315823158331584315853158631587315883158931590315913159231593315943159531596315973159831599316003160131602316033160431605316063160731608316093161031611316123161331614316153161631617316183161931620316213162231623316243162531626316273162831629316303163131632316333163431635316363163731638316393164031641316423164331644316453164631647316483164931650316513165231653316543165531656316573165831659316603166131662316633166431665316663166731668316693167031671316723167331674316753167631677316783167931680316813168231683316843168531686316873168831689316903169131692316933169431695316963169731698316993170031701317023170331704317053170631707317083170931710317113171231713317143171531716317173171831719317203172131722317233172431725317263172731728317293173031731317323173331734317353173631737317383173931740317413174231743317443174531746317473174831749317503175131752317533175431755317563175731758317593176031761317623176331764317653176631767317683176931770317713177231773317743177531776317773177831779317803178131782317833178431785317863178731788317893179031791317923179331794317953179631797317983179931800318013180231803318043180531806318073180831809318103181131812318133181431815318163181731818318193182031821318223182331824318253182631827318283182931830318313183231833318343183531836318373183831839318403184131842318433184431845318463184731848318493185031851318523185331854318553185631857318583185931860318613186231863318643186531866318673186831869318703187131872318733187431875318763187731878318793188031881318823188331884318853188631887318883188931890318913189231893318943189531896318973189831899319003190131902319033190431905319063190731908319093191031911319123191331914319153191631917319183191931920319213192231923319243192531926319273192831929319303193131932319333193431935319363193731938319393194031941319423194331944319453194631947319483194931950319513195231953319543195531956319573195831959319603196131962319633196431965319663196731968319693197031971319723197331974319753197631977319783197931980319813198231983319843198531986319873198831989319903199131992319933199431995319963199731998319993200032001320023200332004320053200632007320083200932010320113201232013320143201532016320173201832019320203202132022320233202432025320263202732028320293203032031320323203332034320353203632037320383203932040320413204232043320443204532046320473204832049320503205132052320533205432055320563205732058320593206032061320623206332064320653206632067320683206932070320713207232073320743207532076320773207832079320803208132082320833208432085320863208732088320893209032091320923209332094320953209632097320983209932100321013210232103321043210532106321073210832109321103211132112321133211432115321163211732118321193212032121321223212332124321253212632127321283212932130321313213232133321343213532136321373213832139321403214132142321433214432145321463214732148321493215032151321523215332154321553215632157321583215932160321613216232163321643216532166321673216832169321703217132172321733217432175321763217732178321793218032181321823218332184321853218632187321883218932190321913219232193321943219532196321973219832199322003220132202322033220432205322063220732208322093221032211322123221332214322153221632217322183221932220322213222232223322243222532226322273222832229322303223132232322333223432235322363223732238322393224032241322423224332244322453224632247322483224932250322513225232253322543225532256322573225832259322603226132262322633226432265322663226732268322693227032271322723227332274322753227632277322783227932280322813228232283322843228532286322873228832289322903229132292322933229432295322963229732298322993230032301323023230332304323053230632307323083230932310323113231232313323143231532316323173231832319323203232132322323233232432325323263232732328323293233032331323323233332334323353233632337323383233932340323413234232343323443234532346323473234832349323503235132352323533235432355323563235732358323593236032361323623236332364323653236632367323683236932370323713237232373323743237532376323773237832379323803238132382323833238432385323863238732388323893239032391323923239332394323953239632397323983239932400324013240232403324043240532406324073240832409324103241132412324133241432415324163241732418324193242032421324223242332424324253242632427324283242932430324313243232433324343243532436324373243832439324403244132442324433244432445324463244732448324493245032451324523245332454324553245632457324583245932460324613246232463324643246532466324673246832469324703247132472324733247432475324763247732478324793248032481324823248332484324853248632487324883248932490324913249232493324943249532496324973249832499325003250132502325033250432505325063250732508325093251032511325123251332514325153251632517325183251932520325213252232523325243252532526325273252832529325303253132532325333253432535325363253732538325393254032541325423254332544325453254632547325483254932550325513255232553325543255532556325573255832559325603256132562325633256432565325663256732568325693257032571325723257332574325753257632577325783257932580325813258232583325843258532586325873258832589325903259132592325933259432595325963259732598325993260032601326023260332604326053260632607326083260932610326113261232613326143261532616326173261832619326203262132622326233262432625326263262732628326293263032631326323263332634326353263632637326383263932640326413264232643326443264532646326473264832649326503265132652326533265432655326563265732658326593266032661326623266332664326653266632667326683266932670326713267232673326743267532676326773267832679326803268132682326833268432685326863268732688326893269032691326923269332694326953269632697326983269932700327013270232703327043270532706327073270832709327103271132712327133271432715327163271732718327193272032721327223272332724327253272632727327283272932730327313273232733327343273532736327373273832739327403274132742327433274432745327463274732748327493275032751327523275332754327553275632757327583275932760327613276232763327643276532766327673276832769327703277132772327733277432775327763277732778327793278032781327823278332784327853278632787327883278932790327913279232793327943279532796327973279832799328003280132802328033280432805328063280732808328093281032811328123281332814328153281632817328183281932820328213282232823328243282532826328273282832829328303283132832328333283432835328363283732838328393284032841328423284332844328453284632847328483284932850328513285232853328543285532856328573285832859328603286132862328633286432865328663286732868328693287032871328723287332874328753287632877328783287932880328813288232883328843288532886328873288832889328903289132892328933289432895328963289732898328993290032901329023290332904329053290632907329083290932910329113291232913329143291532916329173291832919329203292132922329233292432925329263292732928329293293032931329323293332934329353293632937329383293932940329413294232943329443294532946329473294832949329503295132952329533295432955329563295732958329593296032961329623296332964329653296632967329683296932970329713297232973329743297532976329773297832979329803298132982329833298432985329863298732988329893299032991329923299332994329953299632997329983299933000330013300233003330043300533006330073300833009330103301133012330133301433015330163301733018330193302033021330223302333024330253302633027330283302933030330313303233033330343303533036330373303833039330403304133042330433304433045330463304733048330493305033051330523305333054330553305633057330583305933060330613306233063330643306533066330673306833069330703307133072330733307433075330763307733078330793308033081330823308333084330853308633087330883308933090330913309233093330943309533096330973309833099331003310133102331033310433105331063310733108331093311033111331123311333114331153311633117331183311933120331213312233123331243312533126331273312833129331303313133132331333313433135331363313733138331393314033141331423314333144331453314633147331483314933150331513315233153331543315533156331573315833159331603316133162331633316433165331663316733168331693317033171331723317333174331753317633177331783317933180331813318233183331843318533186331873318833189331903319133192331933319433195331963319733198331993320033201332023320333204332053320633207332083320933210332113321233213332143321533216332173321833219332203322133222332233322433225332263322733228332293323033231332323323333234332353323633237332383323933240332413324233243332443324533246332473324833249332503325133252332533325433255332563325733258332593326033261332623326333264332653326633267332683326933270332713327233273332743327533276332773327833279332803328133282332833328433285332863328733288332893329033291332923329333294332953329633297332983329933300333013330233303333043330533306333073330833309333103331133312333133331433315333163331733318333193332033321333223332333324333253332633327333283332933330333313333233333333343333533336333373333833339333403334133342333433334433345333463334733348333493335033351333523335333354333553335633357333583335933360333613336233363333643336533366333673336833369333703337133372333733337433375333763337733378333793338033381333823338333384333853338633387333883338933390333913339233393333943339533396333973339833399334003340133402334033340433405334063340733408334093341033411334123341333414334153341633417334183341933420334213342233423334243342533426334273342833429334303343133432334333343433435334363343733438334393344033441334423344333444334453344633447334483344933450334513345233453334543345533456334573345833459334603346133462334633346433465334663346733468334693347033471334723347333474334753347633477334783347933480334813348233483334843348533486334873348833489334903349133492334933349433495334963349733498334993350033501335023350333504335053350633507335083350933510335113351233513335143351533516335173351833519335203352133522335233352433525335263352733528335293353033531335323353333534335353353633537335383353933540335413354233543335443354533546335473354833549335503355133552335533355433555335563355733558335593356033561335623356333564335653356633567335683356933570335713357233573335743357533576335773357833579335803358133582335833358433585335863358733588335893359033591335923359333594335953359633597335983359933600336013360233603336043360533606336073360833609336103361133612336133361433615336163361733618336193362033621336223362333624336253362633627336283362933630336313363233633336343363533636336373363833639336403364133642336433364433645336463364733648336493365033651336523365333654336553365633657336583365933660336613366233663336643366533666336673366833669336703367133672336733367433675336763367733678336793368033681336823368333684336853368633687336883368933690336913369233693336943369533696336973369833699337003370133702337033370433705337063370733708337093371033711337123371333714337153371633717337183371933720337213372233723337243372533726337273372833729337303373133732337333373433735337363373733738337393374033741337423374333744337453374633747337483374933750337513375233753337543375533756337573375833759337603376133762337633376433765337663376733768337693377033771337723377333774337753377633777337783377933780337813378233783337843378533786337873378833789337903379133792337933379433795337963379733798337993380033801338023380333804338053380633807338083380933810338113381233813338143381533816338173381833819338203382133822338233382433825338263382733828338293383033831338323383333834338353383633837338383383933840338413384233843338443384533846338473384833849338503385133852338533385433855338563385733858338593386033861338623386333864338653386633867338683386933870338713387233873338743387533876338773387833879338803388133882338833388433885338863388733888338893389033891338923389333894338953389633897338983389933900339013390233903339043390533906339073390833909339103391133912339133391433915339163391733918339193392033921339223392333924339253392633927339283392933930339313393233933339343393533936339373393833939339403394133942339433394433945339463394733948339493395033951339523395333954339553395633957339583395933960339613396233963339643396533966339673396833969339703397133972339733397433975339763397733978339793398033981339823398333984339853398633987339883398933990339913399233993339943399533996339973399833999340003400134002340033400434005340063400734008340093401034011340123401334014340153401634017340183401934020340213402234023340243402534026340273402834029340303403134032340333403434035340363403734038340393404034041340423404334044340453404634047340483404934050340513405234053340543405534056340573405834059340603406134062340633406434065340663406734068340693407034071340723407334074340753407634077340783407934080340813408234083340843408534086340873408834089340903409134092340933409434095340963409734098340993410034101341023410334104341053410634107341083410934110341113411234113341143411534116341173411834119341203412134122341233412434125341263412734128341293413034131341323413334134341353413634137341383413934140341413414234143341443414534146341473414834149341503415134152341533415434155341563415734158341593416034161341623416334164341653416634167341683416934170341713417234173341743417534176341773417834179341803418134182341833418434185341863418734188341893419034191341923419334194341953419634197341983419934200342013420234203342043420534206342073420834209342103421134212342133421434215342163421734218342193422034221342223422334224342253422634227342283422934230342313423234233342343423534236342373423834239342403424134242342433424434245342463424734248342493425034251342523425334254342553425634257342583425934260342613426234263342643426534266342673426834269342703427134272342733427434275342763427734278342793428034281342823428334284342853428634287342883428934290342913429234293342943429534296342973429834299343003430134302343033430434305343063430734308343093431034311343123431334314343153431634317343183431934320343213432234323343243432534326343273432834329343303433134332343333433434335343363433734338343393434034341343423434334344343453434634347343483434934350343513435234353343543435534356343573435834359343603436134362343633436434365343663436734368343693437034371343723437334374343753437634377343783437934380343813438234383343843438534386343873438834389343903439134392343933439434395343963439734398343993440034401344023440334404344053440634407344083440934410344113441234413344143441534416344173441834419344203442134422344233442434425344263442734428344293443034431344323443334434344353443634437344383443934440344413444234443344443444534446344473444834449344503445134452344533445434455344563445734458344593446034461344623446334464344653446634467344683446934470344713447234473344743447534476344773447834479344803448134482344833448434485344863448734488344893449034491344923449334494344953449634497344983449934500345013450234503345043450534506345073450834509345103451134512345133451434515345163451734518345193452034521345223452334524345253452634527345283452934530345313453234533345343453534536345373453834539345403454134542345433454434545345463454734548345493455034551345523455334554345553455634557345583455934560345613456234563345643456534566345673456834569345703457134572345733457434575345763457734578345793458034581345823458334584345853458634587345883458934590345913459234593345943459534596345973459834599346003460134602346033460434605346063460734608346093461034611346123461334614346153461634617346183461934620346213462234623346243462534626346273462834629346303463134632346333463434635346363463734638346393464034641346423464334644346453464634647346483464934650346513465234653346543465534656346573465834659346603466134662346633466434665346663466734668346693467034671346723467334674346753467634677346783467934680346813468234683346843468534686346873468834689346903469134692346933469434695346963469734698346993470034701347023470334704347053470634707347083470934710347113471234713347143471534716347173471834719347203472134722347233472434725347263472734728347293473034731347323473334734347353473634737347383473934740347413474234743347443474534746347473474834749347503475134752347533475434755347563475734758347593476034761347623476334764347653476634767347683476934770347713477234773347743477534776347773477834779347803478134782347833478434785347863478734788347893479034791347923479334794347953479634797347983479934800348013480234803348043480534806348073480834809348103481134812348133481434815348163481734818348193482034821348223482334824348253482634827348283482934830348313483234833348343483534836348373483834839348403484134842348433484434845348463484734848348493485034851348523485334854348553485634857348583485934860348613486234863348643486534866348673486834869348703487134872348733487434875348763487734878348793488034881348823488334884348853488634887348883488934890348913489234893348943489534896348973489834899349003490134902349033490434905349063490734908349093491034911349123491334914349153491634917349183491934920349213492234923349243492534926349273492834929349303493134932349333493434935349363493734938349393494034941349423494334944349453494634947349483494934950349513495234953349543495534956349573495834959349603496134962349633496434965349663496734968349693497034971349723497334974349753497634977349783497934980349813498234983349843498534986349873498834989349903499134992349933499434995349963499734998349993500035001350023500335004350053500635007350083500935010350113501235013350143501535016350173501835019350203502135022350233502435025350263502735028350293503035031350323503335034350353503635037350383503935040350413504235043350443504535046350473504835049350503505135052350533505435055350563505735058350593506035061350623506335064350653506635067350683506935070350713507235073350743507535076350773507835079350803508135082350833508435085350863508735088350893509035091350923509335094350953509635097350983509935100351013510235103351043510535106351073510835109351103511135112351133511435115351163511735118351193512035121351223512335124351253512635127351283512935130351313513235133351343513535136351373513835139351403514135142351433514435145351463514735148351493515035151351523515335154351553515635157351583515935160351613516235163351643516535166351673516835169351703517135172351733517435175351763517735178351793518035181351823518335184351853518635187351883518935190351913519235193351943519535196351973519835199352003520135202352033520435205352063520735208352093521035211352123521335214352153521635217352183521935220352213522235223352243522535226352273522835229352303523135232352333523435235352363523735238352393524035241352423524335244352453524635247352483524935250352513525235253352543525535256352573525835259352603526135262352633526435265352663526735268352693527035271352723527335274352753527635277352783527935280352813528235283352843528535286352873528835289352903529135292352933529435295352963529735298352993530035301353023530335304353053530635307353083530935310353113531235313353143531535316353173531835319353203532135322353233532435325353263532735328353293533035331353323533335334353353533635337353383533935340353413534235343353443534535346353473534835349353503535135352353533535435355353563535735358353593536035361353623536335364353653536635367353683536935370353713537235373353743537535376353773537835379353803538135382353833538435385353863538735388353893539035391353923539335394353953539635397353983539935400354013540235403354043540535406354073540835409354103541135412354133541435415354163541735418354193542035421354223542335424354253542635427354283542935430354313543235433354343543535436354373543835439354403544135442354433544435445354463544735448354493545035451354523545335454354553545635457354583545935460354613546235463354643546535466354673546835469354703547135472354733547435475354763547735478354793548035481354823548335484354853548635487354883548935490354913549235493354943549535496354973549835499355003550135502355033550435505355063550735508355093551035511355123551335514355153551635517355183551935520355213552235523355243552535526355273552835529355303553135532355333553435535355363553735538355393554035541355423554335544355453554635547355483554935550355513555235553355543555535556355573555835559355603556135562355633556435565355663556735568355693557035571355723557335574355753557635577355783557935580355813558235583355843558535586355873558835589355903559135592355933559435595355963559735598355993560035601356023560335604356053560635607356083560935610356113561235613356143561535616356173561835619356203562135622356233562435625356263562735628356293563035631356323563335634356353563635637356383563935640356413564235643356443564535646356473564835649356503565135652356533565435655356563565735658356593566035661356623566335664356653566635667356683566935670356713567235673356743567535676356773567835679356803568135682356833568435685356863568735688356893569035691356923569335694356953569635697356983569935700357013570235703357043570535706357073570835709357103571135712357133571435715357163571735718357193572035721357223572335724357253572635727357283572935730357313573235733357343573535736357373573835739357403574135742357433574435745357463574735748357493575035751357523575335754357553575635757357583575935760357613576235763357643576535766357673576835769357703577135772357733577435775357763577735778357793578035781357823578335784357853578635787357883578935790357913579235793357943579535796357973579835799358003580135802358033580435805358063580735808358093581035811358123581335814358153581635817358183581935820358213582235823358243582535826358273582835829358303583135832358333583435835358363583735838358393584035841358423584335844358453584635847358483584935850358513585235853358543585535856358573585835859358603586135862358633586435865358663586735868358693587035871358723587335874358753587635877358783587935880358813588235883358843588535886358873588835889358903589135892358933589435895358963589735898358993590035901359023590335904359053590635907359083590935910359113591235913359143591535916359173591835919359203592135922359233592435925359263592735928359293593035931359323593335934359353593635937359383593935940359413594235943359443594535946359473594835949359503595135952359533595435955359563595735958359593596035961359623596335964359653596635967359683596935970359713597235973359743597535976359773597835979359803598135982359833598435985359863598735988359893599035991359923599335994359953599635997359983599936000360013600236003360043600536006360073600836009360103601136012360133601436015360163601736018360193602036021360223602336024360253602636027360283602936030360313603236033360343603536036360373603836039360403604136042360433604436045360463604736048360493605036051360523605336054360553605636057360583605936060360613606236063360643606536066360673606836069360703607136072360733607436075360763607736078360793608036081360823608336084360853608636087360883608936090360913609236093360943609536096360973609836099361003610136102361033610436105361063610736108361093611036111361123611336114361153611636117361183611936120361213612236123361243612536126361273612836129361303613136132361333613436135361363613736138361393614036141361423614336144361453614636147361483614936150361513615236153361543615536156361573615836159361603616136162361633616436165361663616736168361693617036171361723617336174361753617636177361783617936180361813618236183361843618536186361873618836189361903619136192361933619436195361963619736198361993620036201362023620336204362053620636207362083620936210362113621236213362143621536216362173621836219362203622136222362233622436225362263622736228362293623036231362323623336234362353623636237362383623936240362413624236243362443624536246362473624836249362503625136252362533625436255362563625736258362593626036261362623626336264362653626636267362683626936270362713627236273362743627536276362773627836279362803628136282362833628436285362863628736288362893629036291362923629336294362953629636297362983629936300363013630236303363043630536306363073630836309363103631136312363133631436315363163631736318363193632036321363223632336324363253632636327363283632936330363313633236333363343633536336363373633836339363403634136342363433634436345363463634736348363493635036351363523635336354363553635636357363583635936360363613636236363363643636536366363673636836369363703637136372363733637436375363763637736378363793638036381363823638336384363853638636387363883638936390363913639236393363943639536396363973639836399364003640136402364033640436405364063640736408364093641036411364123641336414364153641636417364183641936420364213642236423364243642536426364273642836429364303643136432364333643436435364363643736438364393644036441364423644336444364453644636447364483644936450364513645236453364543645536456364573645836459364603646136462364633646436465364663646736468364693647036471364723647336474364753647636477364783647936480364813648236483364843648536486364873648836489364903649136492364933649436495364963649736498364993650036501365023650336504365053650636507365083650936510365113651236513365143651536516365173651836519365203652136522365233652436525365263652736528365293653036531365323653336534365353653636537365383653936540365413654236543365443654536546365473654836549365503655136552365533655436555365563655736558365593656036561365623656336564365653656636567365683656936570365713657236573365743657536576365773657836579365803658136582365833658436585365863658736588365893659036591365923659336594365953659636597365983659936600366013660236603366043660536606366073660836609366103661136612366133661436615366163661736618366193662036621366223662336624366253662636627366283662936630366313663236633366343663536636366373663836639366403664136642366433664436645366463664736648366493665036651366523665336654366553665636657366583665936660366613666236663366643666536666366673666836669366703667136672366733667436675366763667736678366793668036681366823668336684366853668636687366883668936690366913669236693366943669536696366973669836699367003670136702367033670436705367063670736708367093671036711367123671336714367153671636717367183671936720367213672236723367243672536726367273672836729367303673136732367333673436735367363673736738367393674036741367423674336744367453674636747367483674936750367513675236753367543675536756367573675836759367603676136762367633676436765367663676736768367693677036771367723677336774367753677636777367783677936780367813678236783367843678536786367873678836789367903679136792367933679436795367963679736798367993680036801368023680336804368053680636807368083680936810368113681236813368143681536816368173681836819368203682136822368233682436825368263682736828368293683036831368323683336834368353683636837368383683936840368413684236843368443684536846368473684836849368503685136852368533685436855368563685736858368593686036861368623686336864368653686636867368683686936870368713687236873368743687536876368773687836879368803688136882368833688436885368863688736888368893689036891368923689336894368953689636897368983689936900369013690236903369043690536906369073690836909369103691136912369133691436915369163691736918369193692036921369223692336924369253692636927369283692936930369313693236933369343693536936369373693836939369403694136942369433694436945369463694736948369493695036951369523695336954369553695636957369583695936960369613696236963369643696536966369673696836969369703697136972369733697436975369763697736978369793698036981369823698336984369853698636987369883698936990369913699236993369943699536996369973699836999370003700137002370033700437005370063700737008370093701037011370123701337014370153701637017370183701937020370213702237023370243702537026370273702837029370303703137032370333703437035370363703737038370393704037041370423704337044370453704637047370483704937050370513705237053370543705537056370573705837059370603706137062370633706437065370663706737068370693707037071370723707337074370753707637077370783707937080370813708237083370843708537086370873708837089370903709137092370933709437095370963709737098370993710037101371023710337104371053710637107371083710937110371113711237113371143711537116371173711837119371203712137122371233712437125371263712737128371293713037131371323713337134371353713637137371383713937140371413714237143371443714537146371473714837149371503715137152371533715437155371563715737158371593716037161371623716337164371653716637167371683716937170371713717237173371743717537176371773717837179371803718137182371833718437185371863718737188371893719037191371923719337194371953719637197371983719937200372013720237203372043720537206372073720837209372103721137212372133721437215372163721737218372193722037221372223722337224372253722637227372283722937230372313723237233372343723537236372373723837239372403724137242372433724437245372463724737248372493725037251372523725337254372553725637257372583725937260372613726237263372643726537266372673726837269372703727137272372733727437275372763727737278372793728037281372823728337284372853728637287372883728937290372913729237293372943729537296372973729837299373003730137302373033730437305373063730737308373093731037311373123731337314373153731637317373183731937320373213732237323373243732537326373273732837329373303733137332373333733437335373363733737338373393734037341373423734337344373453734637347373483734937350373513735237353373543735537356373573735837359373603736137362373633736437365373663736737368373693737037371373723737337374373753737637377373783737937380373813738237383373843738537386373873738837389373903739137392373933739437395373963739737398373993740037401374023740337404374053740637407374083740937410374113741237413374143741537416374173741837419374203742137422374233742437425374263742737428374293743037431374323743337434374353743637437374383743937440374413744237443374443744537446374473744837449374503745137452374533745437455374563745737458374593746037461374623746337464374653746637467374683746937470374713747237473374743747537476374773747837479374803748137482374833748437485374863748737488374893749037491374923749337494374953749637497374983749937500375013750237503375043750537506375073750837509375103751137512375133751437515375163751737518375193752037521375223752337524375253752637527375283752937530375313753237533375343753537536375373753837539375403754137542375433754437545375463754737548375493755037551375523755337554375553755637557375583755937560375613756237563375643756537566375673756837569375703757137572375733757437575375763757737578375793758037581375823758337584375853758637587375883758937590375913759237593375943759537596375973759837599376003760137602376033760437605376063760737608376093761037611376123761337614376153761637617376183761937620376213762237623376243762537626376273762837629376303763137632376333763437635376363763737638376393764037641376423764337644376453764637647376483764937650376513765237653376543765537656376573765837659376603766137662376633766437665376663766737668376693767037671376723767337674376753767637677376783767937680376813768237683376843768537686376873768837689376903769137692376933769437695376963769737698376993770037701377023770337704377053770637707377083770937710377113771237713377143771537716377173771837719377203772137722377233772437725377263772737728377293773037731377323773337734377353773637737377383773937740377413774237743377443774537746377473774837749377503775137752377533775437755377563775737758377593776037761377623776337764377653776637767377683776937770377713777237773377743777537776377773777837779377803778137782377833778437785377863778737788377893779037791377923779337794377953779637797377983779937800378013780237803378043780537806378073780837809378103781137812378133781437815378163781737818378193782037821378223782337824378253782637827378283782937830378313783237833378343783537836378373783837839378403784137842378433784437845378463784737848378493785037851378523785337854378553785637857378583785937860378613786237863378643786537866378673786837869378703787137872378733787437875378763787737878378793788037881378823788337884378853788637887378883788937890378913789237893378943789537896378973789837899379003790137902379033790437905379063790737908379093791037911379123791337914379153791637917379183791937920379213792237923379243792537926379273792837929379303793137932379333793437935379363793737938379393794037941379423794337944379453794637947379483794937950379513795237953379543795537956379573795837959379603796137962379633796437965379663796737968379693797037971379723797337974379753797637977379783797937980379813798237983379843798537986379873798837989379903799137992379933799437995379963799737998379993800038001380023800338004380053800638007380083800938010380113801238013380143801538016380173801838019380203802138022380233802438025380263802738028380293803038031380323803338034380353803638037380383803938040380413804238043380443804538046380473804838049380503805138052380533805438055380563805738058380593806038061380623806338064380653806638067380683806938070380713807238073380743807538076380773807838079380803808138082380833808438085380863808738088380893809038091380923809338094380953809638097380983809938100381013810238103381043810538106381073810838109381103811138112381133811438115381163811738118381193812038121381223812338124381253812638127381283812938130381313813238133381343813538136381373813838139381403814138142381433814438145381463814738148381493815038151381523815338154381553815638157381583815938160381613816238163381643816538166381673816838169381703817138172381733817438175381763817738178381793818038181381823818338184381853818638187381883818938190381913819238193381943819538196381973819838199382003820138202382033820438205382063820738208382093821038211382123821338214382153821638217382183821938220382213822238223382243822538226382273822838229382303823138232382333823438235382363823738238382393824038241382423824338244382453824638247382483824938250382513825238253382543825538256382573825838259382603826138262382633826438265382663826738268382693827038271382723827338274382753827638277382783827938280382813828238283382843828538286382873828838289382903829138292382933829438295382963829738298382993830038301383023830338304383053830638307383083830938310383113831238313383143831538316383173831838319383203832138322383233832438325383263832738328383293833038331383323833338334383353833638337383383833938340383413834238343383443834538346383473834838349383503835138352383533835438355383563835738358383593836038361383623836338364383653836638367383683836938370383713837238373383743837538376383773837838379383803838138382383833838438385383863838738388383893839038391383923839338394383953839638397383983839938400384013840238403384043840538406384073840838409384103841138412384133841438415384163841738418384193842038421384223842338424384253842638427384283842938430384313843238433384343843538436384373843838439384403844138442384433844438445384463844738448384493845038451384523845338454384553845638457384583845938460384613846238463384643846538466384673846838469384703847138472384733847438475384763847738478384793848038481384823848338484384853848638487384883848938490384913849238493384943849538496384973849838499385003850138502385033850438505385063850738508385093851038511385123851338514385153851638517385183851938520385213852238523385243852538526385273852838529385303853138532385333853438535385363853738538385393854038541385423854338544385453854638547385483854938550385513855238553385543855538556385573855838559385603856138562385633856438565385663856738568385693857038571385723857338574385753857638577385783857938580385813858238583385843858538586385873858838589385903859138592385933859438595385963859738598385993860038601386023860338604386053860638607386083860938610386113861238613386143861538616386173861838619386203862138622386233862438625386263862738628386293863038631386323863338634386353863638637386383863938640386413864238643386443864538646386473864838649386503865138652386533865438655386563865738658386593866038661386623866338664386653866638667386683866938670386713867238673386743867538676386773867838679386803868138682386833868438685386863868738688386893869038691386923869338694386953869638697386983869938700387013870238703387043870538706387073870838709387103871138712387133871438715387163871738718387193872038721387223872338724387253872638727387283872938730387313873238733387343873538736387373873838739387403874138742387433874438745387463874738748387493875038751387523875338754387553875638757387583875938760387613876238763387643876538766387673876838769387703877138772387733877438775387763877738778387793878038781387823878338784387853878638787387883878938790387913879238793387943879538796387973879838799388003880138802388033880438805388063880738808388093881038811388123881338814388153881638817388183881938820388213882238823388243882538826388273882838829388303883138832388333883438835388363883738838388393884038841388423884338844388453884638847388483884938850388513885238853388543885538856388573885838859388603886138862388633886438865388663886738868388693887038871388723887338874388753887638877388783887938880388813888238883388843888538886388873888838889388903889138892388933889438895388963889738898388993890038901389023890338904389053890638907389083890938910389113891238913389143891538916389173891838919389203892138922389233892438925389263892738928389293893038931389323893338934389353893638937389383893938940389413894238943389443894538946389473894838949389503895138952389533895438955389563895738958389593896038961389623896338964389653896638967389683896938970389713897238973389743897538976389773897838979389803898138982389833898438985389863898738988389893899038991389923899338994389953899638997389983899939000390013900239003390043900539006390073900839009390103901139012390133901439015390163901739018390193902039021390223902339024390253902639027390283902939030390313903239033390343903539036390373903839039390403904139042390433904439045390463904739048390493905039051390523905339054390553905639057390583905939060390613906239063390643906539066390673906839069390703907139072390733907439075390763907739078390793908039081390823908339084390853908639087390883908939090390913909239093390943909539096390973909839099391003910139102391033910439105391063910739108391093911039111391123911339114391153911639117391183911939120391213912239123391243912539126391273912839129391303913139132391333913439135391363913739138391393914039141391423914339144391453914639147391483914939150391513915239153391543915539156391573915839159391603916139162391633916439165391663916739168391693917039171391723917339174391753917639177391783917939180391813918239183391843918539186391873918839189391903919139192391933919439195391963919739198391993920039201392023920339204392053920639207392083920939210392113921239213392143921539216392173921839219392203922139222392233922439225392263922739228392293923039231392323923339234392353923639237392383923939240392413924239243392443924539246392473924839249392503925139252392533925439255392563925739258392593926039261392623926339264392653926639267392683926939270392713927239273392743927539276392773927839279392803928139282392833928439285392863928739288392893929039291392923929339294392953929639297392983929939300393013930239303393043930539306393073930839309393103931139312393133931439315393163931739318393193932039321393223932339324393253932639327393283932939330393313933239333393343933539336393373933839339393403934139342393433934439345393463934739348393493935039351393523935339354393553935639357393583935939360393613936239363393643936539366393673936839369393703937139372393733937439375393763937739378393793938039381393823938339384393853938639387393883938939390393913939239393393943939539396393973939839399394003940139402394033940439405394063940739408394093941039411394123941339414394153941639417394183941939420394213942239423394243942539426394273942839429394303943139432394333943439435394363943739438394393944039441394423944339444394453944639447394483944939450394513945239453394543945539456394573945839459394603946139462394633946439465394663946739468394693947039471394723947339474394753947639477394783947939480394813948239483394843948539486394873948839489394903949139492394933949439495394963949739498394993950039501395023950339504395053950639507395083950939510395113951239513395143951539516395173951839519395203952139522395233952439525395263952739528395293953039531395323953339534395353953639537395383953939540395413954239543395443954539546395473954839549395503955139552395533955439555395563955739558395593956039561395623956339564395653956639567395683956939570395713957239573395743957539576395773957839579395803958139582395833958439585395863958739588395893959039591395923959339594395953959639597395983959939600396013960239603396043960539606396073960839609396103961139612396133961439615396163961739618396193962039621396223962339624396253962639627396283962939630396313963239633396343963539636396373963839639396403964139642396433964439645396463964739648396493965039651396523965339654396553965639657396583965939660396613966239663396643966539666396673966839669396703967139672396733967439675396763967739678396793968039681396823968339684396853968639687396883968939690396913969239693396943969539696396973969839699397003970139702397033970439705397063970739708397093971039711397123971339714397153971639717397183971939720397213972239723397243972539726397273972839729397303973139732397333973439735397363973739738397393974039741397423974339744397453974639747397483974939750397513975239753397543975539756397573975839759397603976139762397633976439765397663976739768397693977039771397723977339774397753977639777397783977939780397813978239783397843978539786397873978839789397903979139792397933979439795397963979739798397993980039801398023980339804398053980639807398083980939810398113981239813398143981539816398173981839819398203982139822398233982439825398263982739828398293983039831398323983339834398353983639837398383983939840398413984239843398443984539846398473984839849398503985139852398533985439855398563985739858398593986039861398623986339864398653986639867398683986939870398713987239873398743987539876398773987839879398803988139882398833988439885398863988739888398893989039891398923989339894398953989639897398983989939900399013990239903399043990539906399073990839909399103991139912399133991439915399163991739918399193992039921399223992339924399253992639927399283992939930399313993239933399343993539936399373993839939399403994139942399433994439945399463994739948399493995039951399523995339954399553995639957399583995939960399613996239963399643996539966399673996839969399703997139972399733997439975399763997739978399793998039981399823998339984399853998639987399883998939990399913999239993399943999539996399973999839999400004000140002400034000440005400064000740008400094001040011400124001340014400154001640017400184001940020400214002240023400244002540026400274002840029400304003140032400334003440035400364003740038400394004040041400424004340044400454004640047400484004940050400514005240053400544005540056400574005840059400604006140062400634006440065400664006740068400694007040071400724007340074400754007640077400784007940080400814008240083400844008540086400874008840089400904009140092400934009440095400964009740098400994010040101401024010340104401054010640107401084010940110401114011240113401144011540116401174011840119401204012140122401234012440125401264012740128401294013040131401324013340134401354013640137401384013940140401414014240143401444014540146401474014840149401504015140152401534015440155401564015740158401594016040161401624016340164401654016640167401684016940170401714017240173401744017540176401774017840179401804018140182401834018440185401864018740188401894019040191401924019340194401954019640197401984019940200402014020240203402044020540206402074020840209402104021140212402134021440215402164021740218402194022040221402224022340224402254022640227402284022940230402314023240233402344023540236402374023840239402404024140242402434024440245402464024740248402494025040251402524025340254402554025640257402584025940260402614026240263402644026540266402674026840269402704027140272402734027440275402764027740278402794028040281402824028340284402854028640287402884028940290402914029240293402944029540296402974029840299403004030140302403034030440305403064030740308403094031040311403124031340314403154031640317403184031940320403214032240323403244032540326403274032840329403304033140332403334033440335403364033740338403394034040341403424034340344403454034640347403484034940350403514035240353403544035540356403574035840359403604036140362403634036440365403664036740368403694037040371403724037340374403754037640377403784037940380403814038240383403844038540386403874038840389403904039140392403934039440395403964039740398403994040040401404024040340404404054040640407404084040940410404114041240413404144041540416404174041840419404204042140422404234042440425404264042740428404294043040431404324043340434404354043640437404384043940440404414044240443404444044540446404474044840449404504045140452404534045440455404564045740458404594046040461404624046340464404654046640467404684046940470404714047240473404744047540476404774047840479404804048140482404834048440485404864048740488404894049040491404924049340494404954049640497404984049940500405014050240503405044050540506405074050840509405104051140512405134051440515405164051740518405194052040521405224052340524405254052640527405284052940530405314053240533405344053540536405374053840539405404054140542405434054440545405464054740548405494055040551405524055340554405554055640557405584055940560405614056240563405644056540566405674056840569405704057140572405734057440575405764057740578405794058040581405824058340584405854058640587405884058940590405914059240593405944059540596405974059840599406004060140602406034060440605406064060740608406094061040611406124061340614406154061640617406184061940620406214062240623406244062540626406274062840629406304063140632406334063440635406364063740638406394064040641406424064340644406454064640647406484064940650406514065240653406544065540656406574065840659406604066140662406634066440665406664066740668406694067040671406724067340674406754067640677406784067940680406814068240683406844068540686406874068840689406904069140692406934069440695406964069740698406994070040701407024070340704407054070640707407084070940710407114071240713407144071540716407174071840719407204072140722407234072440725407264072740728407294073040731407324073340734407354073640737407384073940740407414074240743407444074540746407474074840749407504075140752407534075440755407564075740758407594076040761407624076340764407654076640767407684076940770407714077240773407744077540776407774077840779407804078140782407834078440785407864078740788407894079040791407924079340794407954079640797407984079940800408014080240803408044080540806408074080840809408104081140812408134081440815408164081740818408194082040821408224082340824408254082640827408284082940830408314083240833408344083540836408374083840839408404084140842408434084440845408464084740848408494085040851408524085340854408554085640857408584085940860408614086240863408644086540866408674086840869408704087140872408734087440875408764087740878408794088040881408824088340884408854088640887408884088940890408914089240893408944089540896408974089840899409004090140902409034090440905409064090740908409094091040911409124091340914409154091640917409184091940920409214092240923409244092540926409274092840929409304093140932409334093440935409364093740938409394094040941409424094340944409454094640947409484094940950409514095240953409544095540956409574095840959409604096140962409634096440965409664096740968409694097040971409724097340974409754097640977409784097940980409814098240983409844098540986409874098840989409904099140992409934099440995409964099740998409994100041001410024100341004410054100641007410084100941010410114101241013410144101541016410174101841019410204102141022410234102441025410264102741028410294103041031410324103341034410354103641037410384103941040410414104241043410444104541046410474104841049410504105141052410534105441055410564105741058410594106041061410624106341064410654106641067410684106941070410714107241073410744107541076410774107841079410804108141082410834108441085410864108741088410894109041091410924109341094410954109641097410984109941100411014110241103411044110541106411074110841109411104111141112411134111441115411164111741118411194112041121411224112341124411254112641127411284112941130411314113241133411344113541136411374113841139411404114141142411434114441145411464114741148411494115041151411524115341154411554115641157411584115941160411614116241163411644116541166411674116841169411704117141172411734117441175411764117741178411794118041181411824118341184411854118641187411884118941190411914119241193411944119541196411974119841199412004120141202412034120441205412064120741208412094121041211412124121341214412154121641217412184121941220412214122241223412244122541226412274122841229412304123141232412334123441235412364123741238412394124041241412424124341244412454124641247412484124941250412514125241253412544125541256412574125841259412604126141262412634126441265412664126741268412694127041271412724127341274412754127641277412784127941280412814128241283412844128541286412874128841289412904129141292412934129441295412964129741298412994130041301413024130341304413054130641307413084130941310413114131241313413144131541316413174131841319413204132141322413234132441325413264132741328413294133041331413324133341334413354133641337413384133941340413414134241343413444134541346413474134841349413504135141352413534135441355413564135741358413594136041361413624136341364413654136641367413684136941370413714137241373413744137541376413774137841379413804138141382413834138441385413864138741388413894139041391413924139341394413954139641397413984139941400414014140241403414044140541406414074140841409414104141141412414134141441415414164141741418414194142041421414224142341424414254142641427414284142941430414314143241433414344143541436414374143841439414404144141442414434144441445414464144741448414494145041451414524145341454414554145641457414584145941460414614146241463414644146541466414674146841469414704147141472414734147441475414764147741478414794148041481414824148341484414854148641487414884148941490414914149241493414944149541496414974149841499415004150141502415034150441505415064150741508415094151041511415124151341514415154151641517415184151941520415214152241523415244152541526415274152841529415304153141532415334153441535415364153741538415394154041541415424154341544415454154641547415484154941550415514155241553415544155541556415574155841559415604156141562415634156441565415664156741568415694157041571415724157341574415754157641577415784157941580415814158241583415844158541586415874158841589415904159141592415934159441595415964159741598415994160041601416024160341604416054160641607416084160941610416114161241613416144161541616416174161841619416204162141622416234162441625416264162741628416294163041631416324163341634416354163641637416384163941640416414164241643416444164541646416474164841649416504165141652416534165441655416564165741658416594166041661416624166341664416654166641667416684166941670416714167241673416744167541676416774167841679416804168141682416834168441685416864168741688416894169041691416924169341694416954169641697416984169941700417014170241703417044170541706417074170841709417104171141712417134171441715417164171741718417194172041721417224172341724417254172641727417284172941730417314173241733417344173541736417374173841739417404174141742417434174441745417464174741748417494175041751417524175341754417554175641757417584175941760417614176241763417644176541766417674176841769417704177141772417734177441775417764177741778417794178041781417824178341784417854178641787417884178941790417914179241793417944179541796417974179841799418004180141802418034180441805418064180741808418094181041811418124181341814418154181641817418184181941820418214182241823418244182541826418274182841829418304183141832418334183441835418364183741838418394184041841418424184341844418454184641847418484184941850418514185241853418544185541856418574185841859418604186141862418634186441865418664186741868418694187041871418724187341874418754187641877418784187941880418814188241883418844188541886418874188841889418904189141892418934189441895418964189741898418994190041901419024190341904419054190641907419084190941910419114191241913419144191541916419174191841919419204192141922419234192441925419264192741928419294193041931419324193341934419354193641937419384193941940419414194241943419444194541946419474194841949419504195141952419534195441955419564195741958419594196041961419624196341964419654196641967419684196941970419714197241973419744197541976419774197841979419804198141982419834198441985419864198741988419894199041991419924199341994419954199641997419984199942000420014200242003420044200542006420074200842009420104201142012420134201442015420164201742018420194202042021420224202342024420254202642027420284202942030420314203242033420344203542036420374203842039420404204142042420434204442045420464204742048420494205042051420524205342054420554205642057420584205942060420614206242063420644206542066420674206842069420704207142072420734207442075420764207742078420794208042081420824208342084420854208642087420884208942090420914209242093420944209542096420974209842099421004210142102421034210442105421064210742108421094211042111421124211342114421154211642117421184211942120421214212242123421244212542126421274212842129421304213142132421334213442135421364213742138421394214042141421424214342144421454214642147421484214942150421514215242153421544215542156421574215842159421604216142162421634216442165421664216742168421694217042171421724217342174421754217642177421784217942180421814218242183421844218542186421874218842189421904219142192421934219442195421964219742198421994220042201422024220342204422054220642207422084220942210422114221242213422144221542216422174221842219422204222142222422234222442225422264222742228422294223042231422324223342234422354223642237422384223942240422414224242243422444224542246422474224842249422504225142252422534225442255422564225742258422594226042261422624226342264422654226642267422684226942270422714227242273422744227542276422774227842279422804228142282422834228442285422864228742288422894229042291422924229342294422954229642297422984229942300423014230242303423044230542306423074230842309423104231142312423134231442315423164231742318423194232042321423224232342324423254232642327423284232942330423314233242333423344233542336423374233842339423404234142342423434234442345423464234742348423494235042351423524235342354423554235642357423584235942360423614236242363423644236542366423674236842369423704237142372423734237442375423764237742378423794238042381423824238342384423854238642387423884238942390423914239242393423944239542396423974239842399424004240142402424034240442405424064240742408424094241042411424124241342414424154241642417424184241942420424214242242423424244242542426424274242842429424304243142432424334243442435424364243742438424394244042441424424244342444424454244642447424484244942450424514245242453424544245542456424574245842459424604246142462424634246442465424664246742468424694247042471424724247342474424754247642477424784247942480424814248242483424844248542486424874248842489424904249142492424934249442495424964249742498424994250042501425024250342504425054250642507425084250942510425114251242513425144251542516425174251842519425204252142522425234252442525425264252742528425294253042531425324253342534425354253642537425384253942540425414254242543425444254542546425474254842549425504255142552425534255442555425564255742558425594256042561425624256342564425654256642567425684256942570425714257242573425744257542576425774257842579425804258142582425834258442585425864258742588425894259042591425924259342594425954259642597425984259942600426014260242603426044260542606426074260842609426104261142612426134261442615426164261742618426194262042621426224262342624426254262642627426284262942630426314263242633426344263542636426374263842639426404264142642426434264442645426464264742648426494265042651426524265342654426554265642657426584265942660426614266242663426644266542666426674266842669426704267142672426734267442675426764267742678426794268042681426824268342684426854268642687426884268942690426914269242693426944269542696426974269842699427004270142702427034270442705427064270742708427094271042711427124271342714427154271642717427184271942720427214272242723427244272542726427274272842729427304273142732427334273442735427364273742738427394274042741427424274342744427454274642747427484274942750427514275242753427544275542756427574275842759427604276142762427634276442765427664276742768427694277042771427724277342774427754277642777427784277942780427814278242783427844278542786427874278842789427904279142792427934279442795427964279742798427994280042801428024280342804428054280642807428084280942810428114281242813428144281542816428174281842819428204282142822428234282442825428264282742828428294283042831428324283342834428354283642837428384283942840428414284242843428444284542846428474284842849428504285142852428534285442855428564285742858428594286042861428624286342864428654286642867428684286942870428714287242873428744287542876428774287842879428804288142882428834288442885428864288742888428894289042891428924289342894428954289642897428984289942900429014290242903429044290542906429074290842909429104291142912429134291442915429164291742918429194292042921429224292342924429254292642927429284292942930429314293242933429344293542936429374293842939429404294142942429434294442945429464294742948429494295042951429524295342954429554295642957429584295942960429614296242963429644296542966429674296842969429704297142972429734297442975429764297742978429794298042981429824298342984429854298642987429884298942990429914299242993429944299542996429974299842999430004300143002430034300443005430064300743008430094301043011430124301343014430154301643017430184301943020430214302243023430244302543026430274302843029430304303143032430334303443035430364303743038430394304043041430424304343044430454304643047430484304943050430514305243053430544305543056430574305843059430604306143062430634306443065430664306743068430694307043071430724307343074430754307643077430784307943080430814308243083430844308543086430874308843089430904309143092430934309443095430964309743098430994310043101431024310343104431054310643107431084310943110431114311243113431144311543116431174311843119431204312143122431234312443125431264312743128431294313043131431324313343134431354313643137431384313943140431414314243143431444314543146431474314843149431504315143152431534315443155431564315743158431594316043161431624316343164431654316643167431684316943170431714317243173431744317543176431774317843179431804318143182431834318443185431864318743188431894319043191431924319343194431954319643197431984319943200432014320243203432044320543206432074320843209432104321143212432134321443215432164321743218432194322043221432224322343224432254322643227432284322943230432314323243233432344323543236432374323843239432404324143242432434324443245432464324743248432494325043251432524325343254432554325643257432584325943260432614326243263432644326543266432674326843269432704327143272432734327443275432764327743278432794328043281432824328343284432854328643287432884328943290432914329243293432944329543296432974329843299433004330143302433034330443305433064330743308433094331043311433124331343314433154331643317433184331943320433214332243323433244332543326433274332843329433304333143332433334333443335433364333743338433394334043341433424334343344433454334643347433484334943350433514335243353433544335543356433574335843359433604336143362433634336443365433664336743368433694337043371433724337343374433754337643377433784337943380433814338243383433844338543386433874338843389433904339143392433934339443395433964339743398433994340043401434024340343404434054340643407434084340943410434114341243413434144341543416434174341843419434204342143422434234342443425434264342743428434294343043431434324343343434434354343643437434384343943440434414344243443434444344543446434474344843449434504345143452434534345443455434564345743458434594346043461434624346343464434654346643467434684346943470434714347243473434744347543476434774347843479434804348143482434834348443485434864348743488434894349043491434924349343494434954349643497434984349943500435014350243503435044350543506435074350843509435104351143512435134351443515435164351743518435194352043521435224352343524435254352643527435284352943530435314353243533435344353543536435374353843539435404354143542435434354443545435464354743548435494355043551435524355343554435554355643557435584355943560435614356243563435644356543566435674356843569435704357143572435734357443575435764357743578435794358043581435824358343584435854358643587435884358943590435914359243593435944359543596435974359843599436004360143602436034360443605436064360743608436094361043611436124361343614436154361643617436184361943620436214362243623436244362543626436274362843629436304363143632436334363443635436364363743638436394364043641436424364343644436454364643647436484364943650436514365243653436544365543656436574365843659436604366143662436634366443665436664366743668436694367043671436724367343674436754367643677436784367943680436814368243683436844368543686436874368843689436904369143692436934369443695436964369743698436994370043701437024370343704437054370643707437084370943710437114371243713437144371543716437174371843719437204372143722437234372443725437264372743728437294373043731437324373343734437354373643737437384373943740437414374243743437444374543746437474374843749437504375143752437534375443755437564375743758437594376043761437624376343764437654376643767437684376943770437714377243773437744377543776437774377843779437804378143782437834378443785437864378743788437894379043791437924379343794437954379643797437984379943800438014380243803438044380543806438074380843809438104381143812438134381443815438164381743818438194382043821438224382343824438254382643827438284382943830438314383243833438344383543836438374383843839438404384143842438434384443845438464384743848438494385043851438524385343854438554385643857438584385943860438614386243863438644386543866438674386843869438704387143872438734387443875438764387743878438794388043881438824388343884438854388643887438884388943890438914389243893438944389543896438974389843899439004390143902439034390443905439064390743908439094391043911439124391343914439154391643917439184391943920439214392243923439244392543926439274392843929439304393143932439334393443935439364393743938439394394043941439424394343944439454394643947439484394943950439514395243953439544395543956439574395843959439604396143962439634396443965439664396743968439694397043971439724397343974439754397643977439784397943980439814398243983439844398543986439874398843989439904399143992439934399443995439964399743998439994400044001440024400344004440054400644007440084400944010440114401244013440144401544016440174401844019440204402144022440234402444025440264402744028440294403044031440324403344034440354403644037440384403944040440414404244043440444404544046440474404844049440504405144052440534405444055440564405744058440594406044061440624406344064440654406644067440684406944070440714407244073440744407544076440774407844079440804408144082440834408444085440864408744088440894409044091440924409344094440954409644097440984409944100441014410244103441044410544106441074410844109441104411144112441134411444115441164411744118441194412044121441224412344124441254412644127441284412944130441314413244133441344413544136441374413844139441404414144142441434414444145441464414744148441494415044151441524415344154441554415644157441584415944160441614416244163441644416544166441674416844169441704417144172441734417444175441764417744178441794418044181441824418344184441854418644187441884418944190441914419244193441944419544196441974419844199442004420144202442034420444205442064420744208442094421044211442124421344214442154421644217442184421944220442214422244223442244422544226442274422844229442304423144232442334423444235442364423744238442394424044241442424424344244442454424644247442484424944250442514425244253442544425544256442574425844259442604426144262442634426444265442664426744268442694427044271442724427344274442754427644277442784427944280442814428244283442844428544286442874428844289442904429144292442934429444295442964429744298442994430044301443024430344304443054430644307443084430944310443114431244313443144431544316443174431844319443204432144322443234432444325443264432744328443294433044331443324433344334443354433644337443384433944340443414434244343443444434544346443474434844349443504435144352443534435444355443564435744358443594436044361443624436344364443654436644367443684436944370443714437244373443744437544376443774437844379443804438144382443834438444385443864438744388443894439044391443924439344394443954439644397443984439944400444014440244403444044440544406444074440844409444104441144412444134441444415444164441744418444194442044421444224442344424444254442644427444284442944430444314443244433444344443544436444374443844439444404444144442444434444444445444464444744448444494445044451444524445344454444554445644457444584445944460444614446244463444644446544466444674446844469444704447144472444734447444475444764447744478444794448044481444824448344484444854448644487444884448944490444914449244493444944449544496444974449844499445004450144502445034450444505445064450744508445094451044511445124451344514445154451644517445184451944520445214452244523445244452544526445274452844529445304453144532445334453444535445364453744538445394454044541445424454344544445454454644547445484454944550445514455244553445544455544556445574455844559445604456144562445634456444565445664456744568445694457044571445724457344574445754457644577445784457944580445814458244583445844458544586445874458844589445904459144592445934459444595445964459744598445994460044601446024460344604446054460644607446084460944610446114461244613446144461544616446174461844619446204462144622446234462444625446264462744628446294463044631446324463344634446354463644637446384463944640446414464244643446444464544646446474464844649446504465144652446534465444655446564465744658446594466044661446624466344664446654466644667446684466944670446714467244673446744467544676446774467844679446804468144682446834468444685446864468744688446894469044691446924469344694446954469644697446984469944700447014470244703447044470544706447074470844709447104471144712447134471444715447164471744718447194472044721447224472344724447254472644727447284472944730447314473244733447344473544736447374473844739447404474144742447434474444745447464474744748447494475044751447524475344754447554475644757447584475944760447614476244763447644476544766447674476844769447704477144772447734477444775447764477744778447794478044781447824478344784447854478644787447884478944790447914479244793447944479544796447974479844799448004480144802448034480444805448064480744808448094481044811448124481344814448154481644817448184481944820448214482244823448244482544826448274482844829448304483144832448334483444835448364483744838448394484044841448424484344844448454484644847448484484944850448514485244853448544485544856448574485844859448604486144862448634486444865448664486744868448694487044871448724487344874448754487644877448784487944880448814488244883448844488544886448874488844889448904489144892448934489444895448964489744898448994490044901449024490344904449054490644907449084490944910449114491244913449144491544916449174491844919449204492144922449234492444925449264492744928449294493044931449324493344934449354493644937449384493944940449414494244943449444494544946449474494844949449504495144952449534495444955449564495744958449594496044961449624496344964449654496644967449684496944970449714497244973449744497544976449774497844979449804498144982449834498444985449864498744988449894499044991449924499344994449954499644997449984499945000450014500245003450044500545006450074500845009450104501145012450134501445015450164501745018450194502045021450224502345024450254502645027450284502945030450314503245033450344503545036450374503845039450404504145042450434504445045450464504745048450494505045051450524505345054450554505645057450584505945060450614506245063450644506545066450674506845069450704507145072450734507445075450764507745078450794508045081450824508345084450854508645087450884508945090450914509245093450944509545096450974509845099451004510145102451034510445105451064510745108451094511045111451124511345114451154511645117451184511945120451214512245123451244512545126451274512845129451304513145132451334513445135451364513745138451394514045141451424514345144451454514645147451484514945150451514515245153451544515545156451574515845159451604516145162451634516445165451664516745168451694517045171451724517345174451754517645177451784517945180451814518245183451844518545186451874518845189451904519145192451934519445195451964519745198451994520045201452024520345204452054520645207452084520945210452114521245213452144521545216452174521845219452204522145222452234522445225452264522745228452294523045231452324523345234452354523645237452384523945240452414524245243452444524545246452474524845249452504525145252452534525445255452564525745258452594526045261452624526345264452654526645267452684526945270452714527245273452744527545276452774527845279452804528145282452834528445285452864528745288452894529045291452924529345294452954529645297452984529945300453014530245303453044530545306453074530845309453104531145312453134531445315453164531745318453194532045321453224532345324453254532645327453284532945330453314533245333453344533545336453374533845339453404534145342453434534445345453464534745348453494535045351453524535345354453554535645357453584535945360453614536245363453644536545366453674536845369453704537145372453734537445375453764537745378453794538045381453824538345384453854538645387453884538945390453914539245393453944539545396453974539845399454004540145402454034540445405454064540745408454094541045411454124541345414454154541645417454184541945420454214542245423454244542545426454274542845429454304543145432454334543445435454364543745438454394544045441454424544345444454454544645447454484544945450454514545245453454544545545456454574545845459454604546145462454634546445465454664546745468454694547045471454724547345474454754547645477454784547945480454814548245483454844548545486454874548845489454904549145492454934549445495454964549745498454994550045501455024550345504455054550645507455084550945510455114551245513455144551545516455174551845519455204552145522455234552445525455264552745528455294553045531455324553345534455354553645537455384553945540455414554245543455444554545546455474554845549455504555145552455534555445555455564555745558455594556045561455624556345564455654556645567455684556945570455714557245573455744557545576455774557845579455804558145582455834558445585455864558745588455894559045591455924559345594455954559645597455984559945600456014560245603456044560545606456074560845609456104561145612456134561445615456164561745618456194562045621456224562345624456254562645627456284562945630456314563245633456344563545636456374563845639456404564145642456434564445645456464564745648456494565045651456524565345654456554565645657456584565945660456614566245663456644566545666456674566845669456704567145672456734567445675456764567745678456794568045681456824568345684456854568645687456884568945690456914569245693456944569545696456974569845699457004570145702457034570445705457064570745708457094571045711457124571345714457154571645717457184571945720457214572245723457244572545726457274572845729457304573145732457334573445735457364573745738457394574045741457424574345744457454574645747457484574945750457514575245753457544575545756457574575845759457604576145762457634576445765457664576745768457694577045771457724577345774457754577645777457784577945780457814578245783457844578545786457874578845789457904579145792457934579445795457964579745798457994580045801458024580345804458054580645807458084580945810458114581245813458144581545816458174581845819458204582145822458234582445825458264582745828458294583045831458324583345834458354583645837458384583945840458414584245843458444584545846458474584845849458504585145852458534585445855458564585745858458594586045861458624586345864458654586645867458684586945870458714587245873458744587545876458774587845879458804588145882458834588445885458864588745888458894589045891458924589345894458954589645897458984589945900459014590245903459044590545906459074590845909459104591145912459134591445915459164591745918459194592045921459224592345924459254592645927459284592945930459314593245933459344593545936459374593845939459404594145942459434594445945459464594745948459494595045951459524595345954459554595645957459584595945960459614596245963459644596545966459674596845969459704597145972459734597445975459764597745978459794598045981459824598345984459854598645987459884598945990459914599245993459944599545996459974599845999460004600146002460034600446005460064600746008460094601046011460124601346014460154601646017460184601946020460214602246023460244602546026460274602846029460304603146032460334603446035460364603746038460394604046041460424604346044460454604646047460484604946050460514605246053460544605546056460574605846059460604606146062460634606446065460664606746068460694607046071460724607346074460754607646077460784607946080460814608246083460844608546086460874608846089460904609146092460934609446095460964609746098460994610046101461024610346104461054610646107461084610946110461114611246113461144611546116461174611846119461204612146122461234612446125461264612746128461294613046131461324613346134461354613646137461384613946140461414614246143461444614546146461474614846149461504615146152461534615446155461564615746158461594616046161461624616346164461654616646167461684616946170461714617246173461744617546176461774617846179461804618146182461834618446185461864618746188461894619046191461924619346194461954619646197461984619946200462014620246203462044620546206462074620846209462104621146212462134621446215462164621746218462194622046221462224622346224462254622646227462284622946230462314623246233462344623546236462374623846239462404624146242462434624446245462464624746248462494625046251462524625346254462554625646257462584625946260462614626246263462644626546266462674626846269462704627146272462734627446275462764627746278462794628046281462824628346284462854628646287462884628946290462914629246293462944629546296462974629846299463004630146302463034630446305463064630746308463094631046311463124631346314463154631646317463184631946320463214632246323463244632546326463274632846329463304633146332463334633446335463364633746338463394634046341463424634346344463454634646347463484634946350463514635246353463544635546356463574635846359463604636146362463634636446365463664636746368463694637046371463724637346374463754637646377463784637946380463814638246383463844638546386463874638846389463904639146392463934639446395463964639746398463994640046401464024640346404464054640646407464084640946410464114641246413464144641546416464174641846419464204642146422464234642446425464264642746428464294643046431464324643346434464354643646437464384643946440464414644246443464444644546446464474644846449464504645146452464534645446455464564645746458464594646046461464624646346464464654646646467464684646946470464714647246473464744647546476464774647846479464804648146482464834648446485464864648746488464894649046491464924649346494464954649646497464984649946500465014650246503465044650546506465074650846509465104651146512465134651446515465164651746518465194652046521465224652346524465254652646527465284652946530465314653246533465344653546536465374653846539465404654146542465434654446545465464654746548465494655046551465524655346554465554655646557465584655946560465614656246563465644656546566465674656846569465704657146572465734657446575465764657746578465794658046581465824658346584465854658646587465884658946590465914659246593465944659546596465974659846599466004660146602466034660446605466064660746608466094661046611466124661346614466154661646617466184661946620466214662246623466244662546626466274662846629466304663146632466334663446635466364663746638466394664046641466424664346644466454664646647466484664946650466514665246653466544665546656466574665846659466604666146662466634666446665466664666746668466694667046671466724667346674466754667646677466784667946680466814668246683466844668546686466874668846689466904669146692466934669446695466964669746698466994670046701467024670346704467054670646707467084670946710467114671246713467144671546716467174671846719467204672146722467234672446725467264672746728467294673046731467324673346734467354673646737467384673946740467414674246743467444674546746467474674846749467504675146752467534675446755467564675746758467594676046761467624676346764467654676646767467684676946770467714677246773467744677546776467774677846779467804678146782467834678446785467864678746788467894679046791467924679346794467954679646797467984679946800468014680246803468044680546806468074680846809468104681146812468134681446815468164681746818468194682046821468224682346824468254682646827468284682946830468314683246833468344683546836468374683846839468404684146842468434684446845468464684746848468494685046851468524685346854468554685646857468584685946860468614686246863468644686546866468674686846869468704687146872468734687446875468764687746878468794688046881468824688346884468854688646887468884688946890468914689246893468944689546896468974689846899469004690146902469034690446905469064690746908469094691046911469124691346914469154691646917469184691946920469214692246923469244692546926469274692846929469304693146932469334693446935469364693746938469394694046941469424694346944469454694646947469484694946950469514695246953469544695546956469574695846959469604696146962469634696446965469664696746968469694697046971469724697346974469754697646977469784697946980469814698246983469844698546986469874698846989469904699146992469934699446995469964699746998469994700047001470024700347004470054700647007470084700947010470114701247013470144701547016470174701847019470204702147022470234702447025470264702747028470294703047031470324703347034470354703647037470384703947040470414704247043470444704547046470474704847049470504705147052470534705447055470564705747058470594706047061470624706347064470654706647067470684706947070470714707247073470744707547076470774707847079470804708147082470834708447085470864708747088470894709047091470924709347094470954709647097470984709947100471014710247103471044710547106471074710847109471104711147112471134711447115471164711747118471194712047121471224712347124471254712647127471284712947130471314713247133471344713547136471374713847139471404714147142471434714447145471464714747148471494715047151471524715347154471554715647157471584715947160471614716247163471644716547166471674716847169471704717147172471734717447175471764717747178471794718047181471824718347184471854718647187471884718947190471914719247193471944719547196471974719847199472004720147202472034720447205472064720747208472094721047211472124721347214472154721647217472184721947220472214722247223472244722547226472274722847229472304723147232472334723447235472364723747238472394724047241472424724347244472454724647247472484724947250472514725247253472544725547256472574725847259472604726147262472634726447265472664726747268472694727047271472724727347274472754727647277472784727947280472814728247283472844728547286472874728847289472904729147292472934729447295472964729747298472994730047301473024730347304473054730647307473084730947310473114731247313473144731547316473174731847319473204732147322473234732447325473264732747328473294733047331473324733347334473354733647337473384733947340473414734247343473444734547346473474734847349473504735147352473534735447355473564735747358473594736047361473624736347364473654736647367473684736947370473714737247373473744737547376473774737847379473804738147382473834738447385473864738747388473894739047391473924739347394473954739647397473984739947400474014740247403474044740547406474074740847409474104741147412474134741447415474164741747418474194742047421474224742347424474254742647427474284742947430474314743247433474344743547436474374743847439474404744147442474434744447445474464744747448474494745047451474524745347454474554745647457474584745947460474614746247463474644746547466474674746847469474704747147472474734747447475474764747747478474794748047481474824748347484474854748647487474884748947490474914749247493474944749547496474974749847499475004750147502475034750447505475064750747508475094751047511475124751347514475154751647517475184751947520475214752247523475244752547526475274752847529475304753147532475334753447535475364753747538475394754047541475424754347544475454754647547475484754947550475514755247553475544755547556475574755847559475604756147562475634756447565475664756747568475694757047571475724757347574475754757647577475784757947580475814758247583475844758547586475874758847589475904759147592475934759447595475964759747598475994760047601476024760347604476054760647607476084760947610476114761247613476144761547616476174761847619476204762147622476234762447625476264762747628476294763047631476324763347634476354763647637476384763947640476414764247643476444764547646476474764847649476504765147652476534765447655476564765747658476594766047661476624766347664476654766647667476684766947670476714767247673476744767547676476774767847679476804768147682476834768447685476864768747688476894769047691476924769347694476954769647697476984769947700477014770247703477044770547706477074770847709477104771147712477134771447715477164771747718477194772047721477224772347724477254772647727477284772947730477314773247733477344773547736477374773847739477404774147742477434774447745477464774747748477494775047751477524775347754477554775647757477584775947760477614776247763477644776547766477674776847769477704777147772477734777447775477764777747778477794778047781477824778347784477854778647787477884778947790477914779247793477944779547796477974779847799478004780147802478034780447805478064780747808478094781047811478124781347814478154781647817478184781947820478214782247823478244782547826478274782847829478304783147832478334783447835478364783747838478394784047841478424784347844478454784647847478484784947850478514785247853478544785547856478574785847859478604786147862478634786447865478664786747868478694787047871478724787347874478754787647877478784787947880478814788247883478844788547886478874788847889478904789147892478934789447895478964789747898478994790047901479024790347904479054790647907479084790947910479114791247913479144791547916479174791847919479204792147922479234792447925479264792747928479294793047931479324793347934479354793647937479384793947940479414794247943479444794547946479474794847949479504795147952479534795447955479564795747958479594796047961479624796347964479654796647967479684796947970479714797247973479744797547976479774797847979479804798147982479834798447985479864798747988479894799047991479924799347994479954799647997479984799948000480014800248003480044800548006480074800848009480104801148012480134801448015480164801748018480194802048021480224802348024480254802648027480284802948030480314803248033480344803548036480374803848039480404804148042480434804448045480464804748048480494805048051480524805348054480554805648057480584805948060480614806248063480644806548066480674806848069480704807148072480734807448075480764807748078480794808048081480824808348084480854808648087480884808948090480914809248093480944809548096480974809848099481004810148102481034810448105481064810748108481094811048111481124811348114481154811648117481184811948120481214812248123481244812548126481274812848129481304813148132481334813448135481364813748138481394814048141481424814348144481454814648147481484814948150481514815248153481544815548156481574815848159481604816148162481634816448165481664816748168481694817048171481724817348174481754817648177481784817948180481814818248183481844818548186481874818848189481904819148192481934819448195481964819748198481994820048201482024820348204482054820648207482084820948210482114821248213482144821548216482174821848219482204822148222482234822448225482264822748228482294823048231482324823348234482354823648237482384823948240482414824248243482444824548246482474824848249482504825148252482534825448255482564825748258482594826048261482624826348264482654826648267482684826948270482714827248273482744827548276482774827848279482804828148282482834828448285482864828748288482894829048291482924829348294482954829648297482984829948300483014830248303483044830548306483074830848309483104831148312483134831448315483164831748318483194832048321483224832348324483254832648327483284832948330483314833248333483344833548336483374833848339483404834148342483434834448345483464834748348483494835048351483524835348354483554835648357483584835948360483614836248363483644836548366483674836848369483704837148372483734837448375483764837748378483794838048381483824838348384483854838648387483884838948390483914839248393483944839548396483974839848399484004840148402484034840448405484064840748408484094841048411484124841348414484154841648417484184841948420484214842248423484244842548426484274842848429484304843148432484334843448435484364843748438484394844048441484424844348444484454844648447484484844948450484514845248453484544845548456484574845848459484604846148462484634846448465484664846748468484694847048471484724847348474484754847648477484784847948480484814848248483484844848548486484874848848489484904849148492484934849448495484964849748498484994850048501485024850348504485054850648507485084850948510485114851248513485144851548516485174851848519485204852148522485234852448525485264852748528485294853048531485324853348534485354853648537485384853948540485414854248543485444854548546485474854848549485504855148552485534855448555485564855748558485594856048561485624856348564485654856648567485684856948570485714857248573485744857548576485774857848579485804858148582485834858448585485864858748588485894859048591485924859348594485954859648597485984859948600486014860248603486044860548606486074860848609486104861148612486134861448615486164861748618486194862048621486224862348624486254862648627486284862948630486314863248633486344863548636486374863848639486404864148642486434864448645486464864748648486494865048651486524865348654486554865648657486584865948660486614866248663486644866548666486674866848669486704867148672486734867448675486764867748678486794868048681486824868348684486854868648687486884868948690486914869248693486944869548696486974869848699487004870148702487034870448705487064870748708487094871048711487124871348714487154871648717487184871948720487214872248723487244872548726487274872848729487304873148732487334873448735487364873748738487394874048741487424874348744487454874648747487484874948750487514875248753487544875548756487574875848759487604876148762487634876448765487664876748768487694877048771487724877348774487754877648777487784877948780487814878248783487844878548786487874878848789487904879148792487934879448795487964879748798487994880048801488024880348804488054880648807488084880948810488114881248813488144881548816488174881848819488204882148822488234882448825488264882748828488294883048831488324883348834488354883648837488384883948840488414884248843488444884548846488474884848849488504885148852488534885448855488564885748858488594886048861488624886348864488654886648867488684886948870488714887248873488744887548876488774887848879488804888148882488834888448885488864888748888488894889048891488924889348894488954889648897488984889948900489014890248903489044890548906489074890848909489104891148912489134891448915489164891748918489194892048921489224892348924489254892648927489284892948930489314893248933489344893548936489374893848939489404894148942489434894448945489464894748948489494895048951489524895348954489554895648957489584895948960489614896248963489644896548966489674896848969489704897148972489734897448975489764897748978489794898048981489824898348984489854898648987489884898948990489914899248993489944899548996489974899848999490004900149002490034900449005490064900749008490094901049011490124901349014490154901649017490184901949020490214902249023490244902549026490274902849029490304903149032490334903449035490364903749038490394904049041490424904349044490454904649047490484904949050490514905249053490544905549056490574905849059490604906149062490634906449065490664906749068490694907049071490724907349074490754907649077490784907949080490814908249083490844908549086490874908849089490904909149092490934909449095490964909749098490994910049101491024910349104491054910649107491084910949110491114911249113491144911549116491174911849119491204912149122491234912449125491264912749128491294913049131491324913349134491354913649137491384913949140491414914249143491444914549146491474914849149491504915149152491534915449155491564915749158491594916049161491624916349164491654916649167491684916949170491714917249173491744917549176491774917849179491804918149182491834918449185491864918749188491894919049191491924919349194491954919649197491984919949200492014920249203492044920549206492074920849209492104921149212492134921449215492164921749218492194922049221492224922349224492254922649227492284922949230492314923249233492344923549236492374923849239492404924149242492434924449245492464924749248492494925049251492524925349254492554925649257492584925949260492614926249263492644926549266492674926849269492704927149272492734927449275492764927749278492794928049281492824928349284492854928649287492884928949290492914929249293492944929549296492974929849299493004930149302493034930449305493064930749308493094931049311493124931349314493154931649317493184931949320493214932249323493244932549326493274932849329493304933149332493334933449335493364933749338493394934049341493424934349344493454934649347493484934949350493514935249353493544935549356493574935849359493604936149362493634936449365493664936749368493694937049371493724937349374493754937649377493784937949380493814938249383493844938549386493874938849389493904939149392493934939449395493964939749398493994940049401494024940349404494054940649407494084940949410494114941249413494144941549416494174941849419494204942149422494234942449425494264942749428494294943049431494324943349434494354943649437494384943949440494414944249443494444944549446494474944849449494504945149452494534945449455494564945749458494594946049461494624946349464494654946649467494684946949470494714947249473494744947549476494774947849479494804948149482494834948449485494864948749488494894949049491494924949349494494954949649497494984949949500495014950249503495044950549506495074950849509495104951149512495134951449515495164951749518495194952049521495224952349524495254952649527495284952949530495314953249533495344953549536495374953849539495404954149542495434954449545495464954749548495494955049551495524955349554495554955649557495584955949560495614956249563495644956549566495674956849569495704957149572495734957449575495764957749578495794958049581495824958349584495854958649587495884958949590495914959249593495944959549596495974959849599496004960149602496034960449605496064960749608496094961049611496124961349614496154961649617496184961949620496214962249623496244962549626496274962849629496304963149632496334963449635496364963749638496394964049641496424964349644496454964649647496484964949650496514965249653496544965549656496574965849659496604966149662496634966449665496664966749668496694967049671496724967349674496754967649677496784967949680496814968249683496844968549686496874968849689496904969149692496934969449695496964969749698496994970049701497024970349704497054970649707497084970949710497114971249713497144971549716497174971849719497204972149722497234972449725497264972749728497294973049731497324973349734497354973649737497384973949740497414974249743497444974549746497474974849749497504975149752497534975449755497564975749758497594976049761497624976349764497654976649767497684976949770497714977249773497744977549776497774977849779497804978149782497834978449785497864978749788497894979049791497924979349794497954979649797497984979949800498014980249803498044980549806498074980849809498104981149812498134981449815498164981749818498194982049821498224982349824498254982649827498284982949830498314983249833498344983549836498374983849839498404984149842498434984449845498464984749848498494985049851498524985349854498554985649857498584985949860498614986249863498644986549866498674986849869498704987149872498734987449875498764987749878498794988049881498824988349884498854988649887498884988949890498914989249893498944989549896498974989849899499004990149902499034990449905499064990749908499094991049911499124991349914499154991649917499184991949920499214992249923499244992549926499274992849929499304993149932499334993449935499364993749938499394994049941499424994349944499454994649947499484994949950499514995249953499544995549956499574995849959499604996149962499634996449965499664996749968499694997049971499724997349974499754997649977499784997949980499814998249983499844998549986499874998849989499904999149992499934999449995499964999749998499995000050001500025000350004500055000650007500085000950010500115001250013500145001550016500175001850019500205002150022500235002450025500265002750028500295003050031500325003350034500355003650037500385003950040500415004250043500445004550046500475004850049500505005150052500535005450055500565005750058500595006050061500625006350064500655006650067500685006950070500715007250073500745007550076500775007850079500805008150082500835008450085500865008750088500895009050091500925009350094500955009650097500985009950100501015010250103501045010550106501075010850109501105011150112501135011450115501165011750118501195012050121501225012350124501255012650127501285012950130501315013250133501345013550136501375013850139501405014150142501435014450145501465014750148501495015050151501525015350154501555015650157501585015950160501615016250163501645016550166501675016850169501705017150172501735017450175501765017750178501795018050181501825018350184501855018650187501885018950190501915019250193501945019550196501975019850199502005020150202502035020450205502065020750208502095021050211502125021350214502155021650217502185021950220502215022250223502245022550226502275022850229502305023150232502335023450235502365023750238502395024050241502425024350244502455024650247502485024950250502515025250253502545025550256502575025850259502605026150262502635026450265502665026750268502695027050271502725027350274502755027650277502785027950280502815028250283502845028550286502875028850289502905029150292502935029450295502965029750298502995030050301503025030350304503055030650307503085030950310503115031250313503145031550316503175031850319503205032150322503235032450325503265032750328503295033050331503325033350334503355033650337503385033950340503415034250343503445034550346503475034850349503505035150352503535035450355503565035750358503595036050361503625036350364503655036650367503685036950370503715037250373503745037550376503775037850379503805038150382503835038450385503865038750388503895039050391503925039350394503955039650397503985039950400504015040250403504045040550406504075040850409504105041150412504135041450415504165041750418504195042050421504225042350424504255042650427504285042950430504315043250433504345043550436504375043850439504405044150442504435044450445504465044750448504495045050451504525045350454504555045650457504585045950460504615046250463504645046550466504675046850469504705047150472504735047450475504765047750478504795048050481504825048350484504855048650487504885048950490504915049250493504945049550496504975049850499505005050150502505035050450505505065050750508505095051050511505125051350514505155051650517505185051950520505215052250523505245052550526505275052850529505305053150532505335053450535505365053750538505395054050541505425054350544505455054650547505485054950550505515055250553505545055550556505575055850559505605056150562505635056450565505665056750568505695057050571505725057350574505755057650577505785057950580505815058250583505845058550586505875058850589505905059150592505935059450595505965059750598505995060050601506025060350604506055060650607506085060950610506115061250613506145061550616506175061850619506205062150622506235062450625506265062750628506295063050631506325063350634506355063650637506385063950640506415064250643506445064550646506475064850649506505065150652506535065450655506565065750658506595066050661506625066350664506655066650667506685066950670506715067250673506745067550676506775067850679506805068150682506835068450685506865068750688506895069050691506925069350694506955069650697506985069950700507015070250703507045070550706507075070850709507105071150712507135071450715507165071750718507195072050721507225072350724507255072650727507285072950730507315073250733507345073550736507375073850739507405074150742507435074450745507465074750748507495075050751507525075350754507555075650757507585075950760507615076250763507645076550766507675076850769507705077150772507735077450775507765077750778507795078050781507825078350784507855078650787507885078950790507915079250793507945079550796507975079850799508005080150802508035080450805508065080750808508095081050811508125081350814508155081650817508185081950820508215082250823508245082550826508275082850829508305083150832508335083450835508365083750838508395084050841508425084350844508455084650847508485084950850508515085250853508545085550856508575085850859508605086150862508635086450865508665086750868508695087050871508725087350874508755087650877508785087950880508815088250883508845088550886508875088850889508905089150892508935089450895508965089750898508995090050901509025090350904509055090650907509085090950910509115091250913509145091550916509175091850919509205092150922509235092450925509265092750928509295093050931509325093350934509355093650937509385093950940509415094250943509445094550946509475094850949509505095150952509535095450955509565095750958509595096050961509625096350964509655096650967509685096950970509715097250973509745097550976509775097850979509805098150982509835098450985509865098750988509895099050991509925099350994509955099650997509985099951000510015100251003510045100551006510075100851009510105101151012510135101451015510165101751018510195102051021510225102351024510255102651027510285102951030510315103251033510345103551036510375103851039510405104151042510435104451045510465104751048510495105051051510525105351054510555105651057510585105951060510615106251063510645106551066510675106851069510705107151072510735107451075510765107751078510795108051081510825108351084510855108651087510885108951090510915109251093510945109551096510975109851099511005110151102511035110451105511065110751108511095111051111511125111351114511155111651117511185111951120511215112251123511245112551126511275112851129511305113151132511335113451135511365113751138511395114051141511425114351144511455114651147511485114951150511515115251153511545115551156511575115851159511605116151162511635116451165511665116751168511695117051171511725117351174511755117651177511785117951180511815118251183511845118551186511875118851189511905119151192511935119451195511965119751198511995120051201512025120351204512055120651207512085120951210512115121251213512145121551216512175121851219512205122151222512235122451225512265122751228512295123051231512325123351234512355123651237512385123951240512415124251243512445124551246512475124851249512505125151252512535125451255512565125751258512595126051261512625126351264512655126651267512685126951270512715127251273512745127551276512775127851279512805128151282512835128451285512865128751288512895129051291512925129351294512955129651297512985129951300513015130251303513045130551306513075130851309513105131151312513135131451315513165131751318513195132051321513225132351324513255132651327513285132951330513315133251333513345133551336513375133851339513405134151342513435134451345513465134751348513495135051351513525135351354513555135651357513585135951360513615136251363513645136551366513675136851369513705137151372513735137451375513765137751378513795138051381513825138351384513855138651387513885138951390513915139251393513945139551396513975139851399514005140151402514035140451405514065140751408514095141051411514125141351414514155141651417514185141951420514215142251423514245142551426514275142851429514305143151432514335143451435514365143751438514395144051441514425144351444514455144651447514485144951450514515145251453514545145551456514575145851459514605146151462514635146451465514665146751468514695147051471514725147351474514755147651477514785147951480514815148251483514845148551486514875148851489514905149151492514935149451495514965149751498514995150051501515025150351504515055150651507515085150951510515115151251513515145151551516515175151851519515205152151522515235152451525515265152751528515295153051531515325153351534515355153651537515385153951540515415154251543515445154551546515475154851549515505155151552515535155451555515565155751558515595156051561515625156351564515655156651567515685156951570515715157251573515745157551576515775157851579515805158151582515835158451585515865158751588515895159051591515925159351594515955159651597515985159951600516015160251603516045160551606516075160851609516105161151612516135161451615516165161751618516195162051621516225162351624516255162651627516285162951630516315163251633516345163551636516375163851639516405164151642516435164451645516465164751648516495165051651516525165351654516555165651657516585165951660516615166251663516645166551666516675166851669516705167151672516735167451675516765167751678516795168051681516825168351684516855168651687516885168951690516915169251693516945169551696516975169851699517005170151702517035170451705517065170751708517095171051711517125171351714517155171651717517185171951720517215172251723517245172551726517275172851729517305173151732517335173451735517365173751738517395174051741517425174351744517455174651747517485174951750517515175251753517545175551756517575175851759517605176151762517635176451765517665176751768517695177051771517725177351774517755177651777517785177951780517815178251783517845178551786517875178851789517905179151792517935179451795517965179751798517995180051801518025180351804518055180651807518085180951810518115181251813518145181551816518175181851819518205182151822518235182451825518265182751828518295183051831518325183351834518355183651837518385183951840518415184251843518445184551846518475184851849518505185151852518535185451855518565185751858518595186051861518625186351864518655186651867518685186951870518715187251873518745187551876518775187851879518805188151882518835188451885518865188751888518895189051891518925189351894518955189651897518985189951900519015190251903519045190551906519075190851909519105191151912519135191451915519165191751918519195192051921519225192351924519255192651927519285192951930519315193251933519345193551936519375193851939519405194151942519435194451945519465194751948519495195051951519525195351954519555195651957519585195951960519615196251963519645196551966519675196851969519705197151972519735197451975519765197751978519795198051981519825198351984519855198651987519885198951990519915199251993519945199551996519975199851999520005200152002520035200452005520065200752008520095201052011520125201352014520155201652017520185201952020520215202252023520245202552026520275202852029520305203152032520335203452035520365203752038520395204052041520425204352044520455204652047520485204952050520515205252053520545205552056520575205852059520605206152062520635206452065520665206752068520695207052071520725207352074520755207652077520785207952080520815208252083520845208552086520875208852089520905209152092520935209452095520965209752098520995210052101521025210352104521055210652107521085210952110521115211252113521145211552116521175211852119521205212152122521235212452125521265212752128521295213052131521325213352134521355213652137521385213952140521415214252143521445214552146521475214852149521505215152152521535215452155521565215752158521595216052161521625216352164521655216652167521685216952170521715217252173521745217552176521775217852179521805218152182521835218452185521865218752188521895219052191521925219352194521955219652197521985219952200522015220252203522045220552206522075220852209522105221152212522135221452215522165221752218522195222052221522225222352224522255222652227522285222952230522315223252233522345223552236522375223852239522405224152242522435224452245522465224752248522495225052251522525225352254522555225652257522585225952260522615226252263522645226552266522675226852269522705227152272522735227452275522765227752278522795228052281522825228352284522855228652287522885228952290522915229252293522945229552296522975229852299523005230152302523035230452305523065230752308523095231052311523125231352314523155231652317523185231952320523215232252323523245232552326523275232852329523305233152332523335233452335523365233752338523395234052341523425234352344523455234652347523485234952350523515235252353523545235552356523575235852359523605236152362523635236452365523665236752368523695237052371523725237352374523755237652377523785237952380523815238252383523845238552386523875238852389523905239152392523935239452395523965239752398523995240052401524025240352404524055240652407524085240952410524115241252413524145241552416524175241852419524205242152422524235242452425524265242752428524295243052431524325243352434524355243652437524385243952440524415244252443524445244552446524475244852449524505245152452524535245452455524565245752458524595246052461524625246352464524655246652467524685246952470524715247252473524745247552476524775247852479524805248152482524835248452485524865248752488524895249052491524925249352494524955249652497524985249952500525015250252503525045250552506525075250852509525105251152512525135251452515525165251752518525195252052521525225252352524525255252652527525285252952530525315253252533525345253552536525375253852539525405254152542525435254452545525465254752548525495255052551525525255352554525555255652557525585255952560525615256252563525645256552566525675256852569525705257152572525735257452575525765257752578525795258052581525825258352584525855258652587525885258952590525915259252593525945259552596525975259852599526005260152602526035260452605526065260752608526095261052611526125261352614526155261652617526185261952620526215262252623526245262552626526275262852629526305263152632526335263452635526365263752638526395264052641526425264352644526455264652647526485264952650526515265252653526545265552656526575265852659526605266152662526635266452665526665266752668526695267052671526725267352674526755267652677526785267952680526815268252683526845268552686526875268852689526905269152692526935269452695526965269752698526995270052701527025270352704527055270652707527085270952710527115271252713527145271552716527175271852719527205272152722527235272452725527265272752728527295273052731527325273352734527355273652737527385273952740527415274252743527445274552746527475274852749527505275152752527535275452755527565275752758527595276052761527625276352764527655276652767527685276952770527715277252773527745277552776527775277852779527805278152782527835278452785527865278752788527895279052791527925279352794527955279652797527985279952800528015280252803528045280552806528075280852809528105281152812528135281452815528165281752818528195282052821528225282352824528255282652827528285282952830528315283252833528345283552836528375283852839528405284152842528435284452845528465284752848528495285052851528525285352854528555285652857528585285952860528615286252863528645286552866528675286852869528705287152872528735287452875528765287752878528795288052881528825288352884528855288652887528885288952890528915289252893528945289552896528975289852899529005290152902529035290452905529065290752908529095291052911529125291352914529155291652917529185291952920529215292252923529245292552926529275292852929529305293152932529335293452935529365293752938529395294052941529425294352944529455294652947529485294952950529515295252953529545295552956529575295852959529605296152962529635296452965529665296752968529695297052971529725297352974529755297652977529785297952980529815298252983529845298552986529875298852989529905299152992529935299452995529965299752998529995300053001530025300353004530055300653007530085300953010530115301253013530145301553016530175301853019530205302153022530235302453025530265302753028530295303053031530325303353034530355303653037530385303953040530415304253043530445304553046530475304853049530505305153052530535305453055530565305753058530595306053061530625306353064530655306653067530685306953070530715307253073530745307553076530775307853079530805308153082530835308453085530865308753088530895309053091530925309353094530955309653097530985309953100531015310253103531045310553106531075310853109531105311153112531135311453115531165311753118531195312053121531225312353124531255312653127531285312953130531315313253133531345313553136531375313853139531405314153142531435314453145531465314753148531495315053151531525315353154531555315653157531585315953160531615316253163531645316553166531675316853169531705317153172531735317453175531765317753178531795318053181531825318353184531855318653187531885318953190531915319253193531945319553196531975319853199532005320153202532035320453205532065320753208532095321053211532125321353214532155321653217532185321953220532215322253223532245322553226532275322853229532305323153232532335323453235532365323753238532395324053241532425324353244532455324653247532485324953250532515325253253532545325553256532575325853259532605326153262532635326453265532665326753268532695327053271532725327353274532755327653277532785327953280532815328253283532845328553286532875328853289532905329153292532935329453295532965329753298532995330053301533025330353304533055330653307533085330953310533115331253313533145331553316533175331853319533205332153322533235332453325533265332753328533295333053331533325333353334533355333653337533385333953340533415334253343533445334553346533475334853349533505335153352533535335453355533565335753358533595336053361533625336353364533655336653367533685336953370533715337253373533745337553376533775337853379533805338153382533835338453385533865338753388533895339053391533925339353394533955339653397533985339953400534015340253403534045340553406534075340853409534105341153412534135341453415534165341753418534195342053421534225342353424534255342653427534285342953430534315343253433534345343553436534375343853439534405344153442534435344453445534465344753448534495345053451534525345353454534555345653457534585345953460534615346253463534645346553466534675346853469534705347153472534735347453475534765347753478534795348053481534825348353484534855348653487534885348953490534915349253493534945349553496534975349853499535005350153502535035350453505535065350753508535095351053511535125351353514535155351653517535185351953520535215352253523535245352553526535275352853529535305353153532535335353453535535365353753538535395354053541535425354353544535455354653547535485354953550535515355253553535545355553556535575355853559535605356153562535635356453565535665356753568535695357053571535725357353574535755357653577535785357953580535815358253583535845358553586535875358853589535905359153592535935359453595535965359753598535995360053601536025360353604536055360653607536085360953610536115361253613536145361553616536175361853619536205362153622536235362453625536265362753628536295363053631536325363353634536355363653637536385363953640536415364253643536445364553646536475364853649536505365153652536535365453655536565365753658536595366053661536625366353664536655366653667536685366953670536715367253673536745367553676536775367853679536805368153682536835368453685536865368753688536895369053691536925369353694536955369653697536985369953700537015370253703537045370553706537075370853709537105371153712537135371453715537165371753718537195372053721537225372353724537255372653727537285372953730537315373253733537345373553736537375373853739537405374153742537435374453745537465374753748537495375053751537525375353754537555375653757537585375953760537615376253763537645376553766537675376853769537705377153772537735377453775537765377753778537795378053781537825378353784537855378653787537885378953790537915379253793537945379553796537975379853799538005380153802538035380453805538065380753808538095381053811538125381353814538155381653817538185381953820538215382253823538245382553826538275382853829538305383153832538335383453835538365383753838538395384053841538425384353844538455384653847538485384953850538515385253853538545385553856538575385853859538605386153862538635386453865538665386753868538695387053871538725387353874538755387653877538785387953880538815388253883538845388553886538875388853889538905389153892538935389453895538965389753898538995390053901539025390353904539055390653907539085390953910539115391253913539145391553916539175391853919539205392153922539235392453925539265392753928539295393053931539325393353934539355393653937539385393953940539415394253943539445394553946539475394853949539505395153952539535395453955539565395753958539595396053961539625396353964539655396653967539685396953970539715397253973539745397553976539775397853979539805398153982539835398453985539865398753988539895399053991539925399353994539955399653997539985399954000540015400254003540045400554006540075400854009540105401154012540135401454015540165401754018540195402054021540225402354024540255402654027540285402954030540315403254033540345403554036540375403854039540405404154042540435404454045540465404754048540495405054051540525405354054540555405654057540585405954060540615406254063540645406554066540675406854069540705407154072540735407454075540765407754078540795408054081540825408354084540855408654087540885408954090540915409254093540945409554096540975409854099541005410154102541035410454105541065410754108541095411054111541125411354114541155411654117541185411954120541215412254123541245412554126541275412854129541305413154132541335413454135541365413754138541395414054141541425414354144541455414654147541485414954150541515415254153541545415554156541575415854159541605416154162541635416454165541665416754168541695417054171541725417354174541755417654177541785417954180541815418254183541845418554186541875418854189541905419154192541935419454195541965419754198541995420054201542025420354204542055420654207542085420954210542115421254213542145421554216542175421854219542205422154222542235422454225542265422754228542295423054231542325423354234542355423654237542385423954240542415424254243542445424554246542475424854249542505425154252542535425454255542565425754258542595426054261542625426354264542655426654267542685426954270542715427254273542745427554276542775427854279542805428154282542835428454285542865428754288542895429054291542925429354294542955429654297542985429954300543015430254303543045430554306543075430854309543105431154312543135431454315543165431754318543195432054321543225432354324543255432654327543285432954330543315433254333543345433554336543375433854339543405434154342543435434454345543465434754348543495435054351543525435354354543555435654357543585435954360543615436254363543645436554366543675436854369543705437154372543735437454375543765437754378543795438054381543825438354384543855438654387543885438954390543915439254393543945439554396543975439854399544005440154402544035440454405544065440754408544095441054411544125441354414544155441654417544185441954420544215442254423544245442554426544275442854429544305443154432544335443454435544365443754438544395444054441544425444354444544455444654447544485444954450544515445254453544545445554456544575445854459544605446154462544635446454465544665446754468544695447054471544725447354474544755447654477544785447954480544815448254483544845448554486544875448854489544905449154492544935449454495544965449754498544995450054501545025450354504545055450654507545085450954510545115451254513545145451554516545175451854519545205452154522545235452454525545265452754528545295453054531545325453354534545355453654537545385453954540545415454254543545445454554546545475454854549545505455154552545535455454555545565455754558545595456054561545625456354564545655456654567545685456954570545715457254573545745457554576545775457854579545805458154582545835458454585545865458754588545895459054591545925459354594545955459654597545985459954600546015460254603546045460554606546075460854609546105461154612546135461454615546165461754618546195462054621546225462354624546255462654627546285462954630546315463254633546345463554636546375463854639546405464154642546435464454645546465464754648546495465054651546525465354654546555465654657546585465954660546615466254663546645466554666546675466854669546705467154672546735467454675546765467754678546795468054681546825468354684546855468654687546885468954690546915469254693546945469554696546975469854699547005470154702547035470454705547065470754708547095471054711547125471354714547155471654717547185471954720547215472254723547245472554726547275472854729547305473154732547335473454735547365473754738547395474054741547425474354744547455474654747547485474954750547515475254753547545475554756547575475854759547605476154762547635476454765547665476754768547695477054771547725477354774547755477654777547785477954780547815478254783547845478554786547875478854789547905479154792547935479454795547965479754798547995480054801548025480354804548055480654807548085480954810548115481254813548145481554816548175481854819548205482154822548235482454825548265482754828548295483054831548325483354834548355483654837548385483954840548415484254843548445484554846548475484854849548505485154852548535485454855548565485754858548595486054861548625486354864548655486654867548685486954870548715487254873548745487554876548775487854879548805488154882548835488454885548865488754888548895489054891548925489354894548955489654897548985489954900549015490254903549045490554906549075490854909549105491154912549135491454915549165491754918549195492054921549225492354924549255492654927549285492954930549315493254933549345493554936549375493854939549405494154942549435494454945549465494754948549495495054951549525495354954549555495654957549585495954960549615496254963549645496554966549675496854969549705497154972549735497454975549765497754978549795498054981549825498354984549855498654987549885498954990549915499254993549945499554996549975499854999550005500155002550035500455005550065500755008550095501055011550125501355014550155501655017550185501955020550215502255023550245502555026550275502855029550305503155032550335503455035550365503755038550395504055041550425504355044550455504655047550485504955050550515505255053550545505555056550575505855059550605506155062550635506455065550665506755068550695507055071550725507355074550755507655077550785507955080550815508255083550845508555086550875508855089550905509155092550935509455095550965509755098550995510055101551025510355104551055510655107551085510955110551115511255113551145511555116551175511855119551205512155122551235512455125551265512755128551295513055131551325513355134551355513655137551385513955140551415514255143551445514555146551475514855149551505515155152551535515455155551565515755158551595516055161551625516355164551655516655167551685516955170551715517255173551745517555176551775517855179551805518155182551835518455185551865518755188551895519055191551925519355194551955519655197551985519955200552015520255203552045520555206552075520855209552105521155212552135521455215552165521755218552195522055221552225522355224552255522655227552285522955230552315523255233552345523555236552375523855239552405524155242552435524455245552465524755248552495525055251552525525355254552555525655257552585525955260552615526255263552645526555266552675526855269552705527155272552735527455275552765527755278552795528055281552825528355284552855528655287552885528955290552915529255293552945529555296552975529855299553005530155302553035530455305553065530755308553095531055311553125531355314553155531655317553185531955320553215532255323553245532555326553275532855329553305533155332553335533455335553365533755338553395534055341553425534355344553455534655347553485534955350553515535255353553545535555356553575535855359553605536155362553635536455365553665536755368553695537055371553725537355374553755537655377553785537955380553815538255383553845538555386553875538855389553905539155392553935539455395553965539755398553995540055401554025540355404554055540655407554085540955410554115541255413554145541555416554175541855419554205542155422554235542455425554265542755428554295543055431554325543355434554355543655437554385543955440554415544255443554445544555446554475544855449554505545155452554535545455455554565545755458554595546055461554625546355464554655546655467554685546955470554715547255473554745547555476554775547855479554805548155482554835548455485554865548755488554895549055491554925549355494554955549655497554985549955500555015550255503555045550555506555075550855509555105551155512555135551455515555165551755518555195552055521555225552355524555255552655527555285552955530555315553255533555345553555536555375553855539555405554155542555435554455545555465554755548555495555055551555525555355554555555555655557555585555955560555615556255563555645556555566555675556855569555705557155572555735557455575555765557755578555795558055581555825558355584555855558655587555885558955590555915559255593555945559555596555975559855599556005560155602556035560455605556065560755608556095561055611556125561355614556155561655617556185561955620556215562255623556245562555626556275562855629556305563155632556335563455635556365563755638556395564055641556425564355644556455564655647556485564955650556515565255653556545565555656556575565855659556605566155662556635566455665556665566755668556695567055671556725567355674556755567655677556785567955680556815568255683556845568555686556875568855689556905569155692556935569455695556965569755698556995570055701557025570355704557055570655707557085570955710557115571255713557145571555716557175571855719557205572155722557235572455725557265572755728557295573055731557325573355734557355573655737557385573955740557415574255743557445574555746557475574855749557505575155752557535575455755557565575755758557595576055761557625576355764557655576655767557685576955770557715577255773557745577555776557775577855779557805578155782557835578455785557865578755788557895579055791557925579355794557955579655797557985579955800558015580255803558045580555806558075580855809558105581155812558135581455815558165581755818558195582055821558225582355824558255582655827558285582955830558315583255833558345583555836558375583855839558405584155842558435584455845558465584755848558495585055851558525585355854558555585655857558585585955860558615586255863558645586555866558675586855869558705587155872558735587455875558765587755878558795588055881558825588355884558855588655887558885588955890558915589255893558945589555896558975589855899559005590155902559035590455905559065590755908559095591055911559125591355914559155591655917559185591955920559215592255923559245592555926559275592855929559305593155932559335593455935559365593755938559395594055941559425594355944559455594655947559485594955950559515595255953559545595555956559575595855959559605596155962559635596455965559665596755968559695597055971559725597355974559755597655977559785597955980559815598255983559845598555986559875598855989559905599155992559935599455995559965599755998559995600056001560025600356004560055600656007560085600956010560115601256013560145601556016560175601856019560205602156022560235602456025560265602756028560295603056031560325603356034560355603656037560385603956040560415604256043560445604556046560475604856049560505605156052560535605456055560565605756058560595606056061560625606356064560655606656067560685606956070560715607256073560745607556076560775607856079560805608156082560835608456085560865608756088560895609056091560925609356094560955609656097560985609956100561015610256103561045610556106561075610856109561105611156112561135611456115561165611756118561195612056121561225612356124561255612656127561285612956130561315613256133561345613556136561375613856139561405614156142561435614456145561465614756148561495615056151561525615356154561555615656157561585615956160561615616256163561645616556166561675616856169561705617156172561735617456175561765617756178561795618056181561825618356184561855618656187561885618956190561915619256193561945619556196561975619856199562005620156202562035620456205562065620756208562095621056211562125621356214562155621656217562185621956220562215622256223562245622556226562275622856229562305623156232562335623456235562365623756238562395624056241562425624356244562455624656247562485624956250562515625256253562545625556256562575625856259562605626156262562635626456265562665626756268562695627056271562725627356274562755627656277562785627956280562815628256283562845628556286562875628856289562905629156292562935629456295562965629756298562995630056301563025630356304563055630656307563085630956310563115631256313563145631556316563175631856319563205632156322563235632456325563265632756328563295633056331563325633356334563355633656337563385633956340563415634256343563445634556346563475634856349563505635156352563535635456355563565635756358563595636056361563625636356364563655636656367563685636956370563715637256373563745637556376563775637856379563805638156382563835638456385563865638756388563895639056391563925639356394563955639656397563985639956400564015640256403564045640556406564075640856409564105641156412564135641456415564165641756418564195642056421564225642356424564255642656427564285642956430564315643256433564345643556436564375643856439564405644156442564435644456445564465644756448564495645056451564525645356454564555645656457564585645956460564615646256463564645646556466564675646856469564705647156472564735647456475564765647756478564795648056481564825648356484564855648656487564885648956490564915649256493564945649556496564975649856499565005650156502565035650456505565065650756508565095651056511565125651356514565155651656517565185651956520565215652256523565245652556526565275652856529565305653156532565335653456535565365653756538565395654056541565425654356544565455654656547565485654956550565515655256553565545655556556565575655856559565605656156562565635656456565565665656756568565695657056571565725657356574565755657656577565785657956580565815658256583565845658556586565875658856589565905659156592565935659456595565965659756598565995660056601566025660356604566055660656607566085660956610566115661256613566145661556616566175661856619566205662156622566235662456625566265662756628566295663056631566325663356634566355663656637566385663956640566415664256643566445664556646566475664856649566505665156652566535665456655566565665756658566595666056661566625666356664566655666656667566685666956670566715667256673566745667556676566775667856679566805668156682566835668456685566865668756688566895669056691566925669356694566955669656697566985669956700567015670256703567045670556706567075670856709567105671156712567135671456715567165671756718567195672056721567225672356724567255672656727567285672956730567315673256733567345673556736567375673856739567405674156742567435674456745567465674756748567495675056751567525675356754567555675656757567585675956760567615676256763567645676556766567675676856769567705677156772567735677456775567765677756778567795678056781567825678356784567855678656787567885678956790567915679256793567945679556796567975679856799568005680156802568035680456805568065680756808568095681056811568125681356814568155681656817568185681956820568215682256823568245682556826568275682856829568305683156832568335683456835568365683756838568395684056841568425684356844568455684656847568485684956850568515685256853568545685556856568575685856859568605686156862568635686456865568665686756868568695687056871568725687356874568755687656877568785687956880568815688256883568845688556886568875688856889568905689156892568935689456895568965689756898568995690056901569025690356904569055690656907569085690956910569115691256913569145691556916569175691856919569205692156922569235692456925569265692756928569295693056931569325693356934569355693656937569385693956940569415694256943569445694556946569475694856949569505695156952569535695456955569565695756958569595696056961569625696356964569655696656967569685696956970569715697256973569745697556976569775697856979569805698156982569835698456985569865698756988569895699056991569925699356994569955699656997569985699957000570015700257003570045700557006570075700857009570105701157012570135701457015570165701757018570195702057021570225702357024570255702657027570285702957030570315703257033570345703557036570375703857039570405704157042570435704457045570465704757048570495705057051570525705357054570555705657057570585705957060570615706257063570645706557066570675706857069570705707157072570735707457075570765707757078570795708057081570825708357084570855708657087570885708957090570915709257093570945709557096570975709857099571005710157102571035710457105571065710757108571095711057111571125711357114571155711657117571185711957120571215712257123571245712557126571275712857129571305713157132571335713457135571365713757138571395714057141571425714357144571455714657147571485714957150571515715257153571545715557156571575715857159571605716157162571635716457165571665716757168571695717057171571725717357174571755717657177571785717957180571815718257183571845718557186571875718857189571905719157192571935719457195571965719757198571995720057201572025720357204572055720657207572085720957210572115721257213572145721557216572175721857219572205722157222572235722457225572265722757228572295723057231572325723357234572355723657237572385723957240572415724257243572445724557246572475724857249572505725157252572535725457255572565725757258572595726057261572625726357264572655726657267572685726957270572715727257273572745727557276572775727857279572805728157282572835728457285572865728757288572895729057291572925729357294572955729657297572985729957300573015730257303573045730557306573075730857309573105731157312573135731457315573165731757318573195732057321573225732357324573255732657327573285732957330573315733257333573345733557336573375733857339573405734157342573435734457345573465734757348573495735057351573525735357354573555735657357573585735957360573615736257363573645736557366573675736857369573705737157372573735737457375573765737757378573795738057381573825738357384573855738657387573885738957390573915739257393573945739557396573975739857399574005740157402574035740457405574065740757408574095741057411574125741357414574155741657417574185741957420574215742257423574245742557426574275742857429574305743157432574335743457435574365743757438574395744057441574425744357444574455744657447574485744957450574515745257453574545745557456574575745857459574605746157462574635746457465574665746757468574695747057471574725747357474574755747657477574785747957480574815748257483574845748557486574875748857489574905749157492574935749457495574965749757498574995750057501575025750357504575055750657507575085750957510575115751257513575145751557516575175751857519575205752157522575235752457525575265752757528575295753057531575325753357534575355753657537575385753957540575415754257543575445754557546575475754857549575505755157552575535755457555575565755757558575595756057561575625756357564575655756657567575685756957570575715757257573575745757557576575775757857579575805758157582575835758457585575865758757588575895759057591575925759357594575955759657597575985759957600576015760257603576045760557606576075760857609576105761157612576135761457615576165761757618576195762057621576225762357624576255762657627576285762957630576315763257633576345763557636576375763857639576405764157642576435764457645576465764757648576495765057651576525765357654576555765657657576585765957660576615766257663576645766557666576675766857669576705767157672576735767457675576765767757678576795768057681576825768357684576855768657687576885768957690576915769257693576945769557696576975769857699577005770157702577035770457705577065770757708577095771057711577125771357714577155771657717577185771957720577215772257723577245772557726577275772857729577305773157732577335773457735577365773757738577395774057741577425774357744577455774657747577485774957750577515775257753577545775557756577575775857759577605776157762577635776457765577665776757768577695777057771577725777357774577755777657777577785777957780577815778257783577845778557786577875778857789577905779157792577935779457795577965779757798577995780057801578025780357804578055780657807578085780957810578115781257813578145781557816578175781857819578205782157822578235782457825578265782757828578295783057831578325783357834578355783657837578385783957840578415784257843578445784557846578475784857849578505785157852578535785457855578565785757858578595786057861578625786357864578655786657867578685786957870578715787257873578745787557876578775787857879578805788157882578835788457885578865788757888578895789057891578925789357894578955789657897578985789957900579015790257903579045790557906579075790857909579105791157912579135791457915579165791757918579195792057921579225792357924579255792657927579285792957930579315793257933579345793557936579375793857939579405794157942579435794457945579465794757948579495795057951579525795357954579555795657957579585795957960579615796257963579645796557966579675796857969579705797157972579735797457975579765797757978579795798057981579825798357984579855798657987579885798957990579915799257993579945799557996579975799857999580005800158002580035800458005580065800758008580095801058011580125801358014580155801658017580185801958020580215802258023580245802558026580275802858029580305803158032580335803458035580365803758038580395804058041580425804358044580455804658047580485804958050580515805258053580545805558056580575805858059580605806158062580635806458065580665806758068580695807058071580725807358074580755807658077580785807958080580815808258083580845808558086580875808858089580905809158092580935809458095580965809758098580995810058101581025810358104581055810658107581085810958110581115811258113581145811558116581175811858119581205812158122581235812458125581265812758128581295813058131581325813358134581355813658137581385813958140581415814258143581445814558146581475814858149581505815158152581535815458155581565815758158581595816058161581625816358164581655816658167581685816958170581715817258173581745817558176581775817858179581805818158182581835818458185581865818758188581895819058191581925819358194581955819658197581985819958200582015820258203582045820558206582075820858209582105821158212582135821458215582165821758218582195822058221582225822358224582255822658227582285822958230582315823258233582345823558236582375823858239582405824158242582435824458245582465824758248582495825058251582525825358254582555825658257582585825958260582615826258263582645826558266582675826858269582705827158272582735827458275582765827758278582795828058281582825828358284582855828658287582885828958290582915829258293582945829558296582975829858299583005830158302583035830458305583065830758308583095831058311583125831358314583155831658317583185831958320583215832258323583245832558326583275832858329583305833158332583335833458335583365833758338583395834058341583425834358344583455834658347583485834958350583515835258353583545835558356583575835858359583605836158362583635836458365583665836758368583695837058371583725837358374583755837658377583785837958380583815838258383583845838558386583875838858389583905839158392583935839458395583965839758398583995840058401584025840358404584055840658407584085840958410584115841258413584145841558416584175841858419584205842158422584235842458425584265842758428584295843058431584325843358434584355843658437584385843958440584415844258443584445844558446584475844858449584505845158452584535845458455584565845758458584595846058461584625846358464584655846658467584685846958470584715847258473584745847558476584775847858479584805848158482584835848458485584865848758488584895849058491584925849358494584955849658497584985849958500585015850258503585045850558506585075850858509585105851158512585135851458515585165851758518585195852058521585225852358524585255852658527585285852958530585315853258533585345853558536585375853858539585405854158542585435854458545585465854758548585495855058551585525855358554585555855658557585585855958560585615856258563585645856558566585675856858569585705857158572585735857458575585765857758578585795858058581585825858358584585855858658587585885858958590585915859258593585945859558596585975859858599586005860158602586035860458605586065860758608586095861058611586125861358614586155861658617586185861958620586215862258623586245862558626586275862858629586305863158632586335863458635586365863758638586395864058641586425864358644586455864658647586485864958650586515865258653586545865558656586575865858659586605866158662586635866458665586665866758668586695867058671586725867358674586755867658677586785867958680586815868258683586845868558686586875868858689586905869158692586935869458695586965869758698586995870058701587025870358704587055870658707587085870958710587115871258713587145871558716587175871858719587205872158722587235872458725587265872758728587295873058731587325873358734587355873658737587385873958740587415874258743587445874558746587475874858749587505875158752587535875458755587565875758758587595876058761587625876358764587655876658767587685876958770587715877258773587745877558776587775877858779587805878158782587835878458785587865878758788587895879058791587925879358794587955879658797587985879958800588015880258803588045880558806588075880858809588105881158812588135881458815588165881758818588195882058821588225882358824588255882658827588285882958830588315883258833588345883558836588375883858839588405884158842588435884458845588465884758848588495885058851588525885358854588555885658857588585885958860588615886258863588645886558866588675886858869588705887158872588735887458875588765887758878588795888058881588825888358884588855888658887588885888958890588915889258893588945889558896588975889858899589005890158902589035890458905589065890758908589095891058911589125891358914589155891658917589185891958920589215892258923589245892558926589275892858929589305893158932589335893458935589365893758938589395894058941589425894358944589455894658947589485894958950589515895258953589545895558956589575895858959589605896158962589635896458965589665896758968589695897058971589725897358974589755897658977589785897958980589815898258983589845898558986589875898858989589905899158992589935899458995589965899758998589995900059001590025900359004590055900659007590085900959010590115901259013590145901559016590175901859019590205902159022590235902459025590265902759028590295903059031590325903359034590355903659037590385903959040590415904259043590445904559046590475904859049590505905159052590535905459055590565905759058590595906059061590625906359064590655906659067590685906959070590715907259073590745907559076590775907859079590805908159082590835908459085590865908759088590895909059091590925909359094590955909659097590985909959100591015910259103591045910559106591075910859109591105911159112591135911459115591165911759118591195912059121591225912359124591255912659127591285912959130591315913259133591345913559136591375913859139591405914159142591435914459145591465914759148591495915059151591525915359154591555915659157591585915959160591615916259163591645916559166591675916859169591705917159172591735917459175591765917759178591795918059181591825918359184
  1. // Copyright (c) 2015-2019 The Khronos Group Inc.
  2. //
  3. // Licensed under the Apache License, Version 2.0 (the "License");
  4. // you may not use this file except in compliance with the License.
  5. // You may obtain a copy of the License at
  6. //
  7. // http://www.apache.org/licenses/LICENSE-2.0
  8. //
  9. // Unless required by applicable law or agreed to in writing, software
  10. // distributed under the License is distributed on an "AS IS" BASIS,
  11. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. // See the License for the specific language governing permissions and
  13. // limitations under the License.
  14. //
  15. // ---- Exceptions to the Apache 2.0 License: ----
  16. //
  17. // As an exception, if you use this Software to generate code and portions of
  18. // this Software are embedded into the generated code as a result, you may
  19. // redistribute such product without providing attribution as would otherwise
  20. // be required by Sections 4(a), 4(b) and 4(d) of the License.
  21. //
  22. // In addition, if you combine or link code generated by this Software with
  23. // software that is licensed under the GPLv2 or the LGPL v2.0 or 2.1
  24. // ("`Combined Software`") and if a court of competent jurisdiction determines
  25. // that the patent provision (Section 3), the indemnity provision (Section 9)
  26. // or other Section of the License conflicts with the conditions of the
  27. // applicable GPL or LGPL license, you may retroactively and prospectively
  28. // choose to deem waived or otherwise exclude such Section(s) of the License,
  29. // but only in their entirety and only with respect to the Combined Software.
  30. //
  31. // This header is generated from the Khronos Vulkan XML API Registry.
  32. #ifndef VULKAN_HPP
  33. #define VULKAN_HPP
  34. #include <algorithm>
  35. #include <array>
  36. #include <cstddef>
  37. #include <cstdint>
  38. #include <cstring>
  39. #include <initializer_list>
  40. #include <string>
  41. #include <system_error>
  42. #include <tuple>
  43. #include <type_traits>
  44. #include <vulkan/vulkan.h>
  45. #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
  46. # include <memory>
  47. # include <vector>
  48. #endif
  49. #if !defined(VULKAN_HPP_ASSERT)
  50. # include <cassert>
  51. # define VULKAN_HPP_ASSERT assert
  52. #endif
  53. static_assert( VK_HEADER_VERSION == 114 , "Wrong VK_HEADER_VERSION!" );
  54. // 32-bit vulkan is not typesafe for handles, so don't allow copy constructors on this platform by default.
  55. // To enable this feature on 32-bit platforms please define VULKAN_HPP_TYPESAFE_CONVERSION
  56. #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
  57. # if !defined( VULKAN_HPP_TYPESAFE_CONVERSION )
  58. # define VULKAN_HPP_TYPESAFE_CONVERSION
  59. # endif
  60. #endif
  61. // <tuple> includes <sys/sysmacros.h> through some other header
  62. // this results in major(x) being resolved to gnu_dev_major(x)
  63. // which is an expression in a constructor initializer list.
  64. #if defined(major)
  65. #undef major
  66. #endif
  67. #if defined(minor)
  68. #undef minor
  69. #endif
  70. // Windows defines MemoryBarrier which is deprecated and collides
  71. // with the vk::MemoryBarrier struct.
  72. #if defined(MemoryBarrier)
  73. #undef MemoryBarrier
  74. #endif
  75. #if !defined(VULKAN_HPP_HAS_UNRESTRICTED_UNIONS)
  76. # if defined(__clang__)
  77. # if __has_feature(cxx_unrestricted_unions)
  78. # define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
  79. # endif
  80. # elif defined(__GNUC__)
  81. # define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
  82. # if 40600 <= GCC_VERSION
  83. # define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
  84. # endif
  85. # elif defined(_MSC_VER)
  86. # if 1900 <= _MSC_VER
  87. # define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
  88. # endif
  89. # endif
  90. #endif
  91. #if !defined(VULKAN_HPP_INLINE)
  92. # if defined(__clang___)
  93. # if __has_attribute(always_inline)
  94. # define VULKAN_HPP_INLINE __attribute__((always_inline)) __inline__
  95. # else
  96. # define VULKAN_HPP_INLINE inline
  97. # endif
  98. # elif defined(__GNUC__)
  99. # define VULKAN_HPP_INLINE __attribute__((always_inline)) __inline__
  100. # elif defined(_MSC_VER)
  101. # define VULKAN_HPP_INLINE inline
  102. # else
  103. # define VULKAN_HPP_INLINE inline
  104. # endif
  105. #endif
  106. #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
  107. # define VULKAN_HPP_TYPESAFE_EXPLICIT
  108. #else
  109. # define VULKAN_HPP_TYPESAFE_EXPLICIT explicit
  110. #endif
  111. #if defined(_MSC_VER) && (_MSC_VER <= 1800)
  112. # define VULKAN_HPP_CONSTEXPR
  113. #else
  114. # define VULKAN_HPP_CONSTEXPR constexpr
  115. #endif
  116. #if !defined(VULKAN_HPP_NAMESPACE)
  117. #define VULKAN_HPP_NAMESPACE vk
  118. #endif
  119. #define VULKAN_HPP_STRINGIFY2(text) #text
  120. #define VULKAN_HPP_STRINGIFY(text) VULKAN_HPP_STRINGIFY2(text)
  121. #define VULKAN_HPP_NAMESPACE_STRING VULKAN_HPP_STRINGIFY(VULKAN_HPP_NAMESPACE)
  122. namespace VULKAN_HPP_NAMESPACE
  123. {
  124. #if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE)
  125. template <typename T>
  126. class ArrayProxy
  127. {
  128. public:
  129. VULKAN_HPP_CONSTEXPR ArrayProxy(std::nullptr_t)
  130. : m_count(0)
  131. , m_ptr(nullptr)
  132. {}
  133. ArrayProxy(T & ptr)
  134. : m_count(1)
  135. , m_ptr(&ptr)
  136. {}
  137. ArrayProxy(uint32_t count, T * ptr)
  138. : m_count(count)
  139. , m_ptr(ptr)
  140. {}
  141. template <size_t N>
  142. ArrayProxy(std::array<typename std::remove_const<T>::type, N> & data)
  143. : m_count(N)
  144. , m_ptr(data.data())
  145. {}
  146. template <size_t N>
  147. ArrayProxy(std::array<typename std::remove_const<T>::type, N> const& data)
  148. : m_count(N)
  149. , m_ptr(data.data())
  150. {}
  151. template <class Allocator = std::allocator<typename std::remove_const<T>::type>>
  152. ArrayProxy(std::vector<typename std::remove_const<T>::type, Allocator> & data)
  153. : m_count(static_cast<uint32_t>(data.size()))
  154. , m_ptr(data.data())
  155. {}
  156. template <class Allocator = std::allocator<typename std::remove_const<T>::type>>
  157. ArrayProxy(std::vector<typename std::remove_const<T>::type, Allocator> const& data)
  158. : m_count(static_cast<uint32_t>(data.size()))
  159. , m_ptr(data.data())
  160. {}
  161. ArrayProxy(std::initializer_list<T> const& data)
  162. : m_count(static_cast<uint32_t>(data.end() - data.begin()))
  163. , m_ptr(data.begin())
  164. {}
  165. const T * begin() const
  166. {
  167. return m_ptr;
  168. }
  169. const T * end() const
  170. {
  171. return m_ptr + m_count;
  172. }
  173. const T & front() const
  174. {
  175. VULKAN_HPP_ASSERT(m_count && m_ptr);
  176. return *m_ptr;
  177. }
  178. const T & back() const
  179. {
  180. VULKAN_HPP_ASSERT(m_count && m_ptr);
  181. return *(m_ptr + m_count - 1);
  182. }
  183. bool empty() const
  184. {
  185. return (m_count == 0);
  186. }
  187. uint32_t size() const
  188. {
  189. return m_count;
  190. }
  191. T * data() const
  192. {
  193. return m_ptr;
  194. }
  195. private:
  196. uint32_t m_count;
  197. T * m_ptr;
  198. };
  199. #endif
  200. template <typename FlagBitsType> struct FlagTraits
  201. {
  202. enum { allFlags = 0 };
  203. };
  204. template <typename BitType, typename MaskType = VkFlags>
  205. class Flags
  206. {
  207. public:
  208. VULKAN_HPP_CONSTEXPR Flags()
  209. : m_mask(0)
  210. {
  211. }
  212. Flags(BitType bit)
  213. : m_mask(static_cast<MaskType>(bit))
  214. {
  215. }
  216. Flags(Flags<BitType> const& rhs)
  217. : m_mask(rhs.m_mask)
  218. {
  219. }
  220. explicit Flags(MaskType flags)
  221. : m_mask(flags)
  222. {
  223. }
  224. Flags<BitType> & operator=(Flags<BitType> const& rhs)
  225. {
  226. m_mask = rhs.m_mask;
  227. return *this;
  228. }
  229. Flags<BitType> & operator|=(Flags<BitType> const& rhs)
  230. {
  231. m_mask |= rhs.m_mask;
  232. return *this;
  233. }
  234. Flags<BitType> & operator&=(Flags<BitType> const& rhs)
  235. {
  236. m_mask &= rhs.m_mask;
  237. return *this;
  238. }
  239. Flags<BitType> & operator^=(Flags<BitType> const& rhs)
  240. {
  241. m_mask ^= rhs.m_mask;
  242. return *this;
  243. }
  244. Flags<BitType> operator|(Flags<BitType> const& rhs) const
  245. {
  246. Flags<BitType> result(*this);
  247. result |= rhs;
  248. return result;
  249. }
  250. Flags<BitType> operator&(Flags<BitType> const& rhs) const
  251. {
  252. Flags<BitType> result(*this);
  253. result &= rhs;
  254. return result;
  255. }
  256. Flags<BitType> operator^(Flags<BitType> const& rhs) const
  257. {
  258. Flags<BitType> result(*this);
  259. result ^= rhs;
  260. return result;
  261. }
  262. bool operator!() const
  263. {
  264. return !m_mask;
  265. }
  266. Flags<BitType> operator~() const
  267. {
  268. Flags<BitType> result(*this);
  269. result.m_mask ^= FlagTraits<BitType>::allFlags;
  270. return result;
  271. }
  272. bool operator==(Flags<BitType> const& rhs) const
  273. {
  274. return m_mask == rhs.m_mask;
  275. }
  276. bool operator!=(Flags<BitType> const& rhs) const
  277. {
  278. return m_mask != rhs.m_mask;
  279. }
  280. explicit operator bool() const
  281. {
  282. return !!m_mask;
  283. }
  284. explicit operator MaskType() const
  285. {
  286. return m_mask;
  287. }
  288. private:
  289. MaskType m_mask;
  290. };
  291. template <typename BitType>
  292. Flags<BitType> operator|(BitType bit, Flags<BitType> const& flags)
  293. {
  294. return flags | bit;
  295. }
  296. template <typename BitType>
  297. Flags<BitType> operator&(BitType bit, Flags<BitType> const& flags)
  298. {
  299. return flags & bit;
  300. }
  301. template <typename BitType>
  302. Flags<BitType> operator^(BitType bit, Flags<BitType> const& flags)
  303. {
  304. return flags ^ bit;
  305. }
  306. template <typename RefType>
  307. class Optional
  308. {
  309. public:
  310. Optional(RefType & reference) { m_ptr = &reference; }
  311. Optional(RefType * ptr) { m_ptr = ptr; }
  312. Optional(std::nullptr_t) { m_ptr = nullptr; }
  313. operator RefType*() const { return m_ptr; }
  314. RefType const* operator->() const { return m_ptr; }
  315. explicit operator bool() const { return !!m_ptr; }
  316. private:
  317. RefType *m_ptr;
  318. };
  319. template <typename X, typename Y> struct isStructureChainValid { enum { value = false }; };
  320. template <typename P, typename T>
  321. struct TypeList
  322. {
  323. using list = P;
  324. using last = T;
  325. };
  326. template <typename List, typename X>
  327. struct extendCheck
  328. {
  329. static const bool valid = isStructureChainValid<typename List::last, X>::value || extendCheck<typename List::list,X>::valid;
  330. };
  331. template <typename T, typename X>
  332. struct extendCheck<TypeList<void,T>,X>
  333. {
  334. static const bool valid = isStructureChainValid<T, X>::value;
  335. };
  336. template <typename X>
  337. struct extendCheck<void,X>
  338. {
  339. static const bool valid = true;
  340. };
  341. template <class Element>
  342. class StructureChainElement
  343. {
  344. public:
  345. explicit operator Element&() { return value; }
  346. explicit operator const Element&() const { return value; }
  347. private:
  348. Element value;
  349. };
  350. template<typename ...StructureElements>
  351. class StructureChain : private StructureChainElement<StructureElements>...
  352. {
  353. public:
  354. StructureChain()
  355. {
  356. link<void, StructureElements...>();
  357. }
  358. StructureChain(StructureChain const &rhs)
  359. {
  360. linkAndCopy<void, StructureElements...>(rhs);
  361. }
  362. StructureChain(StructureElements const &... elems)
  363. {
  364. linkAndCopyElements<void, StructureElements...>(elems...);
  365. }
  366. StructureChain& operator=(StructureChain const &rhs)
  367. {
  368. linkAndCopy<void, StructureElements...>(rhs);
  369. return *this;
  370. }
  371. template<typename ClassType> ClassType& get() { return static_cast<ClassType&>(*this);}
  372. template<typename ClassTypeA, typename ClassTypeB, typename ...ClassTypes>
  373. std::tuple<ClassTypeA, ClassTypeB, ClassTypes...> get()
  374. {
  375. return std::tuple_cat(
  376. std::make_tuple(get<ClassTypeA>(),get<ClassTypeB>()),
  377. std::make_tuple(get<ClassTypes>()...)
  378. );
  379. }
  380. private:
  381. template<typename List, typename X>
  382. void link()
  383. {
  384. static_assert(extendCheck<List, X>::valid, "The structure chain is not valid!");
  385. }
  386. template<typename List, typename X, typename Y, typename ...Z>
  387. void link()
  388. {
  389. static_assert(extendCheck<List,X>::valid, "The structure chain is not valid!");
  390. X& x = static_cast<X&>(*this);
  391. Y& y = static_cast<Y&>(*this);
  392. x.pNext = &y;
  393. link<TypeList<List, X>, Y, Z...>();
  394. }
  395. template<typename List, typename X>
  396. void linkAndCopy(StructureChain const &rhs)
  397. {
  398. static_assert(extendCheck<List, X>::valid, "The structure chain is not valid!");
  399. static_cast<X&>(*this) = static_cast<X const &>(rhs);
  400. }
  401. template<typename List, typename X, typename Y, typename ...Z>
  402. void linkAndCopy(StructureChain const &rhs)
  403. {
  404. static_assert(extendCheck<List, X>::valid, "The structure chain is not valid!");
  405. X& x = static_cast<X&>(*this);
  406. Y& y = static_cast<Y&>(*this);
  407. x = static_cast<X const &>(rhs);
  408. x.pNext = &y;
  409. linkAndCopy<TypeList<List, X>, Y, Z...>(rhs);
  410. }
  411. template<typename List, typename X>
  412. void linkAndCopyElements(X const &xelem)
  413. {
  414. static_assert(extendCheck<List, X>::valid, "The structure chain is not valid!");
  415. static_cast<X&>(*this) = xelem;
  416. }
  417. template<typename List, typename X, typename Y, typename ...Z>
  418. void linkAndCopyElements(X const &xelem, Y const &yelem, Z const &... zelem)
  419. {
  420. static_assert(extendCheck<List, X>::valid, "The structure chain is not valid!");
  421. X& x = static_cast<X&>(*this);
  422. Y& y = static_cast<Y&>(*this);
  423. x = xelem;
  424. x.pNext = &y;
  425. linkAndCopyElements<TypeList<List, X>, Y, Z...>(yelem, zelem...);
  426. }
  427. };
  428. #if !defined(VULKAN_HPP_NO_SMART_HANDLE)
  429. template <typename Type, typename Dispatch> class UniqueHandleTraits;
  430. template <typename Type, typename Dispatch>
  431. class UniqueHandle : public UniqueHandleTraits<Type,Dispatch>::deleter
  432. {
  433. private:
  434. using Deleter = typename UniqueHandleTraits<Type,Dispatch>::deleter;
  435. public:
  436. using element_type = Type;
  437. explicit UniqueHandle( Type const& value = Type(), Deleter const& deleter = Deleter() )
  438. : Deleter( deleter)
  439. , m_value( value )
  440. {}
  441. UniqueHandle( UniqueHandle const& ) = delete;
  442. UniqueHandle( UniqueHandle && other )
  443. : Deleter( std::move( static_cast<Deleter&>( other ) ) )
  444. , m_value( other.release() )
  445. {}
  446. ~UniqueHandle()
  447. {
  448. if ( m_value ) this->destroy( m_value );
  449. }
  450. UniqueHandle & operator=( UniqueHandle const& ) = delete;
  451. UniqueHandle & operator=( UniqueHandle && other )
  452. {
  453. reset( other.release() );
  454. *static_cast<Deleter*>(this) = std::move( static_cast<Deleter&>(other) );
  455. return *this;
  456. }
  457. explicit operator bool() const
  458. {
  459. return m_value.operator bool();
  460. }
  461. Type const* operator->() const
  462. {
  463. return &m_value;
  464. }
  465. Type * operator->()
  466. {
  467. return &m_value;
  468. }
  469. Type const& operator*() const
  470. {
  471. return m_value;
  472. }
  473. Type & operator*()
  474. {
  475. return m_value;
  476. }
  477. const Type & get() const
  478. {
  479. return m_value;
  480. }
  481. Type & get()
  482. {
  483. return m_value;
  484. }
  485. void reset( Type const& value = Type() )
  486. {
  487. if ( m_value != value )
  488. {
  489. if ( m_value ) this->destroy( m_value );
  490. m_value = value;
  491. }
  492. }
  493. Type release()
  494. {
  495. Type value = m_value;
  496. m_value = nullptr;
  497. return value;
  498. }
  499. void swap( UniqueHandle<Type,Dispatch> & rhs )
  500. {
  501. std::swap(m_value, rhs.m_value);
  502. std::swap(static_cast<Deleter&>(*this), static_cast<Deleter&>(rhs));
  503. }
  504. private:
  505. Type m_value;
  506. };
  507. template <typename UniqueType>
  508. VULKAN_HPP_INLINE std::vector<typename UniqueType::element_type> uniqueToRaw(std::vector<UniqueType> const& handles)
  509. {
  510. std::vector<typename UniqueType::element_type> newBuffer(handles.size());
  511. std::transform(handles.begin(), handles.end(), newBuffer.begin(), [](UniqueType const& handle) { return handle.get(); });
  512. return newBuffer;
  513. }
  514. template <typename Type, typename Dispatch>
  515. VULKAN_HPP_INLINE void swap( UniqueHandle<Type,Dispatch> & lhs, UniqueHandle<Type,Dispatch> & rhs )
  516. {
  517. lhs.swap( rhs );
  518. }
  519. #endif
  520. #if !defined(VK_NO_PROTOTYPES)
  521. class DispatchLoaderStatic
  522. {
  523. public:
  524. VkResult vkCreateInstance( const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance ) const
  525. {
  526. return ::vkCreateInstance( pCreateInfo, pAllocator, pInstance );
  527. }
  528. VkResult vkEnumerateInstanceExtensionProperties( const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties ) const
  529. {
  530. return ::vkEnumerateInstanceExtensionProperties( pLayerName, pPropertyCount, pProperties );
  531. }
  532. VkResult vkEnumerateInstanceLayerProperties( uint32_t* pPropertyCount, VkLayerProperties* pProperties ) const
  533. {
  534. return ::vkEnumerateInstanceLayerProperties( pPropertyCount, pProperties );
  535. }
  536. VkResult vkEnumerateInstanceVersion( uint32_t* pApiVersion ) const
  537. {
  538. return ::vkEnumerateInstanceVersion( pApiVersion );
  539. }
  540. VkResult vkBeginCommandBuffer( VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo ) const
  541. {
  542. return ::vkBeginCommandBuffer( commandBuffer, pBeginInfo );
  543. }
  544. void vkCmdBeginConditionalRenderingEXT( VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin ) const
  545. {
  546. return ::vkCmdBeginConditionalRenderingEXT( commandBuffer, pConditionalRenderingBegin );
  547. }
  548. void vkCmdBeginDebugUtilsLabelEXT( VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo ) const
  549. {
  550. return ::vkCmdBeginDebugUtilsLabelEXT( commandBuffer, pLabelInfo );
  551. }
  552. void vkCmdBeginQuery( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags ) const
  553. {
  554. return ::vkCmdBeginQuery( commandBuffer, queryPool, query, flags );
  555. }
  556. void vkCmdBeginQueryIndexedEXT( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index ) const
  557. {
  558. return ::vkCmdBeginQueryIndexedEXT( commandBuffer, queryPool, query, flags, index );
  559. }
  560. void vkCmdBeginRenderPass( VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents ) const
  561. {
  562. return ::vkCmdBeginRenderPass( commandBuffer, pRenderPassBegin, contents );
  563. }
  564. void vkCmdBeginRenderPass2KHR( VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfoKHR* pSubpassBeginInfo ) const
  565. {
  566. return ::vkCmdBeginRenderPass2KHR( commandBuffer, pRenderPassBegin, pSubpassBeginInfo );
  567. }
  568. void vkCmdBeginTransformFeedbackEXT( VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets ) const
  569. {
  570. return ::vkCmdBeginTransformFeedbackEXT( commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets );
  571. }
  572. void vkCmdBindDescriptorSets( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets ) const
  573. {
  574. return ::vkCmdBindDescriptorSets( commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets );
  575. }
  576. void vkCmdBindIndexBuffer( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType ) const
  577. {
  578. return ::vkCmdBindIndexBuffer( commandBuffer, buffer, offset, indexType );
  579. }
  580. void vkCmdBindPipeline( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline ) const
  581. {
  582. return ::vkCmdBindPipeline( commandBuffer, pipelineBindPoint, pipeline );
  583. }
  584. void vkCmdBindShadingRateImageNV( VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout ) const
  585. {
  586. return ::vkCmdBindShadingRateImageNV( commandBuffer, imageView, imageLayout );
  587. }
  588. void vkCmdBindTransformFeedbackBuffersEXT( VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes ) const
  589. {
  590. return ::vkCmdBindTransformFeedbackBuffersEXT( commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes );
  591. }
  592. void vkCmdBindVertexBuffers( VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets ) const
  593. {
  594. return ::vkCmdBindVertexBuffers( commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets );
  595. }
  596. void vkCmdBlitImage( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter ) const
  597. {
  598. return ::vkCmdBlitImage( commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter );
  599. }
  600. void vkCmdBuildAccelerationStructureNV( VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkBuffer scratch, VkDeviceSize scratchOffset ) const
  601. {
  602. return ::vkCmdBuildAccelerationStructureNV( commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset );
  603. }
  604. void vkCmdClearAttachments( VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects ) const
  605. {
  606. return ::vkCmdClearAttachments( commandBuffer, attachmentCount, pAttachments, rectCount, pRects );
  607. }
  608. void vkCmdClearColorImage( VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges ) const
  609. {
  610. return ::vkCmdClearColorImage( commandBuffer, image, imageLayout, pColor, rangeCount, pRanges );
  611. }
  612. void vkCmdClearDepthStencilImage( VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges ) const
  613. {
  614. return ::vkCmdClearDepthStencilImage( commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges );
  615. }
  616. void vkCmdCopyAccelerationStructureNV( VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeNV mode ) const
  617. {
  618. return ::vkCmdCopyAccelerationStructureNV( commandBuffer, dst, src, mode );
  619. }
  620. void vkCmdCopyBuffer( VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions ) const
  621. {
  622. return ::vkCmdCopyBuffer( commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions );
  623. }
  624. void vkCmdCopyBufferToImage( VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions ) const
  625. {
  626. return ::vkCmdCopyBufferToImage( commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions );
  627. }
  628. void vkCmdCopyImage( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions ) const
  629. {
  630. return ::vkCmdCopyImage( commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions );
  631. }
  632. void vkCmdCopyImageToBuffer( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions ) const
  633. {
  634. return ::vkCmdCopyImageToBuffer( commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions );
  635. }
  636. void vkCmdCopyQueryPoolResults( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags ) const
  637. {
  638. return ::vkCmdCopyQueryPoolResults( commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags );
  639. }
  640. void vkCmdDebugMarkerBeginEXT( VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo ) const
  641. {
  642. return ::vkCmdDebugMarkerBeginEXT( commandBuffer, pMarkerInfo );
  643. }
  644. void vkCmdDebugMarkerEndEXT( VkCommandBuffer commandBuffer ) const
  645. {
  646. return ::vkCmdDebugMarkerEndEXT( commandBuffer );
  647. }
  648. void vkCmdDebugMarkerInsertEXT( VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo ) const
  649. {
  650. return ::vkCmdDebugMarkerInsertEXT( commandBuffer, pMarkerInfo );
  651. }
  652. void vkCmdDispatch( VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) const
  653. {
  654. return ::vkCmdDispatch( commandBuffer, groupCountX, groupCountY, groupCountZ );
  655. }
  656. void vkCmdDispatchBase( VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) const
  657. {
  658. return ::vkCmdDispatchBase( commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ );
  659. }
  660. void vkCmdDispatchBaseKHR( VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) const
  661. {
  662. return ::vkCmdDispatchBaseKHR( commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ );
  663. }
  664. void vkCmdDispatchIndirect( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset ) const
  665. {
  666. return ::vkCmdDispatchIndirect( commandBuffer, buffer, offset );
  667. }
  668. void vkCmdDraw( VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance ) const
  669. {
  670. return ::vkCmdDraw( commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance );
  671. }
  672. void vkCmdDrawIndexed( VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance ) const
  673. {
  674. return ::vkCmdDrawIndexed( commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance );
  675. }
  676. void vkCmdDrawIndexedIndirect( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ) const
  677. {
  678. return ::vkCmdDrawIndexedIndirect( commandBuffer, buffer, offset, drawCount, stride );
  679. }
  680. void vkCmdDrawIndexedIndirectCountAMD( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const
  681. {
  682. return ::vkCmdDrawIndexedIndirectCountAMD( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
  683. }
  684. void vkCmdDrawIndexedIndirectCountKHR( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const
  685. {
  686. return ::vkCmdDrawIndexedIndirectCountKHR( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
  687. }
  688. void vkCmdDrawIndirect( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ) const
  689. {
  690. return ::vkCmdDrawIndirect( commandBuffer, buffer, offset, drawCount, stride );
  691. }
  692. void vkCmdDrawIndirectByteCountEXT( VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride ) const
  693. {
  694. return ::vkCmdDrawIndirectByteCountEXT( commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride );
  695. }
  696. void vkCmdDrawIndirectCountAMD( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const
  697. {
  698. return ::vkCmdDrawIndirectCountAMD( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
  699. }
  700. void vkCmdDrawIndirectCountKHR( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const
  701. {
  702. return ::vkCmdDrawIndirectCountKHR( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
  703. }
  704. void vkCmdDrawMeshTasksIndirectCountNV( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const
  705. {
  706. return ::vkCmdDrawMeshTasksIndirectCountNV( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
  707. }
  708. void vkCmdDrawMeshTasksIndirectNV( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ) const
  709. {
  710. return ::vkCmdDrawMeshTasksIndirectNV( commandBuffer, buffer, offset, drawCount, stride );
  711. }
  712. void vkCmdDrawMeshTasksNV( VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask ) const
  713. {
  714. return ::vkCmdDrawMeshTasksNV( commandBuffer, taskCount, firstTask );
  715. }
  716. void vkCmdEndConditionalRenderingEXT( VkCommandBuffer commandBuffer ) const
  717. {
  718. return ::vkCmdEndConditionalRenderingEXT( commandBuffer );
  719. }
  720. void vkCmdEndDebugUtilsLabelEXT( VkCommandBuffer commandBuffer ) const
  721. {
  722. return ::vkCmdEndDebugUtilsLabelEXT( commandBuffer );
  723. }
  724. void vkCmdEndQuery( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query ) const
  725. {
  726. return ::vkCmdEndQuery( commandBuffer, queryPool, query );
  727. }
  728. void vkCmdEndQueryIndexedEXT( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index ) const
  729. {
  730. return ::vkCmdEndQueryIndexedEXT( commandBuffer, queryPool, query, index );
  731. }
  732. void vkCmdEndRenderPass( VkCommandBuffer commandBuffer ) const
  733. {
  734. return ::vkCmdEndRenderPass( commandBuffer );
  735. }
  736. void vkCmdEndRenderPass2KHR( VkCommandBuffer commandBuffer, const VkSubpassEndInfoKHR* pSubpassEndInfo ) const
  737. {
  738. return ::vkCmdEndRenderPass2KHR( commandBuffer, pSubpassEndInfo );
  739. }
  740. void vkCmdEndTransformFeedbackEXT( VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets ) const
  741. {
  742. return ::vkCmdEndTransformFeedbackEXT( commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets );
  743. }
  744. void vkCmdExecuteCommands( VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers ) const
  745. {
  746. return ::vkCmdExecuteCommands( commandBuffer, commandBufferCount, pCommandBuffers );
  747. }
  748. void vkCmdFillBuffer( VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data ) const
  749. {
  750. return ::vkCmdFillBuffer( commandBuffer, dstBuffer, dstOffset, size, data );
  751. }
  752. void vkCmdInsertDebugUtilsLabelEXT( VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo ) const
  753. {
  754. return ::vkCmdInsertDebugUtilsLabelEXT( commandBuffer, pLabelInfo );
  755. }
  756. void vkCmdNextSubpass( VkCommandBuffer commandBuffer, VkSubpassContents contents ) const
  757. {
  758. return ::vkCmdNextSubpass( commandBuffer, contents );
  759. }
  760. void vkCmdNextSubpass2KHR( VkCommandBuffer commandBuffer, const VkSubpassBeginInfoKHR* pSubpassBeginInfo, const VkSubpassEndInfoKHR* pSubpassEndInfo ) const
  761. {
  762. return ::vkCmdNextSubpass2KHR( commandBuffer, pSubpassBeginInfo, pSubpassEndInfo );
  763. }
  764. void vkCmdPipelineBarrier( VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers ) const
  765. {
  766. return ::vkCmdPipelineBarrier( commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers );
  767. }
  768. void vkCmdProcessCommandsNVX( VkCommandBuffer commandBuffer, const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo ) const
  769. {
  770. return ::vkCmdProcessCommandsNVX( commandBuffer, pProcessCommandsInfo );
  771. }
  772. void vkCmdPushConstants( VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues ) const
  773. {
  774. return ::vkCmdPushConstants( commandBuffer, layout, stageFlags, offset, size, pValues );
  775. }
  776. void vkCmdPushDescriptorSetKHR( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites ) const
  777. {
  778. return ::vkCmdPushDescriptorSetKHR( commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites );
  779. }
  780. void vkCmdPushDescriptorSetWithTemplateKHR( VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData ) const
  781. {
  782. return ::vkCmdPushDescriptorSetWithTemplateKHR( commandBuffer, descriptorUpdateTemplate, layout, set, pData );
  783. }
  784. void vkCmdReserveSpaceForCommandsNVX( VkCommandBuffer commandBuffer, const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo ) const
  785. {
  786. return ::vkCmdReserveSpaceForCommandsNVX( commandBuffer, pReserveSpaceInfo );
  787. }
  788. void vkCmdResetEvent( VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask ) const
  789. {
  790. return ::vkCmdResetEvent( commandBuffer, event, stageMask );
  791. }
  792. void vkCmdResetQueryPool( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount ) const
  793. {
  794. return ::vkCmdResetQueryPool( commandBuffer, queryPool, firstQuery, queryCount );
  795. }
  796. void vkCmdResolveImage( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions ) const
  797. {
  798. return ::vkCmdResolveImage( commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions );
  799. }
  800. void vkCmdSetBlendConstants( VkCommandBuffer commandBuffer, const float blendConstants[4] ) const
  801. {
  802. return ::vkCmdSetBlendConstants( commandBuffer, blendConstants );
  803. }
  804. void vkCmdSetCheckpointNV( VkCommandBuffer commandBuffer, const void* pCheckpointMarker ) const
  805. {
  806. return ::vkCmdSetCheckpointNV( commandBuffer, pCheckpointMarker );
  807. }
  808. void vkCmdSetCoarseSampleOrderNV( VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders ) const
  809. {
  810. return ::vkCmdSetCoarseSampleOrderNV( commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders );
  811. }
  812. void vkCmdSetDepthBias( VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor ) const
  813. {
  814. return ::vkCmdSetDepthBias( commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor );
  815. }
  816. void vkCmdSetDepthBounds( VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds ) const
  817. {
  818. return ::vkCmdSetDepthBounds( commandBuffer, minDepthBounds, maxDepthBounds );
  819. }
  820. void vkCmdSetDeviceMask( VkCommandBuffer commandBuffer, uint32_t deviceMask ) const
  821. {
  822. return ::vkCmdSetDeviceMask( commandBuffer, deviceMask );
  823. }
  824. void vkCmdSetDeviceMaskKHR( VkCommandBuffer commandBuffer, uint32_t deviceMask ) const
  825. {
  826. return ::vkCmdSetDeviceMaskKHR( commandBuffer, deviceMask );
  827. }
  828. void vkCmdSetDiscardRectangleEXT( VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles ) const
  829. {
  830. return ::vkCmdSetDiscardRectangleEXT( commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles );
  831. }
  832. void vkCmdSetEvent( VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask ) const
  833. {
  834. return ::vkCmdSetEvent( commandBuffer, event, stageMask );
  835. }
  836. void vkCmdSetExclusiveScissorNV( VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors ) const
  837. {
  838. return ::vkCmdSetExclusiveScissorNV( commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors );
  839. }
  840. void vkCmdSetLineWidth( VkCommandBuffer commandBuffer, float lineWidth ) const
  841. {
  842. return ::vkCmdSetLineWidth( commandBuffer, lineWidth );
  843. }
  844. VkResult vkCmdSetPerformanceMarkerINTEL( VkCommandBuffer commandBuffer, const VkPerformanceMarkerInfoINTEL* pMarkerInfo ) const
  845. {
  846. return ::vkCmdSetPerformanceMarkerINTEL( commandBuffer, pMarkerInfo );
  847. }
  848. VkResult vkCmdSetPerformanceOverrideINTEL( VkCommandBuffer commandBuffer, const VkPerformanceOverrideInfoINTEL* pOverrideInfo ) const
  849. {
  850. return ::vkCmdSetPerformanceOverrideINTEL( commandBuffer, pOverrideInfo );
  851. }
  852. VkResult vkCmdSetPerformanceStreamMarkerINTEL( VkCommandBuffer commandBuffer, const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo ) const
  853. {
  854. return ::vkCmdSetPerformanceStreamMarkerINTEL( commandBuffer, pMarkerInfo );
  855. }
  856. void vkCmdSetSampleLocationsEXT( VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo ) const
  857. {
  858. return ::vkCmdSetSampleLocationsEXT( commandBuffer, pSampleLocationsInfo );
  859. }
  860. void vkCmdSetScissor( VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors ) const
  861. {
  862. return ::vkCmdSetScissor( commandBuffer, firstScissor, scissorCount, pScissors );
  863. }
  864. void vkCmdSetStencilCompareMask( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask ) const
  865. {
  866. return ::vkCmdSetStencilCompareMask( commandBuffer, faceMask, compareMask );
  867. }
  868. void vkCmdSetStencilReference( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference ) const
  869. {
  870. return ::vkCmdSetStencilReference( commandBuffer, faceMask, reference );
  871. }
  872. void vkCmdSetStencilWriteMask( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask ) const
  873. {
  874. return ::vkCmdSetStencilWriteMask( commandBuffer, faceMask, writeMask );
  875. }
  876. void vkCmdSetViewport( VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports ) const
  877. {
  878. return ::vkCmdSetViewport( commandBuffer, firstViewport, viewportCount, pViewports );
  879. }
  880. void vkCmdSetViewportShadingRatePaletteNV( VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes ) const
  881. {
  882. return ::vkCmdSetViewportShadingRatePaletteNV( commandBuffer, firstViewport, viewportCount, pShadingRatePalettes );
  883. }
  884. void vkCmdSetViewportWScalingNV( VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings ) const
  885. {
  886. return ::vkCmdSetViewportWScalingNV( commandBuffer, firstViewport, viewportCount, pViewportWScalings );
  887. }
  888. void vkCmdTraceRaysNV( VkCommandBuffer commandBuffer, VkBuffer raygenShaderBindingTableBuffer, VkDeviceSize raygenShaderBindingOffset, VkBuffer missShaderBindingTableBuffer, VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride, VkBuffer hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset, VkDeviceSize hitShaderBindingStride, VkBuffer callableShaderBindingTableBuffer, VkDeviceSize callableShaderBindingOffset, VkDeviceSize callableShaderBindingStride, uint32_t width, uint32_t height, uint32_t depth ) const
  889. {
  890. return ::vkCmdTraceRaysNV( commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth );
  891. }
  892. void vkCmdUpdateBuffer( VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData ) const
  893. {
  894. return ::vkCmdUpdateBuffer( commandBuffer, dstBuffer, dstOffset, dataSize, pData );
  895. }
  896. void vkCmdWaitEvents( VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers ) const
  897. {
  898. return ::vkCmdWaitEvents( commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers );
  899. }
  900. void vkCmdWriteAccelerationStructuresPropertiesNV( VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery ) const
  901. {
  902. return ::vkCmdWriteAccelerationStructuresPropertiesNV( commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery );
  903. }
  904. void vkCmdWriteBufferMarkerAMD( VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker ) const
  905. {
  906. return ::vkCmdWriteBufferMarkerAMD( commandBuffer, pipelineStage, dstBuffer, dstOffset, marker );
  907. }
  908. void vkCmdWriteTimestamp( VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query ) const
  909. {
  910. return ::vkCmdWriteTimestamp( commandBuffer, pipelineStage, queryPool, query );
  911. }
  912. VkResult vkEndCommandBuffer( VkCommandBuffer commandBuffer ) const
  913. {
  914. return ::vkEndCommandBuffer( commandBuffer );
  915. }
  916. VkResult vkResetCommandBuffer( VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags ) const
  917. {
  918. return ::vkResetCommandBuffer( commandBuffer, flags );
  919. }
  920. #ifdef VK_USE_PLATFORM_WIN32_KHR
  921. VkResult vkAcquireFullScreenExclusiveModeEXT( VkDevice device, VkSwapchainKHR swapchain ) const
  922. {
  923. return ::vkAcquireFullScreenExclusiveModeEXT( device, swapchain );
  924. }
  925. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  926. VkResult vkAcquireNextImage2KHR( VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex ) const
  927. {
  928. return ::vkAcquireNextImage2KHR( device, pAcquireInfo, pImageIndex );
  929. }
  930. VkResult vkAcquireNextImageKHR( VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex ) const
  931. {
  932. return ::vkAcquireNextImageKHR( device, swapchain, timeout, semaphore, fence, pImageIndex );
  933. }
  934. VkResult vkAcquirePerformanceConfigurationINTEL( VkDevice device, const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, VkPerformanceConfigurationINTEL* pConfiguration ) const
  935. {
  936. return ::vkAcquirePerformanceConfigurationINTEL( device, pAcquireInfo, pConfiguration );
  937. }
  938. VkResult vkAllocateCommandBuffers( VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers ) const
  939. {
  940. return ::vkAllocateCommandBuffers( device, pAllocateInfo, pCommandBuffers );
  941. }
  942. VkResult vkAllocateDescriptorSets( VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets ) const
  943. {
  944. return ::vkAllocateDescriptorSets( device, pAllocateInfo, pDescriptorSets );
  945. }
  946. VkResult vkAllocateMemory( VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory ) const
  947. {
  948. return ::vkAllocateMemory( device, pAllocateInfo, pAllocator, pMemory );
  949. }
  950. VkResult vkBindAccelerationStructureMemoryNV( VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos ) const
  951. {
  952. return ::vkBindAccelerationStructureMemoryNV( device, bindInfoCount, pBindInfos );
  953. }
  954. VkResult vkBindBufferMemory( VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset ) const
  955. {
  956. return ::vkBindBufferMemory( device, buffer, memory, memoryOffset );
  957. }
  958. VkResult vkBindBufferMemory2( VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos ) const
  959. {
  960. return ::vkBindBufferMemory2( device, bindInfoCount, pBindInfos );
  961. }
  962. VkResult vkBindBufferMemory2KHR( VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos ) const
  963. {
  964. return ::vkBindBufferMemory2KHR( device, bindInfoCount, pBindInfos );
  965. }
  966. VkResult vkBindImageMemory( VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset ) const
  967. {
  968. return ::vkBindImageMemory( device, image, memory, memoryOffset );
  969. }
  970. VkResult vkBindImageMemory2( VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos ) const
  971. {
  972. return ::vkBindImageMemory2( device, bindInfoCount, pBindInfos );
  973. }
  974. VkResult vkBindImageMemory2KHR( VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos ) const
  975. {
  976. return ::vkBindImageMemory2KHR( device, bindInfoCount, pBindInfos );
  977. }
  978. VkResult vkCompileDeferredNV( VkDevice device, VkPipeline pipeline, uint32_t shader ) const
  979. {
  980. return ::vkCompileDeferredNV( device, pipeline, shader );
  981. }
  982. VkResult vkCreateAccelerationStructureNV( VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure ) const
  983. {
  984. return ::vkCreateAccelerationStructureNV( device, pCreateInfo, pAllocator, pAccelerationStructure );
  985. }
  986. VkResult vkCreateBuffer( VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer ) const
  987. {
  988. return ::vkCreateBuffer( device, pCreateInfo, pAllocator, pBuffer );
  989. }
  990. VkResult vkCreateBufferView( VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView ) const
  991. {
  992. return ::vkCreateBufferView( device, pCreateInfo, pAllocator, pView );
  993. }
  994. VkResult vkCreateCommandPool( VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool ) const
  995. {
  996. return ::vkCreateCommandPool( device, pCreateInfo, pAllocator, pCommandPool );
  997. }
  998. VkResult vkCreateComputePipelines( VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines ) const
  999. {
  1000. return ::vkCreateComputePipelines( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines );
  1001. }
  1002. VkResult vkCreateDescriptorPool( VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool ) const
  1003. {
  1004. return ::vkCreateDescriptorPool( device, pCreateInfo, pAllocator, pDescriptorPool );
  1005. }
  1006. VkResult vkCreateDescriptorSetLayout( VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout ) const
  1007. {
  1008. return ::vkCreateDescriptorSetLayout( device, pCreateInfo, pAllocator, pSetLayout );
  1009. }
  1010. VkResult vkCreateDescriptorUpdateTemplate( VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate ) const
  1011. {
  1012. return ::vkCreateDescriptorUpdateTemplate( device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate );
  1013. }
  1014. VkResult vkCreateDescriptorUpdateTemplateKHR( VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate ) const
  1015. {
  1016. return ::vkCreateDescriptorUpdateTemplateKHR( device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate );
  1017. }
  1018. VkResult vkCreateEvent( VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent ) const
  1019. {
  1020. return ::vkCreateEvent( device, pCreateInfo, pAllocator, pEvent );
  1021. }
  1022. VkResult vkCreateFence( VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence ) const
  1023. {
  1024. return ::vkCreateFence( device, pCreateInfo, pAllocator, pFence );
  1025. }
  1026. VkResult vkCreateFramebuffer( VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer ) const
  1027. {
  1028. return ::vkCreateFramebuffer( device, pCreateInfo, pAllocator, pFramebuffer );
  1029. }
  1030. VkResult vkCreateGraphicsPipelines( VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines ) const
  1031. {
  1032. return ::vkCreateGraphicsPipelines( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines );
  1033. }
  1034. VkResult vkCreateImage( VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage ) const
  1035. {
  1036. return ::vkCreateImage( device, pCreateInfo, pAllocator, pImage );
  1037. }
  1038. VkResult vkCreateImageView( VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView ) const
  1039. {
  1040. return ::vkCreateImageView( device, pCreateInfo, pAllocator, pView );
  1041. }
  1042. VkResult vkCreateIndirectCommandsLayoutNVX( VkDevice device, const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout ) const
  1043. {
  1044. return ::vkCreateIndirectCommandsLayoutNVX( device, pCreateInfo, pAllocator, pIndirectCommandsLayout );
  1045. }
  1046. VkResult vkCreateObjectTableNVX( VkDevice device, const VkObjectTableCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkObjectTableNVX* pObjectTable ) const
  1047. {
  1048. return ::vkCreateObjectTableNVX( device, pCreateInfo, pAllocator, pObjectTable );
  1049. }
  1050. VkResult vkCreatePipelineCache( VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache ) const
  1051. {
  1052. return ::vkCreatePipelineCache( device, pCreateInfo, pAllocator, pPipelineCache );
  1053. }
  1054. VkResult vkCreatePipelineLayout( VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout ) const
  1055. {
  1056. return ::vkCreatePipelineLayout( device, pCreateInfo, pAllocator, pPipelineLayout );
  1057. }
  1058. VkResult vkCreateQueryPool( VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool ) const
  1059. {
  1060. return ::vkCreateQueryPool( device, pCreateInfo, pAllocator, pQueryPool );
  1061. }
  1062. VkResult vkCreateRayTracingPipelinesNV( VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines ) const
  1063. {
  1064. return ::vkCreateRayTracingPipelinesNV( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines );
  1065. }
  1066. VkResult vkCreateRenderPass( VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass ) const
  1067. {
  1068. return ::vkCreateRenderPass( device, pCreateInfo, pAllocator, pRenderPass );
  1069. }
  1070. VkResult vkCreateRenderPass2KHR( VkDevice device, const VkRenderPassCreateInfo2KHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass ) const
  1071. {
  1072. return ::vkCreateRenderPass2KHR( device, pCreateInfo, pAllocator, pRenderPass );
  1073. }
  1074. VkResult vkCreateSampler( VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler ) const
  1075. {
  1076. return ::vkCreateSampler( device, pCreateInfo, pAllocator, pSampler );
  1077. }
  1078. VkResult vkCreateSamplerYcbcrConversion( VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion ) const
  1079. {
  1080. return ::vkCreateSamplerYcbcrConversion( device, pCreateInfo, pAllocator, pYcbcrConversion );
  1081. }
  1082. VkResult vkCreateSamplerYcbcrConversionKHR( VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion ) const
  1083. {
  1084. return ::vkCreateSamplerYcbcrConversionKHR( device, pCreateInfo, pAllocator, pYcbcrConversion );
  1085. }
  1086. VkResult vkCreateSemaphore( VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore ) const
  1087. {
  1088. return ::vkCreateSemaphore( device, pCreateInfo, pAllocator, pSemaphore );
  1089. }
  1090. VkResult vkCreateShaderModule( VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule ) const
  1091. {
  1092. return ::vkCreateShaderModule( device, pCreateInfo, pAllocator, pShaderModule );
  1093. }
  1094. VkResult vkCreateSharedSwapchainsKHR( VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains ) const
  1095. {
  1096. return ::vkCreateSharedSwapchainsKHR( device, swapchainCount, pCreateInfos, pAllocator, pSwapchains );
  1097. }
  1098. VkResult vkCreateSwapchainKHR( VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain ) const
  1099. {
  1100. return ::vkCreateSwapchainKHR( device, pCreateInfo, pAllocator, pSwapchain );
  1101. }
  1102. VkResult vkCreateValidationCacheEXT( VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache ) const
  1103. {
  1104. return ::vkCreateValidationCacheEXT( device, pCreateInfo, pAllocator, pValidationCache );
  1105. }
  1106. VkResult vkDebugMarkerSetObjectNameEXT( VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo ) const
  1107. {
  1108. return ::vkDebugMarkerSetObjectNameEXT( device, pNameInfo );
  1109. }
  1110. VkResult vkDebugMarkerSetObjectTagEXT( VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo ) const
  1111. {
  1112. return ::vkDebugMarkerSetObjectTagEXT( device, pTagInfo );
  1113. }
  1114. void vkDestroyAccelerationStructureNV( VkDevice device, VkAccelerationStructureNV accelerationStructure, const VkAllocationCallbacks* pAllocator ) const
  1115. {
  1116. return ::vkDestroyAccelerationStructureNV( device, accelerationStructure, pAllocator );
  1117. }
  1118. void vkDestroyBuffer( VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator ) const
  1119. {
  1120. return ::vkDestroyBuffer( device, buffer, pAllocator );
  1121. }
  1122. void vkDestroyBufferView( VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator ) const
  1123. {
  1124. return ::vkDestroyBufferView( device, bufferView, pAllocator );
  1125. }
  1126. void vkDestroyCommandPool( VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator ) const
  1127. {
  1128. return ::vkDestroyCommandPool( device, commandPool, pAllocator );
  1129. }
  1130. void vkDestroyDescriptorPool( VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator ) const
  1131. {
  1132. return ::vkDestroyDescriptorPool( device, descriptorPool, pAllocator );
  1133. }
  1134. void vkDestroyDescriptorSetLayout( VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator ) const
  1135. {
  1136. return ::vkDestroyDescriptorSetLayout( device, descriptorSetLayout, pAllocator );
  1137. }
  1138. void vkDestroyDescriptorUpdateTemplate( VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator ) const
  1139. {
  1140. return ::vkDestroyDescriptorUpdateTemplate( device, descriptorUpdateTemplate, pAllocator );
  1141. }
  1142. void vkDestroyDescriptorUpdateTemplateKHR( VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator ) const
  1143. {
  1144. return ::vkDestroyDescriptorUpdateTemplateKHR( device, descriptorUpdateTemplate, pAllocator );
  1145. }
  1146. void vkDestroyDevice( VkDevice device, const VkAllocationCallbacks* pAllocator ) const
  1147. {
  1148. return ::vkDestroyDevice( device, pAllocator );
  1149. }
  1150. void vkDestroyEvent( VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator ) const
  1151. {
  1152. return ::vkDestroyEvent( device, event, pAllocator );
  1153. }
  1154. void vkDestroyFence( VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator ) const
  1155. {
  1156. return ::vkDestroyFence( device, fence, pAllocator );
  1157. }
  1158. void vkDestroyFramebuffer( VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator ) const
  1159. {
  1160. return ::vkDestroyFramebuffer( device, framebuffer, pAllocator );
  1161. }
  1162. void vkDestroyImage( VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator ) const
  1163. {
  1164. return ::vkDestroyImage( device, image, pAllocator );
  1165. }
  1166. void vkDestroyImageView( VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator ) const
  1167. {
  1168. return ::vkDestroyImageView( device, imageView, pAllocator );
  1169. }
  1170. void vkDestroyIndirectCommandsLayoutNVX( VkDevice device, VkIndirectCommandsLayoutNVX indirectCommandsLayout, const VkAllocationCallbacks* pAllocator ) const
  1171. {
  1172. return ::vkDestroyIndirectCommandsLayoutNVX( device, indirectCommandsLayout, pAllocator );
  1173. }
  1174. void vkDestroyObjectTableNVX( VkDevice device, VkObjectTableNVX objectTable, const VkAllocationCallbacks* pAllocator ) const
  1175. {
  1176. return ::vkDestroyObjectTableNVX( device, objectTable, pAllocator );
  1177. }
  1178. void vkDestroyPipeline( VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator ) const
  1179. {
  1180. return ::vkDestroyPipeline( device, pipeline, pAllocator );
  1181. }
  1182. void vkDestroyPipelineCache( VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator ) const
  1183. {
  1184. return ::vkDestroyPipelineCache( device, pipelineCache, pAllocator );
  1185. }
  1186. void vkDestroyPipelineLayout( VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator ) const
  1187. {
  1188. return ::vkDestroyPipelineLayout( device, pipelineLayout, pAllocator );
  1189. }
  1190. void vkDestroyQueryPool( VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator ) const
  1191. {
  1192. return ::vkDestroyQueryPool( device, queryPool, pAllocator );
  1193. }
  1194. void vkDestroyRenderPass( VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator ) const
  1195. {
  1196. return ::vkDestroyRenderPass( device, renderPass, pAllocator );
  1197. }
  1198. void vkDestroySampler( VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator ) const
  1199. {
  1200. return ::vkDestroySampler( device, sampler, pAllocator );
  1201. }
  1202. void vkDestroySamplerYcbcrConversion( VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator ) const
  1203. {
  1204. return ::vkDestroySamplerYcbcrConversion( device, ycbcrConversion, pAllocator );
  1205. }
  1206. void vkDestroySamplerYcbcrConversionKHR( VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator ) const
  1207. {
  1208. return ::vkDestroySamplerYcbcrConversionKHR( device, ycbcrConversion, pAllocator );
  1209. }
  1210. void vkDestroySemaphore( VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator ) const
  1211. {
  1212. return ::vkDestroySemaphore( device, semaphore, pAllocator );
  1213. }
  1214. void vkDestroyShaderModule( VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator ) const
  1215. {
  1216. return ::vkDestroyShaderModule( device, shaderModule, pAllocator );
  1217. }
  1218. void vkDestroySwapchainKHR( VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator ) const
  1219. {
  1220. return ::vkDestroySwapchainKHR( device, swapchain, pAllocator );
  1221. }
  1222. void vkDestroyValidationCacheEXT( VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator ) const
  1223. {
  1224. return ::vkDestroyValidationCacheEXT( device, validationCache, pAllocator );
  1225. }
  1226. VkResult vkDeviceWaitIdle( VkDevice device ) const
  1227. {
  1228. return ::vkDeviceWaitIdle( device );
  1229. }
  1230. VkResult vkDisplayPowerControlEXT( VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo ) const
  1231. {
  1232. return ::vkDisplayPowerControlEXT( device, display, pDisplayPowerInfo );
  1233. }
  1234. VkResult vkFlushMappedMemoryRanges( VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges ) const
  1235. {
  1236. return ::vkFlushMappedMemoryRanges( device, memoryRangeCount, pMemoryRanges );
  1237. }
  1238. void vkFreeCommandBuffers( VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers ) const
  1239. {
  1240. return ::vkFreeCommandBuffers( device, commandPool, commandBufferCount, pCommandBuffers );
  1241. }
  1242. VkResult vkFreeDescriptorSets( VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets ) const
  1243. {
  1244. return ::vkFreeDescriptorSets( device, descriptorPool, descriptorSetCount, pDescriptorSets );
  1245. }
  1246. void vkFreeMemory( VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator ) const
  1247. {
  1248. return ::vkFreeMemory( device, memory, pAllocator );
  1249. }
  1250. VkResult vkGetAccelerationStructureHandleNV( VkDevice device, VkAccelerationStructureNV accelerationStructure, size_t dataSize, void* pData ) const
  1251. {
  1252. return ::vkGetAccelerationStructureHandleNV( device, accelerationStructure, dataSize, pData );
  1253. }
  1254. void vkGetAccelerationStructureMemoryRequirementsNV( VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements ) const
  1255. {
  1256. return ::vkGetAccelerationStructureMemoryRequirementsNV( device, pInfo, pMemoryRequirements );
  1257. }
  1258. #ifdef VK_USE_PLATFORM_ANDROID_KHR
  1259. VkResult vkGetAndroidHardwareBufferPropertiesANDROID( VkDevice device, const struct AHardwareBuffer* buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties ) const
  1260. {
  1261. return ::vkGetAndroidHardwareBufferPropertiesANDROID( device, buffer, pProperties );
  1262. }
  1263. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  1264. VkDeviceAddress vkGetBufferDeviceAddressEXT( VkDevice device, const VkBufferDeviceAddressInfoEXT* pInfo ) const
  1265. {
  1266. return ::vkGetBufferDeviceAddressEXT( device, pInfo );
  1267. }
  1268. void vkGetBufferMemoryRequirements( VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements ) const
  1269. {
  1270. return ::vkGetBufferMemoryRequirements( device, buffer, pMemoryRequirements );
  1271. }
  1272. void vkGetBufferMemoryRequirements2( VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const
  1273. {
  1274. return ::vkGetBufferMemoryRequirements2( device, pInfo, pMemoryRequirements );
  1275. }
  1276. void vkGetBufferMemoryRequirements2KHR( VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const
  1277. {
  1278. return ::vkGetBufferMemoryRequirements2KHR( device, pInfo, pMemoryRequirements );
  1279. }
  1280. VkResult vkGetCalibratedTimestampsEXT( VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation ) const
  1281. {
  1282. return ::vkGetCalibratedTimestampsEXT( device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation );
  1283. }
  1284. void vkGetDescriptorSetLayoutSupport( VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport ) const
  1285. {
  1286. return ::vkGetDescriptorSetLayoutSupport( device, pCreateInfo, pSupport );
  1287. }
  1288. void vkGetDescriptorSetLayoutSupportKHR( VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport ) const
  1289. {
  1290. return ::vkGetDescriptorSetLayoutSupportKHR( device, pCreateInfo, pSupport );
  1291. }
  1292. void vkGetDeviceGroupPeerMemoryFeatures( VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures ) const
  1293. {
  1294. return ::vkGetDeviceGroupPeerMemoryFeatures( device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures );
  1295. }
  1296. void vkGetDeviceGroupPeerMemoryFeaturesKHR( VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures ) const
  1297. {
  1298. return ::vkGetDeviceGroupPeerMemoryFeaturesKHR( device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures );
  1299. }
  1300. VkResult vkGetDeviceGroupPresentCapabilitiesKHR( VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities ) const
  1301. {
  1302. return ::vkGetDeviceGroupPresentCapabilitiesKHR( device, pDeviceGroupPresentCapabilities );
  1303. }
  1304. #ifdef VK_USE_PLATFORM_WIN32_KHR
  1305. VkResult vkGetDeviceGroupSurfacePresentModes2EXT( VkDevice device, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkDeviceGroupPresentModeFlagsKHR* pModes ) const
  1306. {
  1307. return ::vkGetDeviceGroupSurfacePresentModes2EXT( device, pSurfaceInfo, pModes );
  1308. }
  1309. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  1310. VkResult vkGetDeviceGroupSurfacePresentModesKHR( VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes ) const
  1311. {
  1312. return ::vkGetDeviceGroupSurfacePresentModesKHR( device, surface, pModes );
  1313. }
  1314. void vkGetDeviceMemoryCommitment( VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes ) const
  1315. {
  1316. return ::vkGetDeviceMemoryCommitment( device, memory, pCommittedMemoryInBytes );
  1317. }
  1318. PFN_vkVoidFunction vkGetDeviceProcAddr( VkDevice device, const char* pName ) const
  1319. {
  1320. return ::vkGetDeviceProcAddr( device, pName );
  1321. }
  1322. void vkGetDeviceQueue( VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue ) const
  1323. {
  1324. return ::vkGetDeviceQueue( device, queueFamilyIndex, queueIndex, pQueue );
  1325. }
  1326. void vkGetDeviceQueue2( VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue ) const
  1327. {
  1328. return ::vkGetDeviceQueue2( device, pQueueInfo, pQueue );
  1329. }
  1330. VkResult vkGetEventStatus( VkDevice device, VkEvent event ) const
  1331. {
  1332. return ::vkGetEventStatus( device, event );
  1333. }
  1334. VkResult vkGetFenceFdKHR( VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd ) const
  1335. {
  1336. return ::vkGetFenceFdKHR( device, pGetFdInfo, pFd );
  1337. }
  1338. VkResult vkGetFenceStatus( VkDevice device, VkFence fence ) const
  1339. {
  1340. return ::vkGetFenceStatus( device, fence );
  1341. }
  1342. #ifdef VK_USE_PLATFORM_WIN32_KHR
  1343. VkResult vkGetFenceWin32HandleKHR( VkDevice device, const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle ) const
  1344. {
  1345. return ::vkGetFenceWin32HandleKHR( device, pGetWin32HandleInfo, pHandle );
  1346. }
  1347. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  1348. VkResult vkGetImageDrmFormatModifierPropertiesEXT( VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties ) const
  1349. {
  1350. return ::vkGetImageDrmFormatModifierPropertiesEXT( device, image, pProperties );
  1351. }
  1352. void vkGetImageMemoryRequirements( VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements ) const
  1353. {
  1354. return ::vkGetImageMemoryRequirements( device, image, pMemoryRequirements );
  1355. }
  1356. void vkGetImageMemoryRequirements2( VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const
  1357. {
  1358. return ::vkGetImageMemoryRequirements2( device, pInfo, pMemoryRequirements );
  1359. }
  1360. void vkGetImageMemoryRequirements2KHR( VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const
  1361. {
  1362. return ::vkGetImageMemoryRequirements2KHR( device, pInfo, pMemoryRequirements );
  1363. }
  1364. void vkGetImageSparseMemoryRequirements( VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements ) const
  1365. {
  1366. return ::vkGetImageSparseMemoryRequirements( device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements );
  1367. }
  1368. void vkGetImageSparseMemoryRequirements2( VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements ) const
  1369. {
  1370. return ::vkGetImageSparseMemoryRequirements2( device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements );
  1371. }
  1372. void vkGetImageSparseMemoryRequirements2KHR( VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements ) const
  1373. {
  1374. return ::vkGetImageSparseMemoryRequirements2KHR( device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements );
  1375. }
  1376. void vkGetImageSubresourceLayout( VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout ) const
  1377. {
  1378. return ::vkGetImageSubresourceLayout( device, image, pSubresource, pLayout );
  1379. }
  1380. uint32_t vkGetImageViewHandleNVX( VkDevice device, const VkImageViewHandleInfoNVX* pInfo ) const
  1381. {
  1382. return ::vkGetImageViewHandleNVX( device, pInfo );
  1383. }
  1384. #ifdef VK_USE_PLATFORM_ANDROID_KHR
  1385. VkResult vkGetMemoryAndroidHardwareBufferANDROID( VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct AHardwareBuffer** pBuffer ) const
  1386. {
  1387. return ::vkGetMemoryAndroidHardwareBufferANDROID( device, pInfo, pBuffer );
  1388. }
  1389. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  1390. VkResult vkGetMemoryFdKHR( VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd ) const
  1391. {
  1392. return ::vkGetMemoryFdKHR( device, pGetFdInfo, pFd );
  1393. }
  1394. VkResult vkGetMemoryFdPropertiesKHR( VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties ) const
  1395. {
  1396. return ::vkGetMemoryFdPropertiesKHR( device, handleType, fd, pMemoryFdProperties );
  1397. }
  1398. VkResult vkGetMemoryHostPointerPropertiesEXT( VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties ) const
  1399. {
  1400. return ::vkGetMemoryHostPointerPropertiesEXT( device, handleType, pHostPointer, pMemoryHostPointerProperties );
  1401. }
  1402. #ifdef VK_USE_PLATFORM_WIN32_KHR
  1403. VkResult vkGetMemoryWin32HandleKHR( VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle ) const
  1404. {
  1405. return ::vkGetMemoryWin32HandleKHR( device, pGetWin32HandleInfo, pHandle );
  1406. }
  1407. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  1408. #ifdef VK_USE_PLATFORM_WIN32_KHR
  1409. VkResult vkGetMemoryWin32HandleNV( VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle ) const
  1410. {
  1411. return ::vkGetMemoryWin32HandleNV( device, memory, handleType, pHandle );
  1412. }
  1413. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  1414. #ifdef VK_USE_PLATFORM_WIN32_KHR
  1415. VkResult vkGetMemoryWin32HandlePropertiesKHR( VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties ) const
  1416. {
  1417. return ::vkGetMemoryWin32HandlePropertiesKHR( device, handleType, handle, pMemoryWin32HandleProperties );
  1418. }
  1419. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  1420. VkResult vkGetPastPresentationTimingGOOGLE( VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings ) const
  1421. {
  1422. return ::vkGetPastPresentationTimingGOOGLE( device, swapchain, pPresentationTimingCount, pPresentationTimings );
  1423. }
  1424. VkResult vkGetPerformanceParameterINTEL( VkDevice device, VkPerformanceParameterTypeINTEL parameter, VkPerformanceValueINTEL* pValue ) const
  1425. {
  1426. return ::vkGetPerformanceParameterINTEL( device, parameter, pValue );
  1427. }
  1428. VkResult vkGetPipelineCacheData( VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData ) const
  1429. {
  1430. return ::vkGetPipelineCacheData( device, pipelineCache, pDataSize, pData );
  1431. }
  1432. VkResult vkGetQueryPoolResults( VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags ) const
  1433. {
  1434. return ::vkGetQueryPoolResults( device, queryPool, firstQuery, queryCount, dataSize, pData, stride, flags );
  1435. }
  1436. VkResult vkGetRayTracingShaderGroupHandlesNV( VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData ) const
  1437. {
  1438. return ::vkGetRayTracingShaderGroupHandlesNV( device, pipeline, firstGroup, groupCount, dataSize, pData );
  1439. }
  1440. VkResult vkGetRefreshCycleDurationGOOGLE( VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties ) const
  1441. {
  1442. return ::vkGetRefreshCycleDurationGOOGLE( device, swapchain, pDisplayTimingProperties );
  1443. }
  1444. void vkGetRenderAreaGranularity( VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity ) const
  1445. {
  1446. return ::vkGetRenderAreaGranularity( device, renderPass, pGranularity );
  1447. }
  1448. VkResult vkGetSemaphoreFdKHR( VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd ) const
  1449. {
  1450. return ::vkGetSemaphoreFdKHR( device, pGetFdInfo, pFd );
  1451. }
  1452. #ifdef VK_USE_PLATFORM_WIN32_KHR
  1453. VkResult vkGetSemaphoreWin32HandleKHR( VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle ) const
  1454. {
  1455. return ::vkGetSemaphoreWin32HandleKHR( device, pGetWin32HandleInfo, pHandle );
  1456. }
  1457. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  1458. VkResult vkGetShaderInfoAMD( VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo ) const
  1459. {
  1460. return ::vkGetShaderInfoAMD( device, pipeline, shaderStage, infoType, pInfoSize, pInfo );
  1461. }
  1462. VkResult vkGetSwapchainCounterEXT( VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue ) const
  1463. {
  1464. return ::vkGetSwapchainCounterEXT( device, swapchain, counter, pCounterValue );
  1465. }
  1466. VkResult vkGetSwapchainImagesKHR( VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages ) const
  1467. {
  1468. return ::vkGetSwapchainImagesKHR( device, swapchain, pSwapchainImageCount, pSwapchainImages );
  1469. }
  1470. VkResult vkGetSwapchainStatusKHR( VkDevice device, VkSwapchainKHR swapchain ) const
  1471. {
  1472. return ::vkGetSwapchainStatusKHR( device, swapchain );
  1473. }
  1474. VkResult vkGetValidationCacheDataEXT( VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData ) const
  1475. {
  1476. return ::vkGetValidationCacheDataEXT( device, validationCache, pDataSize, pData );
  1477. }
  1478. VkResult vkImportFenceFdKHR( VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo ) const
  1479. {
  1480. return ::vkImportFenceFdKHR( device, pImportFenceFdInfo );
  1481. }
  1482. #ifdef VK_USE_PLATFORM_WIN32_KHR
  1483. VkResult vkImportFenceWin32HandleKHR( VkDevice device, const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo ) const
  1484. {
  1485. return ::vkImportFenceWin32HandleKHR( device, pImportFenceWin32HandleInfo );
  1486. }
  1487. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  1488. VkResult vkImportSemaphoreFdKHR( VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo ) const
  1489. {
  1490. return ::vkImportSemaphoreFdKHR( device, pImportSemaphoreFdInfo );
  1491. }
  1492. #ifdef VK_USE_PLATFORM_WIN32_KHR
  1493. VkResult vkImportSemaphoreWin32HandleKHR( VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo ) const
  1494. {
  1495. return ::vkImportSemaphoreWin32HandleKHR( device, pImportSemaphoreWin32HandleInfo );
  1496. }
  1497. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  1498. VkResult vkInitializePerformanceApiINTEL( VkDevice device, const VkInitializePerformanceApiInfoINTEL* pInitializeInfo ) const
  1499. {
  1500. return ::vkInitializePerformanceApiINTEL( device, pInitializeInfo );
  1501. }
  1502. VkResult vkInvalidateMappedMemoryRanges( VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges ) const
  1503. {
  1504. return ::vkInvalidateMappedMemoryRanges( device, memoryRangeCount, pMemoryRanges );
  1505. }
  1506. VkResult vkMapMemory( VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData ) const
  1507. {
  1508. return ::vkMapMemory( device, memory, offset, size, flags, ppData );
  1509. }
  1510. VkResult vkMergePipelineCaches( VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches ) const
  1511. {
  1512. return ::vkMergePipelineCaches( device, dstCache, srcCacheCount, pSrcCaches );
  1513. }
  1514. VkResult vkMergeValidationCachesEXT( VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches ) const
  1515. {
  1516. return ::vkMergeValidationCachesEXT( device, dstCache, srcCacheCount, pSrcCaches );
  1517. }
  1518. VkResult vkRegisterDeviceEventEXT( VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence ) const
  1519. {
  1520. return ::vkRegisterDeviceEventEXT( device, pDeviceEventInfo, pAllocator, pFence );
  1521. }
  1522. VkResult vkRegisterDisplayEventEXT( VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence ) const
  1523. {
  1524. return ::vkRegisterDisplayEventEXT( device, display, pDisplayEventInfo, pAllocator, pFence );
  1525. }
  1526. VkResult vkRegisterObjectsNVX( VkDevice device, VkObjectTableNVX objectTable, uint32_t objectCount, const VkObjectTableEntryNVX* const* ppObjectTableEntries, const uint32_t* pObjectIndices ) const
  1527. {
  1528. return ::vkRegisterObjectsNVX( device, objectTable, objectCount, ppObjectTableEntries, pObjectIndices );
  1529. }
  1530. #ifdef VK_USE_PLATFORM_WIN32_KHR
  1531. VkResult vkReleaseFullScreenExclusiveModeEXT( VkDevice device, VkSwapchainKHR swapchain ) const
  1532. {
  1533. return ::vkReleaseFullScreenExclusiveModeEXT( device, swapchain );
  1534. }
  1535. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  1536. VkResult vkReleasePerformanceConfigurationINTEL( VkDevice device, VkPerformanceConfigurationINTEL configuration ) const
  1537. {
  1538. return ::vkReleasePerformanceConfigurationINTEL( device, configuration );
  1539. }
  1540. VkResult vkResetCommandPool( VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags ) const
  1541. {
  1542. return ::vkResetCommandPool( device, commandPool, flags );
  1543. }
  1544. VkResult vkResetDescriptorPool( VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags ) const
  1545. {
  1546. return ::vkResetDescriptorPool( device, descriptorPool, flags );
  1547. }
  1548. VkResult vkResetEvent( VkDevice device, VkEvent event ) const
  1549. {
  1550. return ::vkResetEvent( device, event );
  1551. }
  1552. VkResult vkResetFences( VkDevice device, uint32_t fenceCount, const VkFence* pFences ) const
  1553. {
  1554. return ::vkResetFences( device, fenceCount, pFences );
  1555. }
  1556. void vkResetQueryPoolEXT( VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount ) const
  1557. {
  1558. return ::vkResetQueryPoolEXT( device, queryPool, firstQuery, queryCount );
  1559. }
  1560. VkResult vkSetDebugUtilsObjectNameEXT( VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo ) const
  1561. {
  1562. return ::vkSetDebugUtilsObjectNameEXT( device, pNameInfo );
  1563. }
  1564. VkResult vkSetDebugUtilsObjectTagEXT( VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo ) const
  1565. {
  1566. return ::vkSetDebugUtilsObjectTagEXT( device, pTagInfo );
  1567. }
  1568. VkResult vkSetEvent( VkDevice device, VkEvent event ) const
  1569. {
  1570. return ::vkSetEvent( device, event );
  1571. }
  1572. void vkSetHdrMetadataEXT( VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata ) const
  1573. {
  1574. return ::vkSetHdrMetadataEXT( device, swapchainCount, pSwapchains, pMetadata );
  1575. }
  1576. void vkSetLocalDimmingAMD( VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable ) const
  1577. {
  1578. return ::vkSetLocalDimmingAMD( device, swapChain, localDimmingEnable );
  1579. }
  1580. void vkTrimCommandPool( VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags ) const
  1581. {
  1582. return ::vkTrimCommandPool( device, commandPool, flags );
  1583. }
  1584. void vkTrimCommandPoolKHR( VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags ) const
  1585. {
  1586. return ::vkTrimCommandPoolKHR( device, commandPool, flags );
  1587. }
  1588. void vkUninitializePerformanceApiINTEL( VkDevice device ) const
  1589. {
  1590. return ::vkUninitializePerformanceApiINTEL( device );
  1591. }
  1592. void vkUnmapMemory( VkDevice device, VkDeviceMemory memory ) const
  1593. {
  1594. return ::vkUnmapMemory( device, memory );
  1595. }
  1596. VkResult vkUnregisterObjectsNVX( VkDevice device, VkObjectTableNVX objectTable, uint32_t objectCount, const VkObjectEntryTypeNVX* pObjectEntryTypes, const uint32_t* pObjectIndices ) const
  1597. {
  1598. return ::vkUnregisterObjectsNVX( device, objectTable, objectCount, pObjectEntryTypes, pObjectIndices );
  1599. }
  1600. void vkUpdateDescriptorSetWithTemplate( VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData ) const
  1601. {
  1602. return ::vkUpdateDescriptorSetWithTemplate( device, descriptorSet, descriptorUpdateTemplate, pData );
  1603. }
  1604. void vkUpdateDescriptorSetWithTemplateKHR( VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData ) const
  1605. {
  1606. return ::vkUpdateDescriptorSetWithTemplateKHR( device, descriptorSet, descriptorUpdateTemplate, pData );
  1607. }
  1608. void vkUpdateDescriptorSets( VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies ) const
  1609. {
  1610. return ::vkUpdateDescriptorSets( device, descriptorWriteCount, pDescriptorWrites, descriptorCopyCount, pDescriptorCopies );
  1611. }
  1612. VkResult vkWaitForFences( VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout ) const
  1613. {
  1614. return ::vkWaitForFences( device, fenceCount, pFences, waitAll, timeout );
  1615. }
  1616. #ifdef VK_USE_PLATFORM_ANDROID_KHR
  1617. VkResult vkCreateAndroidSurfaceKHR( VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const
  1618. {
  1619. return ::vkCreateAndroidSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
  1620. }
  1621. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  1622. VkResult vkCreateDebugReportCallbackEXT( VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback ) const
  1623. {
  1624. return ::vkCreateDebugReportCallbackEXT( instance, pCreateInfo, pAllocator, pCallback );
  1625. }
  1626. VkResult vkCreateDebugUtilsMessengerEXT( VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger ) const
  1627. {
  1628. return ::vkCreateDebugUtilsMessengerEXT( instance, pCreateInfo, pAllocator, pMessenger );
  1629. }
  1630. VkResult vkCreateDisplayPlaneSurfaceKHR( VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const
  1631. {
  1632. return ::vkCreateDisplayPlaneSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
  1633. }
  1634. VkResult vkCreateHeadlessSurfaceEXT( VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const
  1635. {
  1636. return ::vkCreateHeadlessSurfaceEXT( instance, pCreateInfo, pAllocator, pSurface );
  1637. }
  1638. #ifdef VK_USE_PLATFORM_IOS_MVK
  1639. VkResult vkCreateIOSSurfaceMVK( VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const
  1640. {
  1641. return ::vkCreateIOSSurfaceMVK( instance, pCreateInfo, pAllocator, pSurface );
  1642. }
  1643. #endif /*VK_USE_PLATFORM_IOS_MVK*/
  1644. #ifdef VK_USE_PLATFORM_FUCHSIA
  1645. VkResult vkCreateImagePipeSurfaceFUCHSIA( VkInstance instance, const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const
  1646. {
  1647. return ::vkCreateImagePipeSurfaceFUCHSIA( instance, pCreateInfo, pAllocator, pSurface );
  1648. }
  1649. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  1650. #ifdef VK_USE_PLATFORM_MACOS_MVK
  1651. VkResult vkCreateMacOSSurfaceMVK( VkInstance instance, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const
  1652. {
  1653. return ::vkCreateMacOSSurfaceMVK( instance, pCreateInfo, pAllocator, pSurface );
  1654. }
  1655. #endif /*VK_USE_PLATFORM_MACOS_MVK*/
  1656. #ifdef VK_USE_PLATFORM_METAL_EXT
  1657. VkResult vkCreateMetalSurfaceEXT( VkInstance instance, const VkMetalSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const
  1658. {
  1659. return ::vkCreateMetalSurfaceEXT( instance, pCreateInfo, pAllocator, pSurface );
  1660. }
  1661. #endif /*VK_USE_PLATFORM_METAL_EXT*/
  1662. #ifdef VK_USE_PLATFORM_GGP
  1663. VkResult vkCreateStreamDescriptorSurfaceGGP( VkInstance instance, const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const
  1664. {
  1665. return ::vkCreateStreamDescriptorSurfaceGGP( instance, pCreateInfo, pAllocator, pSurface );
  1666. }
  1667. #endif /*VK_USE_PLATFORM_GGP*/
  1668. #ifdef VK_USE_PLATFORM_VI_NN
  1669. VkResult vkCreateViSurfaceNN( VkInstance instance, const VkViSurfaceCreateInfoNN* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const
  1670. {
  1671. return ::vkCreateViSurfaceNN( instance, pCreateInfo, pAllocator, pSurface );
  1672. }
  1673. #endif /*VK_USE_PLATFORM_VI_NN*/
  1674. #ifdef VK_USE_PLATFORM_WAYLAND_KHR
  1675. VkResult vkCreateWaylandSurfaceKHR( VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const
  1676. {
  1677. return ::vkCreateWaylandSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
  1678. }
  1679. #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
  1680. #ifdef VK_USE_PLATFORM_WIN32_KHR
  1681. VkResult vkCreateWin32SurfaceKHR( VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const
  1682. {
  1683. return ::vkCreateWin32SurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
  1684. }
  1685. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  1686. #ifdef VK_USE_PLATFORM_XCB_KHR
  1687. VkResult vkCreateXcbSurfaceKHR( VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const
  1688. {
  1689. return ::vkCreateXcbSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
  1690. }
  1691. #endif /*VK_USE_PLATFORM_XCB_KHR*/
  1692. #ifdef VK_USE_PLATFORM_XLIB_KHR
  1693. VkResult vkCreateXlibSurfaceKHR( VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const
  1694. {
  1695. return ::vkCreateXlibSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
  1696. }
  1697. #endif /*VK_USE_PLATFORM_XLIB_KHR*/
  1698. void vkDebugReportMessageEXT( VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage ) const
  1699. {
  1700. return ::vkDebugReportMessageEXT( instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage );
  1701. }
  1702. void vkDestroyDebugReportCallbackEXT( VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator ) const
  1703. {
  1704. return ::vkDestroyDebugReportCallbackEXT( instance, callback, pAllocator );
  1705. }
  1706. void vkDestroyDebugUtilsMessengerEXT( VkInstance instance, VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks* pAllocator ) const
  1707. {
  1708. return ::vkDestroyDebugUtilsMessengerEXT( instance, messenger, pAllocator );
  1709. }
  1710. void vkDestroyInstance( VkInstance instance, const VkAllocationCallbacks* pAllocator ) const
  1711. {
  1712. return ::vkDestroyInstance( instance, pAllocator );
  1713. }
  1714. void vkDestroySurfaceKHR( VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator ) const
  1715. {
  1716. return ::vkDestroySurfaceKHR( instance, surface, pAllocator );
  1717. }
  1718. VkResult vkEnumeratePhysicalDeviceGroups( VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties ) const
  1719. {
  1720. return ::vkEnumeratePhysicalDeviceGroups( instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties );
  1721. }
  1722. VkResult vkEnumeratePhysicalDeviceGroupsKHR( VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties ) const
  1723. {
  1724. return ::vkEnumeratePhysicalDeviceGroupsKHR( instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties );
  1725. }
  1726. VkResult vkEnumeratePhysicalDevices( VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices ) const
  1727. {
  1728. return ::vkEnumeratePhysicalDevices( instance, pPhysicalDeviceCount, pPhysicalDevices );
  1729. }
  1730. PFN_vkVoidFunction vkGetInstanceProcAddr( VkInstance instance, const char* pName ) const
  1731. {
  1732. return ::vkGetInstanceProcAddr( instance, pName );
  1733. }
  1734. void vkSubmitDebugUtilsMessageEXT( VkInstance instance, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData ) const
  1735. {
  1736. return ::vkSubmitDebugUtilsMessageEXT( instance, messageSeverity, messageTypes, pCallbackData );
  1737. }
  1738. #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
  1739. VkResult vkAcquireXlibDisplayEXT( VkPhysicalDevice physicalDevice, Display* dpy, VkDisplayKHR display ) const
  1740. {
  1741. return ::vkAcquireXlibDisplayEXT( physicalDevice, dpy, display );
  1742. }
  1743. #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
  1744. VkResult vkCreateDevice( VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice ) const
  1745. {
  1746. return ::vkCreateDevice( physicalDevice, pCreateInfo, pAllocator, pDevice );
  1747. }
  1748. VkResult vkCreateDisplayModeKHR( VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode ) const
  1749. {
  1750. return ::vkCreateDisplayModeKHR( physicalDevice, display, pCreateInfo, pAllocator, pMode );
  1751. }
  1752. VkResult vkEnumerateDeviceExtensionProperties( VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties ) const
  1753. {
  1754. return ::vkEnumerateDeviceExtensionProperties( physicalDevice, pLayerName, pPropertyCount, pProperties );
  1755. }
  1756. VkResult vkEnumerateDeviceLayerProperties( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties ) const
  1757. {
  1758. return ::vkEnumerateDeviceLayerProperties( physicalDevice, pPropertyCount, pProperties );
  1759. }
  1760. VkResult vkGetDisplayModeProperties2KHR( VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties ) const
  1761. {
  1762. return ::vkGetDisplayModeProperties2KHR( physicalDevice, display, pPropertyCount, pProperties );
  1763. }
  1764. VkResult vkGetDisplayModePropertiesKHR( VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties ) const
  1765. {
  1766. return ::vkGetDisplayModePropertiesKHR( physicalDevice, display, pPropertyCount, pProperties );
  1767. }
  1768. VkResult vkGetDisplayPlaneCapabilities2KHR( VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities ) const
  1769. {
  1770. return ::vkGetDisplayPlaneCapabilities2KHR( physicalDevice, pDisplayPlaneInfo, pCapabilities );
  1771. }
  1772. VkResult vkGetDisplayPlaneCapabilitiesKHR( VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities ) const
  1773. {
  1774. return ::vkGetDisplayPlaneCapabilitiesKHR( physicalDevice, mode, planeIndex, pCapabilities );
  1775. }
  1776. VkResult vkGetDisplayPlaneSupportedDisplaysKHR( VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays ) const
  1777. {
  1778. return ::vkGetDisplayPlaneSupportedDisplaysKHR( physicalDevice, planeIndex, pDisplayCount, pDisplays );
  1779. }
  1780. VkResult vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains ) const
  1781. {
  1782. return ::vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( physicalDevice, pTimeDomainCount, pTimeDomains );
  1783. }
  1784. VkResult vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties ) const
  1785. {
  1786. return ::vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( physicalDevice, pPropertyCount, pProperties );
  1787. }
  1788. VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties ) const
  1789. {
  1790. return ::vkGetPhysicalDeviceDisplayPlaneProperties2KHR( physicalDevice, pPropertyCount, pProperties );
  1791. }
  1792. VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties ) const
  1793. {
  1794. return ::vkGetPhysicalDeviceDisplayPlanePropertiesKHR( physicalDevice, pPropertyCount, pProperties );
  1795. }
  1796. VkResult vkGetPhysicalDeviceDisplayProperties2KHR( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties ) const
  1797. {
  1798. return ::vkGetPhysicalDeviceDisplayProperties2KHR( physicalDevice, pPropertyCount, pProperties );
  1799. }
  1800. VkResult vkGetPhysicalDeviceDisplayPropertiesKHR( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties ) const
  1801. {
  1802. return ::vkGetPhysicalDeviceDisplayPropertiesKHR( physicalDevice, pPropertyCount, pProperties );
  1803. }
  1804. void vkGetPhysicalDeviceExternalBufferProperties( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties ) const
  1805. {
  1806. return ::vkGetPhysicalDeviceExternalBufferProperties( physicalDevice, pExternalBufferInfo, pExternalBufferProperties );
  1807. }
  1808. void vkGetPhysicalDeviceExternalBufferPropertiesKHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties ) const
  1809. {
  1810. return ::vkGetPhysicalDeviceExternalBufferPropertiesKHR( physicalDevice, pExternalBufferInfo, pExternalBufferProperties );
  1811. }
  1812. void vkGetPhysicalDeviceExternalFenceProperties( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties ) const
  1813. {
  1814. return ::vkGetPhysicalDeviceExternalFenceProperties( physicalDevice, pExternalFenceInfo, pExternalFenceProperties );
  1815. }
  1816. void vkGetPhysicalDeviceExternalFencePropertiesKHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties ) const
  1817. {
  1818. return ::vkGetPhysicalDeviceExternalFencePropertiesKHR( physicalDevice, pExternalFenceInfo, pExternalFenceProperties );
  1819. }
  1820. VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV( VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties ) const
  1821. {
  1822. return ::vkGetPhysicalDeviceExternalImageFormatPropertiesNV( physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties );
  1823. }
  1824. void vkGetPhysicalDeviceExternalSemaphoreProperties( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties ) const
  1825. {
  1826. return ::vkGetPhysicalDeviceExternalSemaphoreProperties( physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties );
  1827. }
  1828. void vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties ) const
  1829. {
  1830. return ::vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties );
  1831. }
  1832. void vkGetPhysicalDeviceFeatures( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures ) const
  1833. {
  1834. return ::vkGetPhysicalDeviceFeatures( physicalDevice, pFeatures );
  1835. }
  1836. void vkGetPhysicalDeviceFeatures2( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures ) const
  1837. {
  1838. return ::vkGetPhysicalDeviceFeatures2( physicalDevice, pFeatures );
  1839. }
  1840. void vkGetPhysicalDeviceFeatures2KHR( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures ) const
  1841. {
  1842. return ::vkGetPhysicalDeviceFeatures2KHR( physicalDevice, pFeatures );
  1843. }
  1844. void vkGetPhysicalDeviceFormatProperties( VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties ) const
  1845. {
  1846. return ::vkGetPhysicalDeviceFormatProperties( physicalDevice, format, pFormatProperties );
  1847. }
  1848. void vkGetPhysicalDeviceFormatProperties2( VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties ) const
  1849. {
  1850. return ::vkGetPhysicalDeviceFormatProperties2( physicalDevice, format, pFormatProperties );
  1851. }
  1852. void vkGetPhysicalDeviceFormatProperties2KHR( VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties ) const
  1853. {
  1854. return ::vkGetPhysicalDeviceFormatProperties2KHR( physicalDevice, format, pFormatProperties );
  1855. }
  1856. void vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX( VkPhysicalDevice physicalDevice, VkDeviceGeneratedCommandsFeaturesNVX* pFeatures, VkDeviceGeneratedCommandsLimitsNVX* pLimits ) const
  1857. {
  1858. return ::vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX( physicalDevice, pFeatures, pLimits );
  1859. }
  1860. VkResult vkGetPhysicalDeviceImageFormatProperties( VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties ) const
  1861. {
  1862. return ::vkGetPhysicalDeviceImageFormatProperties( physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties );
  1863. }
  1864. VkResult vkGetPhysicalDeviceImageFormatProperties2( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties ) const
  1865. {
  1866. return ::vkGetPhysicalDeviceImageFormatProperties2( physicalDevice, pImageFormatInfo, pImageFormatProperties );
  1867. }
  1868. VkResult vkGetPhysicalDeviceImageFormatProperties2KHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties ) const
  1869. {
  1870. return ::vkGetPhysicalDeviceImageFormatProperties2KHR( physicalDevice, pImageFormatInfo, pImageFormatProperties );
  1871. }
  1872. void vkGetPhysicalDeviceMemoryProperties( VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties ) const
  1873. {
  1874. return ::vkGetPhysicalDeviceMemoryProperties( physicalDevice, pMemoryProperties );
  1875. }
  1876. void vkGetPhysicalDeviceMemoryProperties2( VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties ) const
  1877. {
  1878. return ::vkGetPhysicalDeviceMemoryProperties2( physicalDevice, pMemoryProperties );
  1879. }
  1880. void vkGetPhysicalDeviceMemoryProperties2KHR( VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties ) const
  1881. {
  1882. return ::vkGetPhysicalDeviceMemoryProperties2KHR( physicalDevice, pMemoryProperties );
  1883. }
  1884. void vkGetPhysicalDeviceMultisamplePropertiesEXT( VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties ) const
  1885. {
  1886. return ::vkGetPhysicalDeviceMultisamplePropertiesEXT( physicalDevice, samples, pMultisampleProperties );
  1887. }
  1888. VkResult vkGetPhysicalDevicePresentRectanglesKHR( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects ) const
  1889. {
  1890. return ::vkGetPhysicalDevicePresentRectanglesKHR( physicalDevice, surface, pRectCount, pRects );
  1891. }
  1892. void vkGetPhysicalDeviceProperties( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties ) const
  1893. {
  1894. return ::vkGetPhysicalDeviceProperties( physicalDevice, pProperties );
  1895. }
  1896. void vkGetPhysicalDeviceProperties2( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties ) const
  1897. {
  1898. return ::vkGetPhysicalDeviceProperties2( physicalDevice, pProperties );
  1899. }
  1900. void vkGetPhysicalDeviceProperties2KHR( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties ) const
  1901. {
  1902. return ::vkGetPhysicalDeviceProperties2KHR( physicalDevice, pProperties );
  1903. }
  1904. void vkGetPhysicalDeviceQueueFamilyProperties( VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties ) const
  1905. {
  1906. return ::vkGetPhysicalDeviceQueueFamilyProperties( physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties );
  1907. }
  1908. void vkGetPhysicalDeviceQueueFamilyProperties2( VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties ) const
  1909. {
  1910. return ::vkGetPhysicalDeviceQueueFamilyProperties2( physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties );
  1911. }
  1912. void vkGetPhysicalDeviceQueueFamilyProperties2KHR( VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties ) const
  1913. {
  1914. return ::vkGetPhysicalDeviceQueueFamilyProperties2KHR( physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties );
  1915. }
  1916. void vkGetPhysicalDeviceSparseImageFormatProperties( VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties ) const
  1917. {
  1918. return ::vkGetPhysicalDeviceSparseImageFormatProperties( physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties );
  1919. }
  1920. void vkGetPhysicalDeviceSparseImageFormatProperties2( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties ) const
  1921. {
  1922. return ::vkGetPhysicalDeviceSparseImageFormatProperties2( physicalDevice, pFormatInfo, pPropertyCount, pProperties );
  1923. }
  1924. void vkGetPhysicalDeviceSparseImageFormatProperties2KHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties ) const
  1925. {
  1926. return ::vkGetPhysicalDeviceSparseImageFormatProperties2KHR( physicalDevice, pFormatInfo, pPropertyCount, pProperties );
  1927. }
  1928. VkResult vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( VkPhysicalDevice physicalDevice, uint32_t* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations ) const
  1929. {
  1930. return ::vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( physicalDevice, pCombinationCount, pCombinations );
  1931. }
  1932. VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities ) const
  1933. {
  1934. return ::vkGetPhysicalDeviceSurfaceCapabilities2EXT( physicalDevice, surface, pSurfaceCapabilities );
  1935. }
  1936. VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities ) const
  1937. {
  1938. return ::vkGetPhysicalDeviceSurfaceCapabilities2KHR( physicalDevice, pSurfaceInfo, pSurfaceCapabilities );
  1939. }
  1940. VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities ) const
  1941. {
  1942. return ::vkGetPhysicalDeviceSurfaceCapabilitiesKHR( physicalDevice, surface, pSurfaceCapabilities );
  1943. }
  1944. VkResult vkGetPhysicalDeviceSurfaceFormats2KHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats ) const
  1945. {
  1946. return ::vkGetPhysicalDeviceSurfaceFormats2KHR( physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats );
  1947. }
  1948. VkResult vkGetPhysicalDeviceSurfaceFormatsKHR( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats ) const
  1949. {
  1950. return ::vkGetPhysicalDeviceSurfaceFormatsKHR( physicalDevice, surface, pSurfaceFormatCount, pSurfaceFormats );
  1951. }
  1952. #ifdef VK_USE_PLATFORM_WIN32_KHR
  1953. VkResult vkGetPhysicalDeviceSurfacePresentModes2EXT( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes ) const
  1954. {
  1955. return ::vkGetPhysicalDeviceSurfacePresentModes2EXT( physicalDevice, pSurfaceInfo, pPresentModeCount, pPresentModes );
  1956. }
  1957. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  1958. VkResult vkGetPhysicalDeviceSurfacePresentModesKHR( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes ) const
  1959. {
  1960. return ::vkGetPhysicalDeviceSurfacePresentModesKHR( physicalDevice, surface, pPresentModeCount, pPresentModes );
  1961. }
  1962. VkResult vkGetPhysicalDeviceSurfaceSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported ) const
  1963. {
  1964. return ::vkGetPhysicalDeviceSurfaceSupportKHR( physicalDevice, queueFamilyIndex, surface, pSupported );
  1965. }
  1966. #ifdef VK_USE_PLATFORM_WAYLAND_KHR
  1967. VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct wl_display* display ) const
  1968. {
  1969. return ::vkGetPhysicalDeviceWaylandPresentationSupportKHR( physicalDevice, queueFamilyIndex, display );
  1970. }
  1971. #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
  1972. #ifdef VK_USE_PLATFORM_WIN32_KHR
  1973. VkBool32 vkGetPhysicalDeviceWin32PresentationSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex ) const
  1974. {
  1975. return ::vkGetPhysicalDeviceWin32PresentationSupportKHR( physicalDevice, queueFamilyIndex );
  1976. }
  1977. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  1978. #ifdef VK_USE_PLATFORM_XCB_KHR
  1979. VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id ) const
  1980. {
  1981. return ::vkGetPhysicalDeviceXcbPresentationSupportKHR( physicalDevice, queueFamilyIndex, connection, visual_id );
  1982. }
  1983. #endif /*VK_USE_PLATFORM_XCB_KHR*/
  1984. #ifdef VK_USE_PLATFORM_XLIB_KHR
  1985. VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, Display* dpy, VisualID visualID ) const
  1986. {
  1987. return ::vkGetPhysicalDeviceXlibPresentationSupportKHR( physicalDevice, queueFamilyIndex, dpy, visualID );
  1988. }
  1989. #endif /*VK_USE_PLATFORM_XLIB_KHR*/
  1990. #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
  1991. VkResult vkGetRandROutputDisplayEXT( VkPhysicalDevice physicalDevice, Display* dpy, RROutput rrOutput, VkDisplayKHR* pDisplay ) const
  1992. {
  1993. return ::vkGetRandROutputDisplayEXT( physicalDevice, dpy, rrOutput, pDisplay );
  1994. }
  1995. #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
  1996. VkResult vkReleaseDisplayEXT( VkPhysicalDevice physicalDevice, VkDisplayKHR display ) const
  1997. {
  1998. return ::vkReleaseDisplayEXT( physicalDevice, display );
  1999. }
  2000. void vkGetQueueCheckpointDataNV( VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData ) const
  2001. {
  2002. return ::vkGetQueueCheckpointDataNV( queue, pCheckpointDataCount, pCheckpointData );
  2003. }
  2004. void vkQueueBeginDebugUtilsLabelEXT( VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo ) const
  2005. {
  2006. return ::vkQueueBeginDebugUtilsLabelEXT( queue, pLabelInfo );
  2007. }
  2008. VkResult vkQueueBindSparse( VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence ) const
  2009. {
  2010. return ::vkQueueBindSparse( queue, bindInfoCount, pBindInfo, fence );
  2011. }
  2012. void vkQueueEndDebugUtilsLabelEXT( VkQueue queue ) const
  2013. {
  2014. return ::vkQueueEndDebugUtilsLabelEXT( queue );
  2015. }
  2016. void vkQueueInsertDebugUtilsLabelEXT( VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo ) const
  2017. {
  2018. return ::vkQueueInsertDebugUtilsLabelEXT( queue, pLabelInfo );
  2019. }
  2020. VkResult vkQueuePresentKHR( VkQueue queue, const VkPresentInfoKHR* pPresentInfo ) const
  2021. {
  2022. return ::vkQueuePresentKHR( queue, pPresentInfo );
  2023. }
  2024. VkResult vkQueueSetPerformanceConfigurationINTEL( VkQueue queue, VkPerformanceConfigurationINTEL configuration ) const
  2025. {
  2026. return ::vkQueueSetPerformanceConfigurationINTEL( queue, configuration );
  2027. }
  2028. VkResult vkQueueSubmit( VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence ) const
  2029. {
  2030. return ::vkQueueSubmit( queue, submitCount, pSubmits, fence );
  2031. }
  2032. VkResult vkQueueWaitIdle( VkQueue queue ) const
  2033. {
  2034. return ::vkQueueWaitIdle( queue );
  2035. }
  2036. };
  2037. typedef DispatchLoaderStatic DispatchLoaderDefault;
  2038. #else // !defined(VK_NO_PROTOTYPES)
  2039. class NeedExplicitDispatchLoader;
  2040. typedef NeedExplicitDispatchLoader DispatchLoaderDefault;
  2041. #endif
  2042. struct AllocationCallbacks;
  2043. template <typename OwnerType, typename Dispatch>
  2044. class ObjectDestroy
  2045. {
  2046. public:
  2047. ObjectDestroy( OwnerType owner = OwnerType(), Optional<const AllocationCallbacks> allocationCallbacks = nullptr, Dispatch const &dispatch = Dispatch() )
  2048. : m_owner( owner )
  2049. , m_allocationCallbacks( allocationCallbacks )
  2050. , m_dispatch( &dispatch )
  2051. {}
  2052. OwnerType getOwner() const { return m_owner; }
  2053. Optional<const AllocationCallbacks> getAllocator() const { return m_allocationCallbacks; }
  2054. protected:
  2055. template <typename T>
  2056. void destroy(T t)
  2057. {
  2058. m_owner.destroy( t, m_allocationCallbacks, *m_dispatch );
  2059. }
  2060. private:
  2061. OwnerType m_owner;
  2062. Optional<const AllocationCallbacks> m_allocationCallbacks;
  2063. Dispatch const* m_dispatch;
  2064. };
  2065. class NoParent;
  2066. template <typename Dispatch>
  2067. class ObjectDestroy<NoParent,Dispatch>
  2068. {
  2069. public:
  2070. ObjectDestroy( Optional<const AllocationCallbacks> allocationCallbacks = nullptr, Dispatch const &dispatch = Dispatch() )
  2071. : m_allocationCallbacks( allocationCallbacks )
  2072. , m_dispatch( &dispatch )
  2073. {}
  2074. Optional<const AllocationCallbacks> getAllocator() const { return m_allocationCallbacks; }
  2075. protected:
  2076. template <typename T>
  2077. void destroy(T t)
  2078. {
  2079. t.destroy( m_allocationCallbacks, *m_dispatch );
  2080. }
  2081. private:
  2082. Optional<const AllocationCallbacks> m_allocationCallbacks;
  2083. Dispatch const* m_dispatch;
  2084. };
  2085. template <typename OwnerType, typename Dispatch>
  2086. class ObjectFree
  2087. {
  2088. public:
  2089. ObjectFree( OwnerType owner = OwnerType(), Optional<const AllocationCallbacks> allocationCallbacks = nullptr, Dispatch const &dispatch = Dispatch() )
  2090. : m_owner( owner )
  2091. , m_allocationCallbacks( allocationCallbacks )
  2092. , m_dispatch( &dispatch )
  2093. {}
  2094. OwnerType getOwner() const { return m_owner; }
  2095. Optional<const AllocationCallbacks> getAllocator() const { return m_allocationCallbacks; }
  2096. protected:
  2097. template <typename T>
  2098. void destroy(T t)
  2099. {
  2100. m_owner.free( t, m_allocationCallbacks, *m_dispatch );
  2101. }
  2102. private:
  2103. OwnerType m_owner;
  2104. Optional<const AllocationCallbacks> m_allocationCallbacks;
  2105. Dispatch const* m_dispatch;
  2106. };
  2107. template <typename OwnerType, typename PoolType, typename Dispatch>
  2108. class PoolFree
  2109. {
  2110. public:
  2111. PoolFree( OwnerType owner = OwnerType(), PoolType pool = PoolType(), Dispatch const &dispatch = Dispatch() )
  2112. : m_owner( owner )
  2113. , m_pool( pool )
  2114. , m_dispatch( &dispatch )
  2115. {}
  2116. OwnerType getOwner() const { return m_owner; }
  2117. PoolType getPool() const { return m_pool; }
  2118. protected:
  2119. template <typename T>
  2120. void destroy(T t)
  2121. {
  2122. m_owner.free( m_pool, t, *m_dispatch );
  2123. }
  2124. private:
  2125. OwnerType m_owner;
  2126. PoolType m_pool;
  2127. Dispatch const* m_dispatch;
  2128. };
  2129. using Bool32 = uint32_t;
  2130. using DeviceAddress = uint64_t;
  2131. using DeviceSize = uint64_t;
  2132. using SampleMask = uint32_t;
  2133. enum class AccelerationStructureMemoryRequirementsTypeNV
  2134. {
  2135. eObject = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV,
  2136. eBuildScratch = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV,
  2137. eUpdateScratch = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV
  2138. };
  2139. VULKAN_HPP_INLINE std::string to_string( AccelerationStructureMemoryRequirementsTypeNV value )
  2140. {
  2141. switch ( value )
  2142. {
  2143. case AccelerationStructureMemoryRequirementsTypeNV::eObject : return "Object";
  2144. case AccelerationStructureMemoryRequirementsTypeNV::eBuildScratch : return "BuildScratch";
  2145. case AccelerationStructureMemoryRequirementsTypeNV::eUpdateScratch : return "UpdateScratch";
  2146. default: return "invalid";
  2147. }
  2148. }
  2149. enum class AccelerationStructureTypeNV
  2150. {
  2151. eTopLevel = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV,
  2152. eBottomLevel = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV
  2153. };
  2154. VULKAN_HPP_INLINE std::string to_string( AccelerationStructureTypeNV value )
  2155. {
  2156. switch ( value )
  2157. {
  2158. case AccelerationStructureTypeNV::eTopLevel : return "TopLevel";
  2159. case AccelerationStructureTypeNV::eBottomLevel : return "BottomLevel";
  2160. default: return "invalid";
  2161. }
  2162. }
  2163. enum class AttachmentLoadOp
  2164. {
  2165. eLoad = VK_ATTACHMENT_LOAD_OP_LOAD,
  2166. eClear = VK_ATTACHMENT_LOAD_OP_CLEAR,
  2167. eDontCare = VK_ATTACHMENT_LOAD_OP_DONT_CARE
  2168. };
  2169. VULKAN_HPP_INLINE std::string to_string( AttachmentLoadOp value )
  2170. {
  2171. switch ( value )
  2172. {
  2173. case AttachmentLoadOp::eLoad : return "Load";
  2174. case AttachmentLoadOp::eClear : return "Clear";
  2175. case AttachmentLoadOp::eDontCare : return "DontCare";
  2176. default: return "invalid";
  2177. }
  2178. }
  2179. enum class AttachmentStoreOp
  2180. {
  2181. eStore = VK_ATTACHMENT_STORE_OP_STORE,
  2182. eDontCare = VK_ATTACHMENT_STORE_OP_DONT_CARE
  2183. };
  2184. VULKAN_HPP_INLINE std::string to_string( AttachmentStoreOp value )
  2185. {
  2186. switch ( value )
  2187. {
  2188. case AttachmentStoreOp::eStore : return "Store";
  2189. case AttachmentStoreOp::eDontCare : return "DontCare";
  2190. default: return "invalid";
  2191. }
  2192. }
  2193. enum class BlendFactor
  2194. {
  2195. eZero = VK_BLEND_FACTOR_ZERO,
  2196. eOne = VK_BLEND_FACTOR_ONE,
  2197. eSrcColor = VK_BLEND_FACTOR_SRC_COLOR,
  2198. eOneMinusSrcColor = VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR,
  2199. eDstColor = VK_BLEND_FACTOR_DST_COLOR,
  2200. eOneMinusDstColor = VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR,
  2201. eSrcAlpha = VK_BLEND_FACTOR_SRC_ALPHA,
  2202. eOneMinusSrcAlpha = VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA,
  2203. eDstAlpha = VK_BLEND_FACTOR_DST_ALPHA,
  2204. eOneMinusDstAlpha = VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA,
  2205. eConstantColor = VK_BLEND_FACTOR_CONSTANT_COLOR,
  2206. eOneMinusConstantColor = VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR,
  2207. eConstantAlpha = VK_BLEND_FACTOR_CONSTANT_ALPHA,
  2208. eOneMinusConstantAlpha = VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA,
  2209. eSrcAlphaSaturate = VK_BLEND_FACTOR_SRC_ALPHA_SATURATE,
  2210. eSrc1Color = VK_BLEND_FACTOR_SRC1_COLOR,
  2211. eOneMinusSrc1Color = VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR,
  2212. eSrc1Alpha = VK_BLEND_FACTOR_SRC1_ALPHA,
  2213. eOneMinusSrc1Alpha = VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
  2214. };
  2215. VULKAN_HPP_INLINE std::string to_string( BlendFactor value )
  2216. {
  2217. switch ( value )
  2218. {
  2219. case BlendFactor::eZero : return "Zero";
  2220. case BlendFactor::eOne : return "One";
  2221. case BlendFactor::eSrcColor : return "SrcColor";
  2222. case BlendFactor::eOneMinusSrcColor : return "OneMinusSrcColor";
  2223. case BlendFactor::eDstColor : return "DstColor";
  2224. case BlendFactor::eOneMinusDstColor : return "OneMinusDstColor";
  2225. case BlendFactor::eSrcAlpha : return "SrcAlpha";
  2226. case BlendFactor::eOneMinusSrcAlpha : return "OneMinusSrcAlpha";
  2227. case BlendFactor::eDstAlpha : return "DstAlpha";
  2228. case BlendFactor::eOneMinusDstAlpha : return "OneMinusDstAlpha";
  2229. case BlendFactor::eConstantColor : return "ConstantColor";
  2230. case BlendFactor::eOneMinusConstantColor : return "OneMinusConstantColor";
  2231. case BlendFactor::eConstantAlpha : return "ConstantAlpha";
  2232. case BlendFactor::eOneMinusConstantAlpha : return "OneMinusConstantAlpha";
  2233. case BlendFactor::eSrcAlphaSaturate : return "SrcAlphaSaturate";
  2234. case BlendFactor::eSrc1Color : return "Src1Color";
  2235. case BlendFactor::eOneMinusSrc1Color : return "OneMinusSrc1Color";
  2236. case BlendFactor::eSrc1Alpha : return "Src1Alpha";
  2237. case BlendFactor::eOneMinusSrc1Alpha : return "OneMinusSrc1Alpha";
  2238. default: return "invalid";
  2239. }
  2240. }
  2241. enum class BlendOp
  2242. {
  2243. eAdd = VK_BLEND_OP_ADD,
  2244. eSubtract = VK_BLEND_OP_SUBTRACT,
  2245. eReverseSubtract = VK_BLEND_OP_REVERSE_SUBTRACT,
  2246. eMin = VK_BLEND_OP_MIN,
  2247. eMax = VK_BLEND_OP_MAX,
  2248. eZeroEXT = VK_BLEND_OP_ZERO_EXT,
  2249. eSrcEXT = VK_BLEND_OP_SRC_EXT,
  2250. eDstEXT = VK_BLEND_OP_DST_EXT,
  2251. eSrcOverEXT = VK_BLEND_OP_SRC_OVER_EXT,
  2252. eDstOverEXT = VK_BLEND_OP_DST_OVER_EXT,
  2253. eSrcInEXT = VK_BLEND_OP_SRC_IN_EXT,
  2254. eDstInEXT = VK_BLEND_OP_DST_IN_EXT,
  2255. eSrcOutEXT = VK_BLEND_OP_SRC_OUT_EXT,
  2256. eDstOutEXT = VK_BLEND_OP_DST_OUT_EXT,
  2257. eSrcAtopEXT = VK_BLEND_OP_SRC_ATOP_EXT,
  2258. eDstAtopEXT = VK_BLEND_OP_DST_ATOP_EXT,
  2259. eXorEXT = VK_BLEND_OP_XOR_EXT,
  2260. eMultiplyEXT = VK_BLEND_OP_MULTIPLY_EXT,
  2261. eScreenEXT = VK_BLEND_OP_SCREEN_EXT,
  2262. eOverlayEXT = VK_BLEND_OP_OVERLAY_EXT,
  2263. eDarkenEXT = VK_BLEND_OP_DARKEN_EXT,
  2264. eLightenEXT = VK_BLEND_OP_LIGHTEN_EXT,
  2265. eColordodgeEXT = VK_BLEND_OP_COLORDODGE_EXT,
  2266. eColorburnEXT = VK_BLEND_OP_COLORBURN_EXT,
  2267. eHardlightEXT = VK_BLEND_OP_HARDLIGHT_EXT,
  2268. eSoftlightEXT = VK_BLEND_OP_SOFTLIGHT_EXT,
  2269. eDifferenceEXT = VK_BLEND_OP_DIFFERENCE_EXT,
  2270. eExclusionEXT = VK_BLEND_OP_EXCLUSION_EXT,
  2271. eInvertEXT = VK_BLEND_OP_INVERT_EXT,
  2272. eInvertRgbEXT = VK_BLEND_OP_INVERT_RGB_EXT,
  2273. eLineardodgeEXT = VK_BLEND_OP_LINEARDODGE_EXT,
  2274. eLinearburnEXT = VK_BLEND_OP_LINEARBURN_EXT,
  2275. eVividlightEXT = VK_BLEND_OP_VIVIDLIGHT_EXT,
  2276. eLinearlightEXT = VK_BLEND_OP_LINEARLIGHT_EXT,
  2277. ePinlightEXT = VK_BLEND_OP_PINLIGHT_EXT,
  2278. eHardmixEXT = VK_BLEND_OP_HARDMIX_EXT,
  2279. eHslHueEXT = VK_BLEND_OP_HSL_HUE_EXT,
  2280. eHslSaturationEXT = VK_BLEND_OP_HSL_SATURATION_EXT,
  2281. eHslColorEXT = VK_BLEND_OP_HSL_COLOR_EXT,
  2282. eHslLuminosityEXT = VK_BLEND_OP_HSL_LUMINOSITY_EXT,
  2283. ePlusEXT = VK_BLEND_OP_PLUS_EXT,
  2284. ePlusClampedEXT = VK_BLEND_OP_PLUS_CLAMPED_EXT,
  2285. ePlusClampedAlphaEXT = VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT,
  2286. ePlusDarkerEXT = VK_BLEND_OP_PLUS_DARKER_EXT,
  2287. eMinusEXT = VK_BLEND_OP_MINUS_EXT,
  2288. eMinusClampedEXT = VK_BLEND_OP_MINUS_CLAMPED_EXT,
  2289. eContrastEXT = VK_BLEND_OP_CONTRAST_EXT,
  2290. eInvertOvgEXT = VK_BLEND_OP_INVERT_OVG_EXT,
  2291. eRedEXT = VK_BLEND_OP_RED_EXT,
  2292. eGreenEXT = VK_BLEND_OP_GREEN_EXT,
  2293. eBlueEXT = VK_BLEND_OP_BLUE_EXT
  2294. };
  2295. VULKAN_HPP_INLINE std::string to_string( BlendOp value )
  2296. {
  2297. switch ( value )
  2298. {
  2299. case BlendOp::eAdd : return "Add";
  2300. case BlendOp::eSubtract : return "Subtract";
  2301. case BlendOp::eReverseSubtract : return "ReverseSubtract";
  2302. case BlendOp::eMin : return "Min";
  2303. case BlendOp::eMax : return "Max";
  2304. case BlendOp::eZeroEXT : return "ZeroEXT";
  2305. case BlendOp::eSrcEXT : return "SrcEXT";
  2306. case BlendOp::eDstEXT : return "DstEXT";
  2307. case BlendOp::eSrcOverEXT : return "SrcOverEXT";
  2308. case BlendOp::eDstOverEXT : return "DstOverEXT";
  2309. case BlendOp::eSrcInEXT : return "SrcInEXT";
  2310. case BlendOp::eDstInEXT : return "DstInEXT";
  2311. case BlendOp::eSrcOutEXT : return "SrcOutEXT";
  2312. case BlendOp::eDstOutEXT : return "DstOutEXT";
  2313. case BlendOp::eSrcAtopEXT : return "SrcAtopEXT";
  2314. case BlendOp::eDstAtopEXT : return "DstAtopEXT";
  2315. case BlendOp::eXorEXT : return "XorEXT";
  2316. case BlendOp::eMultiplyEXT : return "MultiplyEXT";
  2317. case BlendOp::eScreenEXT : return "ScreenEXT";
  2318. case BlendOp::eOverlayEXT : return "OverlayEXT";
  2319. case BlendOp::eDarkenEXT : return "DarkenEXT";
  2320. case BlendOp::eLightenEXT : return "LightenEXT";
  2321. case BlendOp::eColordodgeEXT : return "ColordodgeEXT";
  2322. case BlendOp::eColorburnEXT : return "ColorburnEXT";
  2323. case BlendOp::eHardlightEXT : return "HardlightEXT";
  2324. case BlendOp::eSoftlightEXT : return "SoftlightEXT";
  2325. case BlendOp::eDifferenceEXT : return "DifferenceEXT";
  2326. case BlendOp::eExclusionEXT : return "ExclusionEXT";
  2327. case BlendOp::eInvertEXT : return "InvertEXT";
  2328. case BlendOp::eInvertRgbEXT : return "InvertRgbEXT";
  2329. case BlendOp::eLineardodgeEXT : return "LineardodgeEXT";
  2330. case BlendOp::eLinearburnEXT : return "LinearburnEXT";
  2331. case BlendOp::eVividlightEXT : return "VividlightEXT";
  2332. case BlendOp::eLinearlightEXT : return "LinearlightEXT";
  2333. case BlendOp::ePinlightEXT : return "PinlightEXT";
  2334. case BlendOp::eHardmixEXT : return "HardmixEXT";
  2335. case BlendOp::eHslHueEXT : return "HslHueEXT";
  2336. case BlendOp::eHslSaturationEXT : return "HslSaturationEXT";
  2337. case BlendOp::eHslColorEXT : return "HslColorEXT";
  2338. case BlendOp::eHslLuminosityEXT : return "HslLuminosityEXT";
  2339. case BlendOp::ePlusEXT : return "PlusEXT";
  2340. case BlendOp::ePlusClampedEXT : return "PlusClampedEXT";
  2341. case BlendOp::ePlusClampedAlphaEXT : return "PlusClampedAlphaEXT";
  2342. case BlendOp::ePlusDarkerEXT : return "PlusDarkerEXT";
  2343. case BlendOp::eMinusEXT : return "MinusEXT";
  2344. case BlendOp::eMinusClampedEXT : return "MinusClampedEXT";
  2345. case BlendOp::eContrastEXT : return "ContrastEXT";
  2346. case BlendOp::eInvertOvgEXT : return "InvertOvgEXT";
  2347. case BlendOp::eRedEXT : return "RedEXT";
  2348. case BlendOp::eGreenEXT : return "GreenEXT";
  2349. case BlendOp::eBlueEXT : return "BlueEXT";
  2350. default: return "invalid";
  2351. }
  2352. }
  2353. enum class BlendOverlapEXT
  2354. {
  2355. eUncorrelated = VK_BLEND_OVERLAP_UNCORRELATED_EXT,
  2356. eDisjoint = VK_BLEND_OVERLAP_DISJOINT_EXT,
  2357. eConjoint = VK_BLEND_OVERLAP_CONJOINT_EXT
  2358. };
  2359. VULKAN_HPP_INLINE std::string to_string( BlendOverlapEXT value )
  2360. {
  2361. switch ( value )
  2362. {
  2363. case BlendOverlapEXT::eUncorrelated : return "Uncorrelated";
  2364. case BlendOverlapEXT::eDisjoint : return "Disjoint";
  2365. case BlendOverlapEXT::eConjoint : return "Conjoint";
  2366. default: return "invalid";
  2367. }
  2368. }
  2369. enum class BorderColor
  2370. {
  2371. eFloatTransparentBlack = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,
  2372. eIntTransparentBlack = VK_BORDER_COLOR_INT_TRANSPARENT_BLACK,
  2373. eFloatOpaqueBlack = VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK,
  2374. eIntOpaqueBlack = VK_BORDER_COLOR_INT_OPAQUE_BLACK,
  2375. eFloatOpaqueWhite = VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE,
  2376. eIntOpaqueWhite = VK_BORDER_COLOR_INT_OPAQUE_WHITE
  2377. };
  2378. VULKAN_HPP_INLINE std::string to_string( BorderColor value )
  2379. {
  2380. switch ( value )
  2381. {
  2382. case BorderColor::eFloatTransparentBlack : return "FloatTransparentBlack";
  2383. case BorderColor::eIntTransparentBlack : return "IntTransparentBlack";
  2384. case BorderColor::eFloatOpaqueBlack : return "FloatOpaqueBlack";
  2385. case BorderColor::eIntOpaqueBlack : return "IntOpaqueBlack";
  2386. case BorderColor::eFloatOpaqueWhite : return "FloatOpaqueWhite";
  2387. case BorderColor::eIntOpaqueWhite : return "IntOpaqueWhite";
  2388. default: return "invalid";
  2389. }
  2390. }
  2391. enum class ChromaLocation
  2392. {
  2393. eCositedEven = VK_CHROMA_LOCATION_COSITED_EVEN,
  2394. eMidpoint = VK_CHROMA_LOCATION_MIDPOINT,
  2395. eCositedEvenKHR = VK_CHROMA_LOCATION_COSITED_EVEN_KHR,
  2396. eMidpointKHR = VK_CHROMA_LOCATION_MIDPOINT_KHR
  2397. };
  2398. VULKAN_HPP_INLINE std::string to_string( ChromaLocation value )
  2399. {
  2400. switch ( value )
  2401. {
  2402. case ChromaLocation::eCositedEven : return "CositedEven";
  2403. case ChromaLocation::eMidpoint : return "Midpoint";
  2404. default: return "invalid";
  2405. }
  2406. }
  2407. enum class CoarseSampleOrderTypeNV
  2408. {
  2409. eDefault = VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV,
  2410. eCustom = VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV,
  2411. ePixelMajor = VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV,
  2412. eSampleMajor = VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV
  2413. };
  2414. VULKAN_HPP_INLINE std::string to_string( CoarseSampleOrderTypeNV value )
  2415. {
  2416. switch ( value )
  2417. {
  2418. case CoarseSampleOrderTypeNV::eDefault : return "Default";
  2419. case CoarseSampleOrderTypeNV::eCustom : return "Custom";
  2420. case CoarseSampleOrderTypeNV::ePixelMajor : return "PixelMajor";
  2421. case CoarseSampleOrderTypeNV::eSampleMajor : return "SampleMajor";
  2422. default: return "invalid";
  2423. }
  2424. }
  2425. enum class ColorSpaceKHR
  2426. {
  2427. eSrgbNonlinear = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
  2428. eDisplayP3NonlinearEXT = VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT,
  2429. eExtendedSrgbLinearEXT = VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT,
  2430. eDisplayP3LinearEXT = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT,
  2431. eDciP3NonlinearEXT = VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT,
  2432. eBt709LinearEXT = VK_COLOR_SPACE_BT709_LINEAR_EXT,
  2433. eBt709NonlinearEXT = VK_COLOR_SPACE_BT709_NONLINEAR_EXT,
  2434. eBt2020LinearEXT = VK_COLOR_SPACE_BT2020_LINEAR_EXT,
  2435. eHdr10St2084EXT = VK_COLOR_SPACE_HDR10_ST2084_EXT,
  2436. eDolbyvisionEXT = VK_COLOR_SPACE_DOLBYVISION_EXT,
  2437. eHdr10HlgEXT = VK_COLOR_SPACE_HDR10_HLG_EXT,
  2438. eAdobergbLinearEXT = VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT,
  2439. eAdobergbNonlinearEXT = VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT,
  2440. ePassThroughEXT = VK_COLOR_SPACE_PASS_THROUGH_EXT,
  2441. eExtendedSrgbNonlinearEXT = VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT,
  2442. eDisplayNativeAMD = VK_COLOR_SPACE_DISPLAY_NATIVE_AMD,
  2443. eVkColorspaceSrgbNonlinear = VK_COLORSPACE_SRGB_NONLINEAR_KHR,
  2444. eDciP3LinearEXT = VK_COLOR_SPACE_DCI_P3_LINEAR_EXT
  2445. };
  2446. VULKAN_HPP_INLINE std::string to_string( ColorSpaceKHR value )
  2447. {
  2448. switch ( value )
  2449. {
  2450. case ColorSpaceKHR::eSrgbNonlinear : return "SrgbNonlinear";
  2451. case ColorSpaceKHR::eDisplayP3NonlinearEXT : return "DisplayP3NonlinearEXT";
  2452. case ColorSpaceKHR::eExtendedSrgbLinearEXT : return "ExtendedSrgbLinearEXT";
  2453. case ColorSpaceKHR::eDisplayP3LinearEXT : return "DisplayP3LinearEXT";
  2454. case ColorSpaceKHR::eDciP3NonlinearEXT : return "DciP3NonlinearEXT";
  2455. case ColorSpaceKHR::eBt709LinearEXT : return "Bt709LinearEXT";
  2456. case ColorSpaceKHR::eBt709NonlinearEXT : return "Bt709NonlinearEXT";
  2457. case ColorSpaceKHR::eBt2020LinearEXT : return "Bt2020LinearEXT";
  2458. case ColorSpaceKHR::eHdr10St2084EXT : return "Hdr10St2084EXT";
  2459. case ColorSpaceKHR::eDolbyvisionEXT : return "DolbyvisionEXT";
  2460. case ColorSpaceKHR::eHdr10HlgEXT : return "Hdr10HlgEXT";
  2461. case ColorSpaceKHR::eAdobergbLinearEXT : return "AdobergbLinearEXT";
  2462. case ColorSpaceKHR::eAdobergbNonlinearEXT : return "AdobergbNonlinearEXT";
  2463. case ColorSpaceKHR::ePassThroughEXT : return "PassThroughEXT";
  2464. case ColorSpaceKHR::eExtendedSrgbNonlinearEXT : return "ExtendedSrgbNonlinearEXT";
  2465. case ColorSpaceKHR::eDisplayNativeAMD : return "DisplayNativeAMD";
  2466. default: return "invalid";
  2467. }
  2468. }
  2469. enum class CommandBufferLevel
  2470. {
  2471. ePrimary = VK_COMMAND_BUFFER_LEVEL_PRIMARY,
  2472. eSecondary = VK_COMMAND_BUFFER_LEVEL_SECONDARY
  2473. };
  2474. VULKAN_HPP_INLINE std::string to_string( CommandBufferLevel value )
  2475. {
  2476. switch ( value )
  2477. {
  2478. case CommandBufferLevel::ePrimary : return "Primary";
  2479. case CommandBufferLevel::eSecondary : return "Secondary";
  2480. default: return "invalid";
  2481. }
  2482. }
  2483. enum class CompareOp
  2484. {
  2485. eNever = VK_COMPARE_OP_NEVER,
  2486. eLess = VK_COMPARE_OP_LESS,
  2487. eEqual = VK_COMPARE_OP_EQUAL,
  2488. eLessOrEqual = VK_COMPARE_OP_LESS_OR_EQUAL,
  2489. eGreater = VK_COMPARE_OP_GREATER,
  2490. eNotEqual = VK_COMPARE_OP_NOT_EQUAL,
  2491. eGreaterOrEqual = VK_COMPARE_OP_GREATER_OR_EQUAL,
  2492. eAlways = VK_COMPARE_OP_ALWAYS
  2493. };
  2494. VULKAN_HPP_INLINE std::string to_string( CompareOp value )
  2495. {
  2496. switch ( value )
  2497. {
  2498. case CompareOp::eNever : return "Never";
  2499. case CompareOp::eLess : return "Less";
  2500. case CompareOp::eEqual : return "Equal";
  2501. case CompareOp::eLessOrEqual : return "LessOrEqual";
  2502. case CompareOp::eGreater : return "Greater";
  2503. case CompareOp::eNotEqual : return "NotEqual";
  2504. case CompareOp::eGreaterOrEqual : return "GreaterOrEqual";
  2505. case CompareOp::eAlways : return "Always";
  2506. default: return "invalid";
  2507. }
  2508. }
  2509. enum class ComponentSwizzle
  2510. {
  2511. eIdentity = VK_COMPONENT_SWIZZLE_IDENTITY,
  2512. eZero = VK_COMPONENT_SWIZZLE_ZERO,
  2513. eOne = VK_COMPONENT_SWIZZLE_ONE,
  2514. eR = VK_COMPONENT_SWIZZLE_R,
  2515. eG = VK_COMPONENT_SWIZZLE_G,
  2516. eB = VK_COMPONENT_SWIZZLE_B,
  2517. eA = VK_COMPONENT_SWIZZLE_A
  2518. };
  2519. VULKAN_HPP_INLINE std::string to_string( ComponentSwizzle value )
  2520. {
  2521. switch ( value )
  2522. {
  2523. case ComponentSwizzle::eIdentity : return "Identity";
  2524. case ComponentSwizzle::eZero : return "Zero";
  2525. case ComponentSwizzle::eOne : return "One";
  2526. case ComponentSwizzle::eR : return "R";
  2527. case ComponentSwizzle::eG : return "G";
  2528. case ComponentSwizzle::eB : return "B";
  2529. case ComponentSwizzle::eA : return "A";
  2530. default: return "invalid";
  2531. }
  2532. }
  2533. enum class ComponentTypeNV
  2534. {
  2535. eFloat16 = VK_COMPONENT_TYPE_FLOAT16_NV,
  2536. eFloat32 = VK_COMPONENT_TYPE_FLOAT32_NV,
  2537. eFloat64 = VK_COMPONENT_TYPE_FLOAT64_NV,
  2538. eSint8 = VK_COMPONENT_TYPE_SINT8_NV,
  2539. eSint16 = VK_COMPONENT_TYPE_SINT16_NV,
  2540. eSint32 = VK_COMPONENT_TYPE_SINT32_NV,
  2541. eSint64 = VK_COMPONENT_TYPE_SINT64_NV,
  2542. eUint8 = VK_COMPONENT_TYPE_UINT8_NV,
  2543. eUint16 = VK_COMPONENT_TYPE_UINT16_NV,
  2544. eUint32 = VK_COMPONENT_TYPE_UINT32_NV,
  2545. eUint64 = VK_COMPONENT_TYPE_UINT64_NV
  2546. };
  2547. VULKAN_HPP_INLINE std::string to_string( ComponentTypeNV value )
  2548. {
  2549. switch ( value )
  2550. {
  2551. case ComponentTypeNV::eFloat16 : return "Float16";
  2552. case ComponentTypeNV::eFloat32 : return "Float32";
  2553. case ComponentTypeNV::eFloat64 : return "Float64";
  2554. case ComponentTypeNV::eSint8 : return "Sint8";
  2555. case ComponentTypeNV::eSint16 : return "Sint16";
  2556. case ComponentTypeNV::eSint32 : return "Sint32";
  2557. case ComponentTypeNV::eSint64 : return "Sint64";
  2558. case ComponentTypeNV::eUint8 : return "Uint8";
  2559. case ComponentTypeNV::eUint16 : return "Uint16";
  2560. case ComponentTypeNV::eUint32 : return "Uint32";
  2561. case ComponentTypeNV::eUint64 : return "Uint64";
  2562. default: return "invalid";
  2563. }
  2564. }
  2565. enum class ConservativeRasterizationModeEXT
  2566. {
  2567. eDisabled = VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT,
  2568. eOverestimate = VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT,
  2569. eUnderestimate = VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT
  2570. };
  2571. VULKAN_HPP_INLINE std::string to_string( ConservativeRasterizationModeEXT value )
  2572. {
  2573. switch ( value )
  2574. {
  2575. case ConservativeRasterizationModeEXT::eDisabled : return "Disabled";
  2576. case ConservativeRasterizationModeEXT::eOverestimate : return "Overestimate";
  2577. case ConservativeRasterizationModeEXT::eUnderestimate : return "Underestimate";
  2578. default: return "invalid";
  2579. }
  2580. }
  2581. enum class CopyAccelerationStructureModeNV
  2582. {
  2583. eClone = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV,
  2584. eCompact = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV
  2585. };
  2586. VULKAN_HPP_INLINE std::string to_string( CopyAccelerationStructureModeNV value )
  2587. {
  2588. switch ( value )
  2589. {
  2590. case CopyAccelerationStructureModeNV::eClone : return "Clone";
  2591. case CopyAccelerationStructureModeNV::eCompact : return "Compact";
  2592. default: return "invalid";
  2593. }
  2594. }
  2595. enum class CoverageModulationModeNV
  2596. {
  2597. eNone = VK_COVERAGE_MODULATION_MODE_NONE_NV,
  2598. eRgb = VK_COVERAGE_MODULATION_MODE_RGB_NV,
  2599. eAlpha = VK_COVERAGE_MODULATION_MODE_ALPHA_NV,
  2600. eRgba = VK_COVERAGE_MODULATION_MODE_RGBA_NV
  2601. };
  2602. VULKAN_HPP_INLINE std::string to_string( CoverageModulationModeNV value )
  2603. {
  2604. switch ( value )
  2605. {
  2606. case CoverageModulationModeNV::eNone : return "None";
  2607. case CoverageModulationModeNV::eRgb : return "Rgb";
  2608. case CoverageModulationModeNV::eAlpha : return "Alpha";
  2609. case CoverageModulationModeNV::eRgba : return "Rgba";
  2610. default: return "invalid";
  2611. }
  2612. }
  2613. enum class CoverageReductionModeNV
  2614. {
  2615. eMerge = VK_COVERAGE_REDUCTION_MODE_MERGE_NV,
  2616. eTruncate = VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV
  2617. };
  2618. VULKAN_HPP_INLINE std::string to_string( CoverageReductionModeNV value )
  2619. {
  2620. switch ( value )
  2621. {
  2622. case CoverageReductionModeNV::eMerge : return "Merge";
  2623. case CoverageReductionModeNV::eTruncate : return "Truncate";
  2624. default: return "invalid";
  2625. }
  2626. }
  2627. enum class DebugReportObjectTypeEXT
  2628. {
  2629. eUnknown = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,
  2630. eInstance = VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT,
  2631. ePhysicalDevice = VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT,
  2632. eDevice = VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT,
  2633. eQueue = VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT,
  2634. eSemaphore = VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT,
  2635. eCommandBuffer = VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT,
  2636. eFence = VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT,
  2637. eDeviceMemory = VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT,
  2638. eBuffer = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT,
  2639. eImage = VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT,
  2640. eEvent = VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT,
  2641. eQueryPool = VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT,
  2642. eBufferView = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT,
  2643. eImageView = VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT,
  2644. eShaderModule = VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT,
  2645. ePipelineCache = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT,
  2646. ePipelineLayout = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT,
  2647. eRenderPass = VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT,
  2648. ePipeline = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT,
  2649. eDescriptorSetLayout = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT,
  2650. eSampler = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT,
  2651. eDescriptorPool = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT,
  2652. eDescriptorSet = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT,
  2653. eFramebuffer = VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT,
  2654. eCommandPool = VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT,
  2655. eSurfaceKHR = VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT,
  2656. eSwapchainKHR = VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT,
  2657. eDebugReportCallbackEXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
  2658. eDisplayKHR = VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT,
  2659. eDisplayModeKHR = VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT,
  2660. eObjectTableNVX = VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT,
  2661. eIndirectCommandsLayoutNVX = VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT,
  2662. eValidationCacheEXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
  2663. eSamplerYcbcrConversion = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,
  2664. eDescriptorUpdateTemplate = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT,
  2665. eAccelerationStructureNV = VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT,
  2666. eDebugReport = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT,
  2667. eValidationCache = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT,
  2668. eDescriptorUpdateTemplateKHR = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT,
  2669. eSamplerYcbcrConversionKHR = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT
  2670. };
  2671. VULKAN_HPP_INLINE std::string to_string( DebugReportObjectTypeEXT value )
  2672. {
  2673. switch ( value )
  2674. {
  2675. case DebugReportObjectTypeEXT::eUnknown : return "Unknown";
  2676. case DebugReportObjectTypeEXT::eInstance : return "Instance";
  2677. case DebugReportObjectTypeEXT::ePhysicalDevice : return "PhysicalDevice";
  2678. case DebugReportObjectTypeEXT::eDevice : return "Device";
  2679. case DebugReportObjectTypeEXT::eQueue : return "Queue";
  2680. case DebugReportObjectTypeEXT::eSemaphore : return "Semaphore";
  2681. case DebugReportObjectTypeEXT::eCommandBuffer : return "CommandBuffer";
  2682. case DebugReportObjectTypeEXT::eFence : return "Fence";
  2683. case DebugReportObjectTypeEXT::eDeviceMemory : return "DeviceMemory";
  2684. case DebugReportObjectTypeEXT::eBuffer : return "Buffer";
  2685. case DebugReportObjectTypeEXT::eImage : return "Image";
  2686. case DebugReportObjectTypeEXT::eEvent : return "Event";
  2687. case DebugReportObjectTypeEXT::eQueryPool : return "QueryPool";
  2688. case DebugReportObjectTypeEXT::eBufferView : return "BufferView";
  2689. case DebugReportObjectTypeEXT::eImageView : return "ImageView";
  2690. case DebugReportObjectTypeEXT::eShaderModule : return "ShaderModule";
  2691. case DebugReportObjectTypeEXT::ePipelineCache : return "PipelineCache";
  2692. case DebugReportObjectTypeEXT::ePipelineLayout : return "PipelineLayout";
  2693. case DebugReportObjectTypeEXT::eRenderPass : return "RenderPass";
  2694. case DebugReportObjectTypeEXT::ePipeline : return "Pipeline";
  2695. case DebugReportObjectTypeEXT::eDescriptorSetLayout : return "DescriptorSetLayout";
  2696. case DebugReportObjectTypeEXT::eSampler : return "Sampler";
  2697. case DebugReportObjectTypeEXT::eDescriptorPool : return "DescriptorPool";
  2698. case DebugReportObjectTypeEXT::eDescriptorSet : return "DescriptorSet";
  2699. case DebugReportObjectTypeEXT::eFramebuffer : return "Framebuffer";
  2700. case DebugReportObjectTypeEXT::eCommandPool : return "CommandPool";
  2701. case DebugReportObjectTypeEXT::eSurfaceKHR : return "SurfaceKHR";
  2702. case DebugReportObjectTypeEXT::eSwapchainKHR : return "SwapchainKHR";
  2703. case DebugReportObjectTypeEXT::eDebugReportCallbackEXT : return "DebugReportCallbackEXT";
  2704. case DebugReportObjectTypeEXT::eDisplayKHR : return "DisplayKHR";
  2705. case DebugReportObjectTypeEXT::eDisplayModeKHR : return "DisplayModeKHR";
  2706. case DebugReportObjectTypeEXT::eObjectTableNVX : return "ObjectTableNVX";
  2707. case DebugReportObjectTypeEXT::eIndirectCommandsLayoutNVX : return "IndirectCommandsLayoutNVX";
  2708. case DebugReportObjectTypeEXT::eValidationCacheEXT : return "ValidationCacheEXT";
  2709. case DebugReportObjectTypeEXT::eSamplerYcbcrConversion : return "SamplerYcbcrConversion";
  2710. case DebugReportObjectTypeEXT::eDescriptorUpdateTemplate : return "DescriptorUpdateTemplate";
  2711. case DebugReportObjectTypeEXT::eAccelerationStructureNV : return "AccelerationStructureNV";
  2712. default: return "invalid";
  2713. }
  2714. }
  2715. enum class DescriptorType
  2716. {
  2717. eSampler = VK_DESCRIPTOR_TYPE_SAMPLER,
  2718. eCombinedImageSampler = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
  2719. eSampledImage = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE,
  2720. eStorageImage = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE,
  2721. eUniformTexelBuffer = VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER,
  2722. eStorageTexelBuffer = VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER,
  2723. eUniformBuffer = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
  2724. eStorageBuffer = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER,
  2725. eUniformBufferDynamic = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC,
  2726. eStorageBufferDynamic = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC,
  2727. eInputAttachment = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT,
  2728. eInlineUniformBlockEXT = VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT,
  2729. eAccelerationStructureNV = VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV
  2730. };
  2731. VULKAN_HPP_INLINE std::string to_string( DescriptorType value )
  2732. {
  2733. switch ( value )
  2734. {
  2735. case DescriptorType::eSampler : return "Sampler";
  2736. case DescriptorType::eCombinedImageSampler : return "CombinedImageSampler";
  2737. case DescriptorType::eSampledImage : return "SampledImage";
  2738. case DescriptorType::eStorageImage : return "StorageImage";
  2739. case DescriptorType::eUniformTexelBuffer : return "UniformTexelBuffer";
  2740. case DescriptorType::eStorageTexelBuffer : return "StorageTexelBuffer";
  2741. case DescriptorType::eUniformBuffer : return "UniformBuffer";
  2742. case DescriptorType::eStorageBuffer : return "StorageBuffer";
  2743. case DescriptorType::eUniformBufferDynamic : return "UniformBufferDynamic";
  2744. case DescriptorType::eStorageBufferDynamic : return "StorageBufferDynamic";
  2745. case DescriptorType::eInputAttachment : return "InputAttachment";
  2746. case DescriptorType::eInlineUniformBlockEXT : return "InlineUniformBlockEXT";
  2747. case DescriptorType::eAccelerationStructureNV : return "AccelerationStructureNV";
  2748. default: return "invalid";
  2749. }
  2750. }
  2751. enum class DescriptorUpdateTemplateType
  2752. {
  2753. eDescriptorSet = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
  2754. ePushDescriptorsKHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR,
  2755. eDescriptorSetKHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR
  2756. };
  2757. VULKAN_HPP_INLINE std::string to_string( DescriptorUpdateTemplateType value )
  2758. {
  2759. switch ( value )
  2760. {
  2761. case DescriptorUpdateTemplateType::eDescriptorSet : return "DescriptorSet";
  2762. case DescriptorUpdateTemplateType::ePushDescriptorsKHR : return "PushDescriptorsKHR";
  2763. default: return "invalid";
  2764. }
  2765. }
  2766. enum class DeviceEventTypeEXT
  2767. {
  2768. eDisplayHotplug = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT
  2769. };
  2770. VULKAN_HPP_INLINE std::string to_string( DeviceEventTypeEXT value )
  2771. {
  2772. switch ( value )
  2773. {
  2774. case DeviceEventTypeEXT::eDisplayHotplug : return "DisplayHotplug";
  2775. default: return "invalid";
  2776. }
  2777. }
  2778. enum class DiscardRectangleModeEXT
  2779. {
  2780. eInclusive = VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT,
  2781. eExclusive = VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT
  2782. };
  2783. VULKAN_HPP_INLINE std::string to_string( DiscardRectangleModeEXT value )
  2784. {
  2785. switch ( value )
  2786. {
  2787. case DiscardRectangleModeEXT::eInclusive : return "Inclusive";
  2788. case DiscardRectangleModeEXT::eExclusive : return "Exclusive";
  2789. default: return "invalid";
  2790. }
  2791. }
  2792. enum class DisplayEventTypeEXT
  2793. {
  2794. eFirstPixelOut = VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT
  2795. };
  2796. VULKAN_HPP_INLINE std::string to_string( DisplayEventTypeEXT value )
  2797. {
  2798. switch ( value )
  2799. {
  2800. case DisplayEventTypeEXT::eFirstPixelOut : return "FirstPixelOut";
  2801. default: return "invalid";
  2802. }
  2803. }
  2804. enum class DisplayPowerStateEXT
  2805. {
  2806. eOff = VK_DISPLAY_POWER_STATE_OFF_EXT,
  2807. eSuspend = VK_DISPLAY_POWER_STATE_SUSPEND_EXT,
  2808. eOn = VK_DISPLAY_POWER_STATE_ON_EXT
  2809. };
  2810. VULKAN_HPP_INLINE std::string to_string( DisplayPowerStateEXT value )
  2811. {
  2812. switch ( value )
  2813. {
  2814. case DisplayPowerStateEXT::eOff : return "Off";
  2815. case DisplayPowerStateEXT::eSuspend : return "Suspend";
  2816. case DisplayPowerStateEXT::eOn : return "On";
  2817. default: return "invalid";
  2818. }
  2819. }
  2820. enum class DriverIdKHR
  2821. {
  2822. eAmdProprietary = VK_DRIVER_ID_AMD_PROPRIETARY_KHR,
  2823. eAmdOpenSource = VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR,
  2824. eMesaRadv = VK_DRIVER_ID_MESA_RADV_KHR,
  2825. eNvidiaProprietary = VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR,
  2826. eIntelProprietaryWindows = VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR,
  2827. eIntelOpenSourceMESA = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR,
  2828. eImaginationProprietary = VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR,
  2829. eQualcommProprietary = VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR,
  2830. eArmProprietary = VK_DRIVER_ID_ARM_PROPRIETARY_KHR,
  2831. eGoogleSwiftshader = VK_DRIVER_ID_GOOGLE_SWIFTSHADER_KHR,
  2832. eGgpProprietary = VK_DRIVER_ID_GGP_PROPRIETARY_KHR,
  2833. eBroadcomProprietary = VK_DRIVER_ID_BROADCOM_PROPRIETARY_KHR
  2834. };
  2835. VULKAN_HPP_INLINE std::string to_string( DriverIdKHR value )
  2836. {
  2837. switch ( value )
  2838. {
  2839. case DriverIdKHR::eAmdProprietary : return "AmdProprietary";
  2840. case DriverIdKHR::eAmdOpenSource : return "AmdOpenSource";
  2841. case DriverIdKHR::eMesaRadv : return "MesaRadv";
  2842. case DriverIdKHR::eNvidiaProprietary : return "NvidiaProprietary";
  2843. case DriverIdKHR::eIntelProprietaryWindows : return "IntelProprietaryWindows";
  2844. case DriverIdKHR::eIntelOpenSourceMESA : return "IntelOpenSourceMESA";
  2845. case DriverIdKHR::eImaginationProprietary : return "ImaginationProprietary";
  2846. case DriverIdKHR::eQualcommProprietary : return "QualcommProprietary";
  2847. case DriverIdKHR::eArmProprietary : return "ArmProprietary";
  2848. case DriverIdKHR::eGoogleSwiftshader : return "GoogleSwiftshader";
  2849. case DriverIdKHR::eGgpProprietary : return "GgpProprietary";
  2850. case DriverIdKHR::eBroadcomProprietary : return "BroadcomProprietary";
  2851. default: return "invalid";
  2852. }
  2853. }
  2854. enum class DynamicState
  2855. {
  2856. eViewport = VK_DYNAMIC_STATE_VIEWPORT,
  2857. eScissor = VK_DYNAMIC_STATE_SCISSOR,
  2858. eLineWidth = VK_DYNAMIC_STATE_LINE_WIDTH,
  2859. eDepthBias = VK_DYNAMIC_STATE_DEPTH_BIAS,
  2860. eBlendConstants = VK_DYNAMIC_STATE_BLEND_CONSTANTS,
  2861. eDepthBounds = VK_DYNAMIC_STATE_DEPTH_BOUNDS,
  2862. eStencilCompareMask = VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK,
  2863. eStencilWriteMask = VK_DYNAMIC_STATE_STENCIL_WRITE_MASK,
  2864. eStencilReference = VK_DYNAMIC_STATE_STENCIL_REFERENCE,
  2865. eViewportWScalingNV = VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV,
  2866. eDiscardRectangleEXT = VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT,
  2867. eSampleLocationsEXT = VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT,
  2868. eViewportShadingRatePaletteNV = VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV,
  2869. eViewportCoarseSampleOrderNV = VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV,
  2870. eExclusiveScissorNV = VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV
  2871. };
  2872. VULKAN_HPP_INLINE std::string to_string( DynamicState value )
  2873. {
  2874. switch ( value )
  2875. {
  2876. case DynamicState::eViewport : return "Viewport";
  2877. case DynamicState::eScissor : return "Scissor";
  2878. case DynamicState::eLineWidth : return "LineWidth";
  2879. case DynamicState::eDepthBias : return "DepthBias";
  2880. case DynamicState::eBlendConstants : return "BlendConstants";
  2881. case DynamicState::eDepthBounds : return "DepthBounds";
  2882. case DynamicState::eStencilCompareMask : return "StencilCompareMask";
  2883. case DynamicState::eStencilWriteMask : return "StencilWriteMask";
  2884. case DynamicState::eStencilReference : return "StencilReference";
  2885. case DynamicState::eViewportWScalingNV : return "ViewportWScalingNV";
  2886. case DynamicState::eDiscardRectangleEXT : return "DiscardRectangleEXT";
  2887. case DynamicState::eSampleLocationsEXT : return "SampleLocationsEXT";
  2888. case DynamicState::eViewportShadingRatePaletteNV : return "ViewportShadingRatePaletteNV";
  2889. case DynamicState::eViewportCoarseSampleOrderNV : return "ViewportCoarseSampleOrderNV";
  2890. case DynamicState::eExclusiveScissorNV : return "ExclusiveScissorNV";
  2891. default: return "invalid";
  2892. }
  2893. }
  2894. enum class Filter
  2895. {
  2896. eNearest = VK_FILTER_NEAREST,
  2897. eLinear = VK_FILTER_LINEAR,
  2898. eCubicIMG = VK_FILTER_CUBIC_IMG,
  2899. eCubicEXT = VK_FILTER_CUBIC_EXT
  2900. };
  2901. VULKAN_HPP_INLINE std::string to_string( Filter value )
  2902. {
  2903. switch ( value )
  2904. {
  2905. case Filter::eNearest : return "Nearest";
  2906. case Filter::eLinear : return "Linear";
  2907. case Filter::eCubicIMG : return "CubicIMG";
  2908. default: return "invalid";
  2909. }
  2910. }
  2911. enum class Format
  2912. {
  2913. eUndefined = VK_FORMAT_UNDEFINED,
  2914. eR4G4UnormPack8 = VK_FORMAT_R4G4_UNORM_PACK8,
  2915. eR4G4B4A4UnormPack16 = VK_FORMAT_R4G4B4A4_UNORM_PACK16,
  2916. eB4G4R4A4UnormPack16 = VK_FORMAT_B4G4R4A4_UNORM_PACK16,
  2917. eR5G6B5UnormPack16 = VK_FORMAT_R5G6B5_UNORM_PACK16,
  2918. eB5G6R5UnormPack16 = VK_FORMAT_B5G6R5_UNORM_PACK16,
  2919. eR5G5B5A1UnormPack16 = VK_FORMAT_R5G5B5A1_UNORM_PACK16,
  2920. eB5G5R5A1UnormPack16 = VK_FORMAT_B5G5R5A1_UNORM_PACK16,
  2921. eA1R5G5B5UnormPack16 = VK_FORMAT_A1R5G5B5_UNORM_PACK16,
  2922. eR8Unorm = VK_FORMAT_R8_UNORM,
  2923. eR8Snorm = VK_FORMAT_R8_SNORM,
  2924. eR8Uscaled = VK_FORMAT_R8_USCALED,
  2925. eR8Sscaled = VK_FORMAT_R8_SSCALED,
  2926. eR8Uint = VK_FORMAT_R8_UINT,
  2927. eR8Sint = VK_FORMAT_R8_SINT,
  2928. eR8Srgb = VK_FORMAT_R8_SRGB,
  2929. eR8G8Unorm = VK_FORMAT_R8G8_UNORM,
  2930. eR8G8Snorm = VK_FORMAT_R8G8_SNORM,
  2931. eR8G8Uscaled = VK_FORMAT_R8G8_USCALED,
  2932. eR8G8Sscaled = VK_FORMAT_R8G8_SSCALED,
  2933. eR8G8Uint = VK_FORMAT_R8G8_UINT,
  2934. eR8G8Sint = VK_FORMAT_R8G8_SINT,
  2935. eR8G8Srgb = VK_FORMAT_R8G8_SRGB,
  2936. eR8G8B8Unorm = VK_FORMAT_R8G8B8_UNORM,
  2937. eR8G8B8Snorm = VK_FORMAT_R8G8B8_SNORM,
  2938. eR8G8B8Uscaled = VK_FORMAT_R8G8B8_USCALED,
  2939. eR8G8B8Sscaled = VK_FORMAT_R8G8B8_SSCALED,
  2940. eR8G8B8Uint = VK_FORMAT_R8G8B8_UINT,
  2941. eR8G8B8Sint = VK_FORMAT_R8G8B8_SINT,
  2942. eR8G8B8Srgb = VK_FORMAT_R8G8B8_SRGB,
  2943. eB8G8R8Unorm = VK_FORMAT_B8G8R8_UNORM,
  2944. eB8G8R8Snorm = VK_FORMAT_B8G8R8_SNORM,
  2945. eB8G8R8Uscaled = VK_FORMAT_B8G8R8_USCALED,
  2946. eB8G8R8Sscaled = VK_FORMAT_B8G8R8_SSCALED,
  2947. eB8G8R8Uint = VK_FORMAT_B8G8R8_UINT,
  2948. eB8G8R8Sint = VK_FORMAT_B8G8R8_SINT,
  2949. eB8G8R8Srgb = VK_FORMAT_B8G8R8_SRGB,
  2950. eR8G8B8A8Unorm = VK_FORMAT_R8G8B8A8_UNORM,
  2951. eR8G8B8A8Snorm = VK_FORMAT_R8G8B8A8_SNORM,
  2952. eR8G8B8A8Uscaled = VK_FORMAT_R8G8B8A8_USCALED,
  2953. eR8G8B8A8Sscaled = VK_FORMAT_R8G8B8A8_SSCALED,
  2954. eR8G8B8A8Uint = VK_FORMAT_R8G8B8A8_UINT,
  2955. eR8G8B8A8Sint = VK_FORMAT_R8G8B8A8_SINT,
  2956. eR8G8B8A8Srgb = VK_FORMAT_R8G8B8A8_SRGB,
  2957. eB8G8R8A8Unorm = VK_FORMAT_B8G8R8A8_UNORM,
  2958. eB8G8R8A8Snorm = VK_FORMAT_B8G8R8A8_SNORM,
  2959. eB8G8R8A8Uscaled = VK_FORMAT_B8G8R8A8_USCALED,
  2960. eB8G8R8A8Sscaled = VK_FORMAT_B8G8R8A8_SSCALED,
  2961. eB8G8R8A8Uint = VK_FORMAT_B8G8R8A8_UINT,
  2962. eB8G8R8A8Sint = VK_FORMAT_B8G8R8A8_SINT,
  2963. eB8G8R8A8Srgb = VK_FORMAT_B8G8R8A8_SRGB,
  2964. eA8B8G8R8UnormPack32 = VK_FORMAT_A8B8G8R8_UNORM_PACK32,
  2965. eA8B8G8R8SnormPack32 = VK_FORMAT_A8B8G8R8_SNORM_PACK32,
  2966. eA8B8G8R8UscaledPack32 = VK_FORMAT_A8B8G8R8_USCALED_PACK32,
  2967. eA8B8G8R8SscaledPack32 = VK_FORMAT_A8B8G8R8_SSCALED_PACK32,
  2968. eA8B8G8R8UintPack32 = VK_FORMAT_A8B8G8R8_UINT_PACK32,
  2969. eA8B8G8R8SintPack32 = VK_FORMAT_A8B8G8R8_SINT_PACK32,
  2970. eA8B8G8R8SrgbPack32 = VK_FORMAT_A8B8G8R8_SRGB_PACK32,
  2971. eA2R10G10B10UnormPack32 = VK_FORMAT_A2R10G10B10_UNORM_PACK32,
  2972. eA2R10G10B10SnormPack32 = VK_FORMAT_A2R10G10B10_SNORM_PACK32,
  2973. eA2R10G10B10UscaledPack32 = VK_FORMAT_A2R10G10B10_USCALED_PACK32,
  2974. eA2R10G10B10SscaledPack32 = VK_FORMAT_A2R10G10B10_SSCALED_PACK32,
  2975. eA2R10G10B10UintPack32 = VK_FORMAT_A2R10G10B10_UINT_PACK32,
  2976. eA2R10G10B10SintPack32 = VK_FORMAT_A2R10G10B10_SINT_PACK32,
  2977. eA2B10G10R10UnormPack32 = VK_FORMAT_A2B10G10R10_UNORM_PACK32,
  2978. eA2B10G10R10SnormPack32 = VK_FORMAT_A2B10G10R10_SNORM_PACK32,
  2979. eA2B10G10R10UscaledPack32 = VK_FORMAT_A2B10G10R10_USCALED_PACK32,
  2980. eA2B10G10R10SscaledPack32 = VK_FORMAT_A2B10G10R10_SSCALED_PACK32,
  2981. eA2B10G10R10UintPack32 = VK_FORMAT_A2B10G10R10_UINT_PACK32,
  2982. eA2B10G10R10SintPack32 = VK_FORMAT_A2B10G10R10_SINT_PACK32,
  2983. eR16Unorm = VK_FORMAT_R16_UNORM,
  2984. eR16Snorm = VK_FORMAT_R16_SNORM,
  2985. eR16Uscaled = VK_FORMAT_R16_USCALED,
  2986. eR16Sscaled = VK_FORMAT_R16_SSCALED,
  2987. eR16Uint = VK_FORMAT_R16_UINT,
  2988. eR16Sint = VK_FORMAT_R16_SINT,
  2989. eR16Sfloat = VK_FORMAT_R16_SFLOAT,
  2990. eR16G16Unorm = VK_FORMAT_R16G16_UNORM,
  2991. eR16G16Snorm = VK_FORMAT_R16G16_SNORM,
  2992. eR16G16Uscaled = VK_FORMAT_R16G16_USCALED,
  2993. eR16G16Sscaled = VK_FORMAT_R16G16_SSCALED,
  2994. eR16G16Uint = VK_FORMAT_R16G16_UINT,
  2995. eR16G16Sint = VK_FORMAT_R16G16_SINT,
  2996. eR16G16Sfloat = VK_FORMAT_R16G16_SFLOAT,
  2997. eR16G16B16Unorm = VK_FORMAT_R16G16B16_UNORM,
  2998. eR16G16B16Snorm = VK_FORMAT_R16G16B16_SNORM,
  2999. eR16G16B16Uscaled = VK_FORMAT_R16G16B16_USCALED,
  3000. eR16G16B16Sscaled = VK_FORMAT_R16G16B16_SSCALED,
  3001. eR16G16B16Uint = VK_FORMAT_R16G16B16_UINT,
  3002. eR16G16B16Sint = VK_FORMAT_R16G16B16_SINT,
  3003. eR16G16B16Sfloat = VK_FORMAT_R16G16B16_SFLOAT,
  3004. eR16G16B16A16Unorm = VK_FORMAT_R16G16B16A16_UNORM,
  3005. eR16G16B16A16Snorm = VK_FORMAT_R16G16B16A16_SNORM,
  3006. eR16G16B16A16Uscaled = VK_FORMAT_R16G16B16A16_USCALED,
  3007. eR16G16B16A16Sscaled = VK_FORMAT_R16G16B16A16_SSCALED,
  3008. eR16G16B16A16Uint = VK_FORMAT_R16G16B16A16_UINT,
  3009. eR16G16B16A16Sint = VK_FORMAT_R16G16B16A16_SINT,
  3010. eR16G16B16A16Sfloat = VK_FORMAT_R16G16B16A16_SFLOAT,
  3011. eR32Uint = VK_FORMAT_R32_UINT,
  3012. eR32Sint = VK_FORMAT_R32_SINT,
  3013. eR32Sfloat = VK_FORMAT_R32_SFLOAT,
  3014. eR32G32Uint = VK_FORMAT_R32G32_UINT,
  3015. eR32G32Sint = VK_FORMAT_R32G32_SINT,
  3016. eR32G32Sfloat = VK_FORMAT_R32G32_SFLOAT,
  3017. eR32G32B32Uint = VK_FORMAT_R32G32B32_UINT,
  3018. eR32G32B32Sint = VK_FORMAT_R32G32B32_SINT,
  3019. eR32G32B32Sfloat = VK_FORMAT_R32G32B32_SFLOAT,
  3020. eR32G32B32A32Uint = VK_FORMAT_R32G32B32A32_UINT,
  3021. eR32G32B32A32Sint = VK_FORMAT_R32G32B32A32_SINT,
  3022. eR32G32B32A32Sfloat = VK_FORMAT_R32G32B32A32_SFLOAT,
  3023. eR64Uint = VK_FORMAT_R64_UINT,
  3024. eR64Sint = VK_FORMAT_R64_SINT,
  3025. eR64Sfloat = VK_FORMAT_R64_SFLOAT,
  3026. eR64G64Uint = VK_FORMAT_R64G64_UINT,
  3027. eR64G64Sint = VK_FORMAT_R64G64_SINT,
  3028. eR64G64Sfloat = VK_FORMAT_R64G64_SFLOAT,
  3029. eR64G64B64Uint = VK_FORMAT_R64G64B64_UINT,
  3030. eR64G64B64Sint = VK_FORMAT_R64G64B64_SINT,
  3031. eR64G64B64Sfloat = VK_FORMAT_R64G64B64_SFLOAT,
  3032. eR64G64B64A64Uint = VK_FORMAT_R64G64B64A64_UINT,
  3033. eR64G64B64A64Sint = VK_FORMAT_R64G64B64A64_SINT,
  3034. eR64G64B64A64Sfloat = VK_FORMAT_R64G64B64A64_SFLOAT,
  3035. eB10G11R11UfloatPack32 = VK_FORMAT_B10G11R11_UFLOAT_PACK32,
  3036. eE5B9G9R9UfloatPack32 = VK_FORMAT_E5B9G9R9_UFLOAT_PACK32,
  3037. eD16Unorm = VK_FORMAT_D16_UNORM,
  3038. eX8D24UnormPack32 = VK_FORMAT_X8_D24_UNORM_PACK32,
  3039. eD32Sfloat = VK_FORMAT_D32_SFLOAT,
  3040. eS8Uint = VK_FORMAT_S8_UINT,
  3041. eD16UnormS8Uint = VK_FORMAT_D16_UNORM_S8_UINT,
  3042. eD24UnormS8Uint = VK_FORMAT_D24_UNORM_S8_UINT,
  3043. eD32SfloatS8Uint = VK_FORMAT_D32_SFLOAT_S8_UINT,
  3044. eBc1RgbUnormBlock = VK_FORMAT_BC1_RGB_UNORM_BLOCK,
  3045. eBc1RgbSrgbBlock = VK_FORMAT_BC1_RGB_SRGB_BLOCK,
  3046. eBc1RgbaUnormBlock = VK_FORMAT_BC1_RGBA_UNORM_BLOCK,
  3047. eBc1RgbaSrgbBlock = VK_FORMAT_BC1_RGBA_SRGB_BLOCK,
  3048. eBc2UnormBlock = VK_FORMAT_BC2_UNORM_BLOCK,
  3049. eBc2SrgbBlock = VK_FORMAT_BC2_SRGB_BLOCK,
  3050. eBc3UnormBlock = VK_FORMAT_BC3_UNORM_BLOCK,
  3051. eBc3SrgbBlock = VK_FORMAT_BC3_SRGB_BLOCK,
  3052. eBc4UnormBlock = VK_FORMAT_BC4_UNORM_BLOCK,
  3053. eBc4SnormBlock = VK_FORMAT_BC4_SNORM_BLOCK,
  3054. eBc5UnormBlock = VK_FORMAT_BC5_UNORM_BLOCK,
  3055. eBc5SnormBlock = VK_FORMAT_BC5_SNORM_BLOCK,
  3056. eBc6HUfloatBlock = VK_FORMAT_BC6H_UFLOAT_BLOCK,
  3057. eBc6HSfloatBlock = VK_FORMAT_BC6H_SFLOAT_BLOCK,
  3058. eBc7UnormBlock = VK_FORMAT_BC7_UNORM_BLOCK,
  3059. eBc7SrgbBlock = VK_FORMAT_BC7_SRGB_BLOCK,
  3060. eEtc2R8G8B8UnormBlock = VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK,
  3061. eEtc2R8G8B8SrgbBlock = VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK,
  3062. eEtc2R8G8B8A1UnormBlock = VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK,
  3063. eEtc2R8G8B8A1SrgbBlock = VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK,
  3064. eEtc2R8G8B8A8UnormBlock = VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK,
  3065. eEtc2R8G8B8A8SrgbBlock = VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK,
  3066. eEacR11UnormBlock = VK_FORMAT_EAC_R11_UNORM_BLOCK,
  3067. eEacR11SnormBlock = VK_FORMAT_EAC_R11_SNORM_BLOCK,
  3068. eEacR11G11UnormBlock = VK_FORMAT_EAC_R11G11_UNORM_BLOCK,
  3069. eEacR11G11SnormBlock = VK_FORMAT_EAC_R11G11_SNORM_BLOCK,
  3070. eAstc4x4UnormBlock = VK_FORMAT_ASTC_4x4_UNORM_BLOCK,
  3071. eAstc4x4SrgbBlock = VK_FORMAT_ASTC_4x4_SRGB_BLOCK,
  3072. eAstc5x4UnormBlock = VK_FORMAT_ASTC_5x4_UNORM_BLOCK,
  3073. eAstc5x4SrgbBlock = VK_FORMAT_ASTC_5x4_SRGB_BLOCK,
  3074. eAstc5x5UnormBlock = VK_FORMAT_ASTC_5x5_UNORM_BLOCK,
  3075. eAstc5x5SrgbBlock = VK_FORMAT_ASTC_5x5_SRGB_BLOCK,
  3076. eAstc6x5UnormBlock = VK_FORMAT_ASTC_6x5_UNORM_BLOCK,
  3077. eAstc6x5SrgbBlock = VK_FORMAT_ASTC_6x5_SRGB_BLOCK,
  3078. eAstc6x6UnormBlock = VK_FORMAT_ASTC_6x6_UNORM_BLOCK,
  3079. eAstc6x6SrgbBlock = VK_FORMAT_ASTC_6x6_SRGB_BLOCK,
  3080. eAstc8x5UnormBlock = VK_FORMAT_ASTC_8x5_UNORM_BLOCK,
  3081. eAstc8x5SrgbBlock = VK_FORMAT_ASTC_8x5_SRGB_BLOCK,
  3082. eAstc8x6UnormBlock = VK_FORMAT_ASTC_8x6_UNORM_BLOCK,
  3083. eAstc8x6SrgbBlock = VK_FORMAT_ASTC_8x6_SRGB_BLOCK,
  3084. eAstc8x8UnormBlock = VK_FORMAT_ASTC_8x8_UNORM_BLOCK,
  3085. eAstc8x8SrgbBlock = VK_FORMAT_ASTC_8x8_SRGB_BLOCK,
  3086. eAstc10x5UnormBlock = VK_FORMAT_ASTC_10x5_UNORM_BLOCK,
  3087. eAstc10x5SrgbBlock = VK_FORMAT_ASTC_10x5_SRGB_BLOCK,
  3088. eAstc10x6UnormBlock = VK_FORMAT_ASTC_10x6_UNORM_BLOCK,
  3089. eAstc10x6SrgbBlock = VK_FORMAT_ASTC_10x6_SRGB_BLOCK,
  3090. eAstc10x8UnormBlock = VK_FORMAT_ASTC_10x8_UNORM_BLOCK,
  3091. eAstc10x8SrgbBlock = VK_FORMAT_ASTC_10x8_SRGB_BLOCK,
  3092. eAstc10x10UnormBlock = VK_FORMAT_ASTC_10x10_UNORM_BLOCK,
  3093. eAstc10x10SrgbBlock = VK_FORMAT_ASTC_10x10_SRGB_BLOCK,
  3094. eAstc12x10UnormBlock = VK_FORMAT_ASTC_12x10_UNORM_BLOCK,
  3095. eAstc12x10SrgbBlock = VK_FORMAT_ASTC_12x10_SRGB_BLOCK,
  3096. eAstc12x12UnormBlock = VK_FORMAT_ASTC_12x12_UNORM_BLOCK,
  3097. eAstc12x12SrgbBlock = VK_FORMAT_ASTC_12x12_SRGB_BLOCK,
  3098. eG8B8G8R8422Unorm = VK_FORMAT_G8B8G8R8_422_UNORM,
  3099. eB8G8R8G8422Unorm = VK_FORMAT_B8G8R8G8_422_UNORM,
  3100. eG8B8R83Plane420Unorm = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM,
  3101. eG8B8R82Plane420Unorm = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM,
  3102. eG8B8R83Plane422Unorm = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM,
  3103. eG8B8R82Plane422Unorm = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM,
  3104. eG8B8R83Plane444Unorm = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM,
  3105. eR10X6UnormPack16 = VK_FORMAT_R10X6_UNORM_PACK16,
  3106. eR10X6G10X6Unorm2Pack16 = VK_FORMAT_R10X6G10X6_UNORM_2PACK16,
  3107. eR10X6G10X6B10X6A10X6Unorm4Pack16 = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16,
  3108. eG10X6B10X6G10X6R10X6422Unorm4Pack16 = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16,
  3109. eB10X6G10X6R10X6G10X6422Unorm4Pack16 = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16,
  3110. eG10X6B10X6R10X63Plane420Unorm3Pack16 = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16,
  3111. eG10X6B10X6R10X62Plane420Unorm3Pack16 = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16,
  3112. eG10X6B10X6R10X63Plane422Unorm3Pack16 = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16,
  3113. eG10X6B10X6R10X62Plane422Unorm3Pack16 = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16,
  3114. eG10X6B10X6R10X63Plane444Unorm3Pack16 = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16,
  3115. eR12X4UnormPack16 = VK_FORMAT_R12X4_UNORM_PACK16,
  3116. eR12X4G12X4Unorm2Pack16 = VK_FORMAT_R12X4G12X4_UNORM_2PACK16,
  3117. eR12X4G12X4B12X4A12X4Unorm4Pack16 = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16,
  3118. eG12X4B12X4G12X4R12X4422Unorm4Pack16 = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16,
  3119. eB12X4G12X4R12X4G12X4422Unorm4Pack16 = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16,
  3120. eG12X4B12X4R12X43Plane420Unorm3Pack16 = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16,
  3121. eG12X4B12X4R12X42Plane420Unorm3Pack16 = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16,
  3122. eG12X4B12X4R12X43Plane422Unorm3Pack16 = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16,
  3123. eG12X4B12X4R12X42Plane422Unorm3Pack16 = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16,
  3124. eG12X4B12X4R12X43Plane444Unorm3Pack16 = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16,
  3125. eG16B16G16R16422Unorm = VK_FORMAT_G16B16G16R16_422_UNORM,
  3126. eB16G16R16G16422Unorm = VK_FORMAT_B16G16R16G16_422_UNORM,
  3127. eG16B16R163Plane420Unorm = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM,
  3128. eG16B16R162Plane420Unorm = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM,
  3129. eG16B16R163Plane422Unorm = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM,
  3130. eG16B16R162Plane422Unorm = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM,
  3131. eG16B16R163Plane444Unorm = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM,
  3132. ePvrtc12BppUnormBlockIMG = VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG,
  3133. ePvrtc14BppUnormBlockIMG = VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG,
  3134. ePvrtc22BppUnormBlockIMG = VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG,
  3135. ePvrtc24BppUnormBlockIMG = VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG,
  3136. ePvrtc12BppSrgbBlockIMG = VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG,
  3137. ePvrtc14BppSrgbBlockIMG = VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG,
  3138. ePvrtc22BppSrgbBlockIMG = VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG,
  3139. ePvrtc24BppSrgbBlockIMG = VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG,
  3140. eG8B8G8R8422UnormKHR = VK_FORMAT_G8B8G8R8_422_UNORM_KHR,
  3141. eB8G8R8G8422UnormKHR = VK_FORMAT_B8G8R8G8_422_UNORM_KHR,
  3142. eG8B8R83Plane420UnormKHR = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR,
  3143. eG8B8R82Plane420UnormKHR = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR,
  3144. eG8B8R83Plane422UnormKHR = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR,
  3145. eG8B8R82Plane422UnormKHR = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR,
  3146. eG8B8R83Plane444UnormKHR = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR,
  3147. eR10X6UnormPack16KHR = VK_FORMAT_R10X6_UNORM_PACK16_KHR,
  3148. eR10X6G10X6Unorm2Pack16KHR = VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR,
  3149. eR10X6G10X6B10X6A10X6Unorm4Pack16KHR = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR,
  3150. eG10X6B10X6G10X6R10X6422Unorm4Pack16KHR = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR,
  3151. eB10X6G10X6R10X6G10X6422Unorm4Pack16KHR = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR,
  3152. eG10X6B10X6R10X63Plane420Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR,
  3153. eG10X6B10X6R10X62Plane420Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR,
  3154. eG10X6B10X6R10X63Plane422Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR,
  3155. eG10X6B10X6R10X62Plane422Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR,
  3156. eG10X6B10X6R10X63Plane444Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR,
  3157. eR12X4UnormPack16KHR = VK_FORMAT_R12X4_UNORM_PACK16_KHR,
  3158. eR12X4G12X4Unorm2Pack16KHR = VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR,
  3159. eR12X4G12X4B12X4A12X4Unorm4Pack16KHR = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR,
  3160. eG12X4B12X4G12X4R12X4422Unorm4Pack16KHR = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR,
  3161. eB12X4G12X4R12X4G12X4422Unorm4Pack16KHR = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR,
  3162. eG12X4B12X4R12X43Plane420Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR,
  3163. eG12X4B12X4R12X42Plane420Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR,
  3164. eG12X4B12X4R12X43Plane422Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR,
  3165. eG12X4B12X4R12X42Plane422Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR,
  3166. eG12X4B12X4R12X43Plane444Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR,
  3167. eG16B16G16R16422UnormKHR = VK_FORMAT_G16B16G16R16_422_UNORM_KHR,
  3168. eB16G16R16G16422UnormKHR = VK_FORMAT_B16G16R16G16_422_UNORM_KHR,
  3169. eG16B16R163Plane420UnormKHR = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR,
  3170. eG16B16R162Plane420UnormKHR = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR,
  3171. eG16B16R163Plane422UnormKHR = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR,
  3172. eG16B16R162Plane422UnormKHR = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR,
  3173. eG16B16R163Plane444UnormKHR = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR
  3174. };
  3175. VULKAN_HPP_INLINE std::string to_string( Format value )
  3176. {
  3177. switch ( value )
  3178. {
  3179. case Format::eUndefined : return "Undefined";
  3180. case Format::eR4G4UnormPack8 : return "R4G4UnormPack8";
  3181. case Format::eR4G4B4A4UnormPack16 : return "R4G4B4A4UnormPack16";
  3182. case Format::eB4G4R4A4UnormPack16 : return "B4G4R4A4UnormPack16";
  3183. case Format::eR5G6B5UnormPack16 : return "R5G6B5UnormPack16";
  3184. case Format::eB5G6R5UnormPack16 : return "B5G6R5UnormPack16";
  3185. case Format::eR5G5B5A1UnormPack16 : return "R5G5B5A1UnormPack16";
  3186. case Format::eB5G5R5A1UnormPack16 : return "B5G5R5A1UnormPack16";
  3187. case Format::eA1R5G5B5UnormPack16 : return "A1R5G5B5UnormPack16";
  3188. case Format::eR8Unorm : return "R8Unorm";
  3189. case Format::eR8Snorm : return "R8Snorm";
  3190. case Format::eR8Uscaled : return "R8Uscaled";
  3191. case Format::eR8Sscaled : return "R8Sscaled";
  3192. case Format::eR8Uint : return "R8Uint";
  3193. case Format::eR8Sint : return "R8Sint";
  3194. case Format::eR8Srgb : return "R8Srgb";
  3195. case Format::eR8G8Unorm : return "R8G8Unorm";
  3196. case Format::eR8G8Snorm : return "R8G8Snorm";
  3197. case Format::eR8G8Uscaled : return "R8G8Uscaled";
  3198. case Format::eR8G8Sscaled : return "R8G8Sscaled";
  3199. case Format::eR8G8Uint : return "R8G8Uint";
  3200. case Format::eR8G8Sint : return "R8G8Sint";
  3201. case Format::eR8G8Srgb : return "R8G8Srgb";
  3202. case Format::eR8G8B8Unorm : return "R8G8B8Unorm";
  3203. case Format::eR8G8B8Snorm : return "R8G8B8Snorm";
  3204. case Format::eR8G8B8Uscaled : return "R8G8B8Uscaled";
  3205. case Format::eR8G8B8Sscaled : return "R8G8B8Sscaled";
  3206. case Format::eR8G8B8Uint : return "R8G8B8Uint";
  3207. case Format::eR8G8B8Sint : return "R8G8B8Sint";
  3208. case Format::eR8G8B8Srgb : return "R8G8B8Srgb";
  3209. case Format::eB8G8R8Unorm : return "B8G8R8Unorm";
  3210. case Format::eB8G8R8Snorm : return "B8G8R8Snorm";
  3211. case Format::eB8G8R8Uscaled : return "B8G8R8Uscaled";
  3212. case Format::eB8G8R8Sscaled : return "B8G8R8Sscaled";
  3213. case Format::eB8G8R8Uint : return "B8G8R8Uint";
  3214. case Format::eB8G8R8Sint : return "B8G8R8Sint";
  3215. case Format::eB8G8R8Srgb : return "B8G8R8Srgb";
  3216. case Format::eR8G8B8A8Unorm : return "R8G8B8A8Unorm";
  3217. case Format::eR8G8B8A8Snorm : return "R8G8B8A8Snorm";
  3218. case Format::eR8G8B8A8Uscaled : return "R8G8B8A8Uscaled";
  3219. case Format::eR8G8B8A8Sscaled : return "R8G8B8A8Sscaled";
  3220. case Format::eR8G8B8A8Uint : return "R8G8B8A8Uint";
  3221. case Format::eR8G8B8A8Sint : return "R8G8B8A8Sint";
  3222. case Format::eR8G8B8A8Srgb : return "R8G8B8A8Srgb";
  3223. case Format::eB8G8R8A8Unorm : return "B8G8R8A8Unorm";
  3224. case Format::eB8G8R8A8Snorm : return "B8G8R8A8Snorm";
  3225. case Format::eB8G8R8A8Uscaled : return "B8G8R8A8Uscaled";
  3226. case Format::eB8G8R8A8Sscaled : return "B8G8R8A8Sscaled";
  3227. case Format::eB8G8R8A8Uint : return "B8G8R8A8Uint";
  3228. case Format::eB8G8R8A8Sint : return "B8G8R8A8Sint";
  3229. case Format::eB8G8R8A8Srgb : return "B8G8R8A8Srgb";
  3230. case Format::eA8B8G8R8UnormPack32 : return "A8B8G8R8UnormPack32";
  3231. case Format::eA8B8G8R8SnormPack32 : return "A8B8G8R8SnormPack32";
  3232. case Format::eA8B8G8R8UscaledPack32 : return "A8B8G8R8UscaledPack32";
  3233. case Format::eA8B8G8R8SscaledPack32 : return "A8B8G8R8SscaledPack32";
  3234. case Format::eA8B8G8R8UintPack32 : return "A8B8G8R8UintPack32";
  3235. case Format::eA8B8G8R8SintPack32 : return "A8B8G8R8SintPack32";
  3236. case Format::eA8B8G8R8SrgbPack32 : return "A8B8G8R8SrgbPack32";
  3237. case Format::eA2R10G10B10UnormPack32 : return "A2R10G10B10UnormPack32";
  3238. case Format::eA2R10G10B10SnormPack32 : return "A2R10G10B10SnormPack32";
  3239. case Format::eA2R10G10B10UscaledPack32 : return "A2R10G10B10UscaledPack32";
  3240. case Format::eA2R10G10B10SscaledPack32 : return "A2R10G10B10SscaledPack32";
  3241. case Format::eA2R10G10B10UintPack32 : return "A2R10G10B10UintPack32";
  3242. case Format::eA2R10G10B10SintPack32 : return "A2R10G10B10SintPack32";
  3243. case Format::eA2B10G10R10UnormPack32 : return "A2B10G10R10UnormPack32";
  3244. case Format::eA2B10G10R10SnormPack32 : return "A2B10G10R10SnormPack32";
  3245. case Format::eA2B10G10R10UscaledPack32 : return "A2B10G10R10UscaledPack32";
  3246. case Format::eA2B10G10R10SscaledPack32 : return "A2B10G10R10SscaledPack32";
  3247. case Format::eA2B10G10R10UintPack32 : return "A2B10G10R10UintPack32";
  3248. case Format::eA2B10G10R10SintPack32 : return "A2B10G10R10SintPack32";
  3249. case Format::eR16Unorm : return "R16Unorm";
  3250. case Format::eR16Snorm : return "R16Snorm";
  3251. case Format::eR16Uscaled : return "R16Uscaled";
  3252. case Format::eR16Sscaled : return "R16Sscaled";
  3253. case Format::eR16Uint : return "R16Uint";
  3254. case Format::eR16Sint : return "R16Sint";
  3255. case Format::eR16Sfloat : return "R16Sfloat";
  3256. case Format::eR16G16Unorm : return "R16G16Unorm";
  3257. case Format::eR16G16Snorm : return "R16G16Snorm";
  3258. case Format::eR16G16Uscaled : return "R16G16Uscaled";
  3259. case Format::eR16G16Sscaled : return "R16G16Sscaled";
  3260. case Format::eR16G16Uint : return "R16G16Uint";
  3261. case Format::eR16G16Sint : return "R16G16Sint";
  3262. case Format::eR16G16Sfloat : return "R16G16Sfloat";
  3263. case Format::eR16G16B16Unorm : return "R16G16B16Unorm";
  3264. case Format::eR16G16B16Snorm : return "R16G16B16Snorm";
  3265. case Format::eR16G16B16Uscaled : return "R16G16B16Uscaled";
  3266. case Format::eR16G16B16Sscaled : return "R16G16B16Sscaled";
  3267. case Format::eR16G16B16Uint : return "R16G16B16Uint";
  3268. case Format::eR16G16B16Sint : return "R16G16B16Sint";
  3269. case Format::eR16G16B16Sfloat : return "R16G16B16Sfloat";
  3270. case Format::eR16G16B16A16Unorm : return "R16G16B16A16Unorm";
  3271. case Format::eR16G16B16A16Snorm : return "R16G16B16A16Snorm";
  3272. case Format::eR16G16B16A16Uscaled : return "R16G16B16A16Uscaled";
  3273. case Format::eR16G16B16A16Sscaled : return "R16G16B16A16Sscaled";
  3274. case Format::eR16G16B16A16Uint : return "R16G16B16A16Uint";
  3275. case Format::eR16G16B16A16Sint : return "R16G16B16A16Sint";
  3276. case Format::eR16G16B16A16Sfloat : return "R16G16B16A16Sfloat";
  3277. case Format::eR32Uint : return "R32Uint";
  3278. case Format::eR32Sint : return "R32Sint";
  3279. case Format::eR32Sfloat : return "R32Sfloat";
  3280. case Format::eR32G32Uint : return "R32G32Uint";
  3281. case Format::eR32G32Sint : return "R32G32Sint";
  3282. case Format::eR32G32Sfloat : return "R32G32Sfloat";
  3283. case Format::eR32G32B32Uint : return "R32G32B32Uint";
  3284. case Format::eR32G32B32Sint : return "R32G32B32Sint";
  3285. case Format::eR32G32B32Sfloat : return "R32G32B32Sfloat";
  3286. case Format::eR32G32B32A32Uint : return "R32G32B32A32Uint";
  3287. case Format::eR32G32B32A32Sint : return "R32G32B32A32Sint";
  3288. case Format::eR32G32B32A32Sfloat : return "R32G32B32A32Sfloat";
  3289. case Format::eR64Uint : return "R64Uint";
  3290. case Format::eR64Sint : return "R64Sint";
  3291. case Format::eR64Sfloat : return "R64Sfloat";
  3292. case Format::eR64G64Uint : return "R64G64Uint";
  3293. case Format::eR64G64Sint : return "R64G64Sint";
  3294. case Format::eR64G64Sfloat : return "R64G64Sfloat";
  3295. case Format::eR64G64B64Uint : return "R64G64B64Uint";
  3296. case Format::eR64G64B64Sint : return "R64G64B64Sint";
  3297. case Format::eR64G64B64Sfloat : return "R64G64B64Sfloat";
  3298. case Format::eR64G64B64A64Uint : return "R64G64B64A64Uint";
  3299. case Format::eR64G64B64A64Sint : return "R64G64B64A64Sint";
  3300. case Format::eR64G64B64A64Sfloat : return "R64G64B64A64Sfloat";
  3301. case Format::eB10G11R11UfloatPack32 : return "B10G11R11UfloatPack32";
  3302. case Format::eE5B9G9R9UfloatPack32 : return "E5B9G9R9UfloatPack32";
  3303. case Format::eD16Unorm : return "D16Unorm";
  3304. case Format::eX8D24UnormPack32 : return "X8D24UnormPack32";
  3305. case Format::eD32Sfloat : return "D32Sfloat";
  3306. case Format::eS8Uint : return "S8Uint";
  3307. case Format::eD16UnormS8Uint : return "D16UnormS8Uint";
  3308. case Format::eD24UnormS8Uint : return "D24UnormS8Uint";
  3309. case Format::eD32SfloatS8Uint : return "D32SfloatS8Uint";
  3310. case Format::eBc1RgbUnormBlock : return "Bc1RgbUnormBlock";
  3311. case Format::eBc1RgbSrgbBlock : return "Bc1RgbSrgbBlock";
  3312. case Format::eBc1RgbaUnormBlock : return "Bc1RgbaUnormBlock";
  3313. case Format::eBc1RgbaSrgbBlock : return "Bc1RgbaSrgbBlock";
  3314. case Format::eBc2UnormBlock : return "Bc2UnormBlock";
  3315. case Format::eBc2SrgbBlock : return "Bc2SrgbBlock";
  3316. case Format::eBc3UnormBlock : return "Bc3UnormBlock";
  3317. case Format::eBc3SrgbBlock : return "Bc3SrgbBlock";
  3318. case Format::eBc4UnormBlock : return "Bc4UnormBlock";
  3319. case Format::eBc4SnormBlock : return "Bc4SnormBlock";
  3320. case Format::eBc5UnormBlock : return "Bc5UnormBlock";
  3321. case Format::eBc5SnormBlock : return "Bc5SnormBlock";
  3322. case Format::eBc6HUfloatBlock : return "Bc6HUfloatBlock";
  3323. case Format::eBc6HSfloatBlock : return "Bc6HSfloatBlock";
  3324. case Format::eBc7UnormBlock : return "Bc7UnormBlock";
  3325. case Format::eBc7SrgbBlock : return "Bc7SrgbBlock";
  3326. case Format::eEtc2R8G8B8UnormBlock : return "Etc2R8G8B8UnormBlock";
  3327. case Format::eEtc2R8G8B8SrgbBlock : return "Etc2R8G8B8SrgbBlock";
  3328. case Format::eEtc2R8G8B8A1UnormBlock : return "Etc2R8G8B8A1UnormBlock";
  3329. case Format::eEtc2R8G8B8A1SrgbBlock : return "Etc2R8G8B8A1SrgbBlock";
  3330. case Format::eEtc2R8G8B8A8UnormBlock : return "Etc2R8G8B8A8UnormBlock";
  3331. case Format::eEtc2R8G8B8A8SrgbBlock : return "Etc2R8G8B8A8SrgbBlock";
  3332. case Format::eEacR11UnormBlock : return "EacR11UnormBlock";
  3333. case Format::eEacR11SnormBlock : return "EacR11SnormBlock";
  3334. case Format::eEacR11G11UnormBlock : return "EacR11G11UnormBlock";
  3335. case Format::eEacR11G11SnormBlock : return "EacR11G11SnormBlock";
  3336. case Format::eAstc4x4UnormBlock : return "Astc4x4UnormBlock";
  3337. case Format::eAstc4x4SrgbBlock : return "Astc4x4SrgbBlock";
  3338. case Format::eAstc5x4UnormBlock : return "Astc5x4UnormBlock";
  3339. case Format::eAstc5x4SrgbBlock : return "Astc5x4SrgbBlock";
  3340. case Format::eAstc5x5UnormBlock : return "Astc5x5UnormBlock";
  3341. case Format::eAstc5x5SrgbBlock : return "Astc5x5SrgbBlock";
  3342. case Format::eAstc6x5UnormBlock : return "Astc6x5UnormBlock";
  3343. case Format::eAstc6x5SrgbBlock : return "Astc6x5SrgbBlock";
  3344. case Format::eAstc6x6UnormBlock : return "Astc6x6UnormBlock";
  3345. case Format::eAstc6x6SrgbBlock : return "Astc6x6SrgbBlock";
  3346. case Format::eAstc8x5UnormBlock : return "Astc8x5UnormBlock";
  3347. case Format::eAstc8x5SrgbBlock : return "Astc8x5SrgbBlock";
  3348. case Format::eAstc8x6UnormBlock : return "Astc8x6UnormBlock";
  3349. case Format::eAstc8x6SrgbBlock : return "Astc8x6SrgbBlock";
  3350. case Format::eAstc8x8UnormBlock : return "Astc8x8UnormBlock";
  3351. case Format::eAstc8x8SrgbBlock : return "Astc8x8SrgbBlock";
  3352. case Format::eAstc10x5UnormBlock : return "Astc10x5UnormBlock";
  3353. case Format::eAstc10x5SrgbBlock : return "Astc10x5SrgbBlock";
  3354. case Format::eAstc10x6UnormBlock : return "Astc10x6UnormBlock";
  3355. case Format::eAstc10x6SrgbBlock : return "Astc10x6SrgbBlock";
  3356. case Format::eAstc10x8UnormBlock : return "Astc10x8UnormBlock";
  3357. case Format::eAstc10x8SrgbBlock : return "Astc10x8SrgbBlock";
  3358. case Format::eAstc10x10UnormBlock : return "Astc10x10UnormBlock";
  3359. case Format::eAstc10x10SrgbBlock : return "Astc10x10SrgbBlock";
  3360. case Format::eAstc12x10UnormBlock : return "Astc12x10UnormBlock";
  3361. case Format::eAstc12x10SrgbBlock : return "Astc12x10SrgbBlock";
  3362. case Format::eAstc12x12UnormBlock : return "Astc12x12UnormBlock";
  3363. case Format::eAstc12x12SrgbBlock : return "Astc12x12SrgbBlock";
  3364. case Format::eG8B8G8R8422Unorm : return "G8B8G8R8422Unorm";
  3365. case Format::eB8G8R8G8422Unorm : return "B8G8R8G8422Unorm";
  3366. case Format::eG8B8R83Plane420Unorm : return "G8B8R83Plane420Unorm";
  3367. case Format::eG8B8R82Plane420Unorm : return "G8B8R82Plane420Unorm";
  3368. case Format::eG8B8R83Plane422Unorm : return "G8B8R83Plane422Unorm";
  3369. case Format::eG8B8R82Plane422Unorm : return "G8B8R82Plane422Unorm";
  3370. case Format::eG8B8R83Plane444Unorm : return "G8B8R83Plane444Unorm";
  3371. case Format::eR10X6UnormPack16 : return "R10X6UnormPack16";
  3372. case Format::eR10X6G10X6Unorm2Pack16 : return "R10X6G10X6Unorm2Pack16";
  3373. case Format::eR10X6G10X6B10X6A10X6Unorm4Pack16 : return "R10X6G10X6B10X6A10X6Unorm4Pack16";
  3374. case Format::eG10X6B10X6G10X6R10X6422Unorm4Pack16 : return "G10X6B10X6G10X6R10X6422Unorm4Pack16";
  3375. case Format::eB10X6G10X6R10X6G10X6422Unorm4Pack16 : return "B10X6G10X6R10X6G10X6422Unorm4Pack16";
  3376. case Format::eG10X6B10X6R10X63Plane420Unorm3Pack16 : return "G10X6B10X6R10X63Plane420Unorm3Pack16";
  3377. case Format::eG10X6B10X6R10X62Plane420Unorm3Pack16 : return "G10X6B10X6R10X62Plane420Unorm3Pack16";
  3378. case Format::eG10X6B10X6R10X63Plane422Unorm3Pack16 : return "G10X6B10X6R10X63Plane422Unorm3Pack16";
  3379. case Format::eG10X6B10X6R10X62Plane422Unorm3Pack16 : return "G10X6B10X6R10X62Plane422Unorm3Pack16";
  3380. case Format::eG10X6B10X6R10X63Plane444Unorm3Pack16 : return "G10X6B10X6R10X63Plane444Unorm3Pack16";
  3381. case Format::eR12X4UnormPack16 : return "R12X4UnormPack16";
  3382. case Format::eR12X4G12X4Unorm2Pack16 : return "R12X4G12X4Unorm2Pack16";
  3383. case Format::eR12X4G12X4B12X4A12X4Unorm4Pack16 : return "R12X4G12X4B12X4A12X4Unorm4Pack16";
  3384. case Format::eG12X4B12X4G12X4R12X4422Unorm4Pack16 : return "G12X4B12X4G12X4R12X4422Unorm4Pack16";
  3385. case Format::eB12X4G12X4R12X4G12X4422Unorm4Pack16 : return "B12X4G12X4R12X4G12X4422Unorm4Pack16";
  3386. case Format::eG12X4B12X4R12X43Plane420Unorm3Pack16 : return "G12X4B12X4R12X43Plane420Unorm3Pack16";
  3387. case Format::eG12X4B12X4R12X42Plane420Unorm3Pack16 : return "G12X4B12X4R12X42Plane420Unorm3Pack16";
  3388. case Format::eG12X4B12X4R12X43Plane422Unorm3Pack16 : return "G12X4B12X4R12X43Plane422Unorm3Pack16";
  3389. case Format::eG12X4B12X4R12X42Plane422Unorm3Pack16 : return "G12X4B12X4R12X42Plane422Unorm3Pack16";
  3390. case Format::eG12X4B12X4R12X43Plane444Unorm3Pack16 : return "G12X4B12X4R12X43Plane444Unorm3Pack16";
  3391. case Format::eG16B16G16R16422Unorm : return "G16B16G16R16422Unorm";
  3392. case Format::eB16G16R16G16422Unorm : return "B16G16R16G16422Unorm";
  3393. case Format::eG16B16R163Plane420Unorm : return "G16B16R163Plane420Unorm";
  3394. case Format::eG16B16R162Plane420Unorm : return "G16B16R162Plane420Unorm";
  3395. case Format::eG16B16R163Plane422Unorm : return "G16B16R163Plane422Unorm";
  3396. case Format::eG16B16R162Plane422Unorm : return "G16B16R162Plane422Unorm";
  3397. case Format::eG16B16R163Plane444Unorm : return "G16B16R163Plane444Unorm";
  3398. case Format::ePvrtc12BppUnormBlockIMG : return "Pvrtc12BppUnormBlockIMG";
  3399. case Format::ePvrtc14BppUnormBlockIMG : return "Pvrtc14BppUnormBlockIMG";
  3400. case Format::ePvrtc22BppUnormBlockIMG : return "Pvrtc22BppUnormBlockIMG";
  3401. case Format::ePvrtc24BppUnormBlockIMG : return "Pvrtc24BppUnormBlockIMG";
  3402. case Format::ePvrtc12BppSrgbBlockIMG : return "Pvrtc12BppSrgbBlockIMG";
  3403. case Format::ePvrtc14BppSrgbBlockIMG : return "Pvrtc14BppSrgbBlockIMG";
  3404. case Format::ePvrtc22BppSrgbBlockIMG : return "Pvrtc22BppSrgbBlockIMG";
  3405. case Format::ePvrtc24BppSrgbBlockIMG : return "Pvrtc24BppSrgbBlockIMG";
  3406. default: return "invalid";
  3407. }
  3408. }
  3409. enum class FrontFace
  3410. {
  3411. eCounterClockwise = VK_FRONT_FACE_COUNTER_CLOCKWISE,
  3412. eClockwise = VK_FRONT_FACE_CLOCKWISE
  3413. };
  3414. VULKAN_HPP_INLINE std::string to_string( FrontFace value )
  3415. {
  3416. switch ( value )
  3417. {
  3418. case FrontFace::eCounterClockwise : return "CounterClockwise";
  3419. case FrontFace::eClockwise : return "Clockwise";
  3420. default: return "invalid";
  3421. }
  3422. }
  3423. #ifdef VK_USE_PLATFORM_WIN32_KHR
  3424. enum class FullScreenExclusiveEXT
  3425. {
  3426. eDefault = VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT,
  3427. eAllowed = VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT,
  3428. eDisallowed = VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT,
  3429. eApplicationControlled = VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT
  3430. };
  3431. VULKAN_HPP_INLINE std::string to_string( FullScreenExclusiveEXT value )
  3432. {
  3433. switch ( value )
  3434. {
  3435. case FullScreenExclusiveEXT::eDefault : return "Default";
  3436. case FullScreenExclusiveEXT::eAllowed : return "Allowed";
  3437. case FullScreenExclusiveEXT::eDisallowed : return "Disallowed";
  3438. case FullScreenExclusiveEXT::eApplicationControlled : return "ApplicationControlled";
  3439. default: return "invalid";
  3440. }
  3441. }
  3442. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  3443. enum class GeometryTypeNV
  3444. {
  3445. eTriangles = VK_GEOMETRY_TYPE_TRIANGLES_NV,
  3446. eAabbs = VK_GEOMETRY_TYPE_AABBS_NV
  3447. };
  3448. VULKAN_HPP_INLINE std::string to_string( GeometryTypeNV value )
  3449. {
  3450. switch ( value )
  3451. {
  3452. case GeometryTypeNV::eTriangles : return "Triangles";
  3453. case GeometryTypeNV::eAabbs : return "Aabbs";
  3454. default: return "invalid";
  3455. }
  3456. }
  3457. enum class ImageLayout
  3458. {
  3459. eUndefined = VK_IMAGE_LAYOUT_UNDEFINED,
  3460. eGeneral = VK_IMAGE_LAYOUT_GENERAL,
  3461. eColorAttachmentOptimal = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
  3462. eDepthStencilAttachmentOptimal = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL,
  3463. eDepthStencilReadOnlyOptimal = VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL,
  3464. eShaderReadOnlyOptimal = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL,
  3465. eTransferSrcOptimal = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
  3466. eTransferDstOptimal = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
  3467. ePreinitialized = VK_IMAGE_LAYOUT_PREINITIALIZED,
  3468. eDepthReadOnlyStencilAttachmentOptimal = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
  3469. eDepthAttachmentStencilReadOnlyOptimal = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
  3470. ePresentSrcKHR = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR,
  3471. eSharedPresentKHR = VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR,
  3472. eShadingRateOptimalNV = VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV,
  3473. eFragmentDensityMapOptimalEXT = VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT,
  3474. eDepthReadOnlyStencilAttachmentOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR,
  3475. eDepthAttachmentStencilReadOnlyOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR
  3476. };
  3477. VULKAN_HPP_INLINE std::string to_string( ImageLayout value )
  3478. {
  3479. switch ( value )
  3480. {
  3481. case ImageLayout::eUndefined : return "Undefined";
  3482. case ImageLayout::eGeneral : return "General";
  3483. case ImageLayout::eColorAttachmentOptimal : return "ColorAttachmentOptimal";
  3484. case ImageLayout::eDepthStencilAttachmentOptimal : return "DepthStencilAttachmentOptimal";
  3485. case ImageLayout::eDepthStencilReadOnlyOptimal : return "DepthStencilReadOnlyOptimal";
  3486. case ImageLayout::eShaderReadOnlyOptimal : return "ShaderReadOnlyOptimal";
  3487. case ImageLayout::eTransferSrcOptimal : return "TransferSrcOptimal";
  3488. case ImageLayout::eTransferDstOptimal : return "TransferDstOptimal";
  3489. case ImageLayout::ePreinitialized : return "Preinitialized";
  3490. case ImageLayout::eDepthReadOnlyStencilAttachmentOptimal : return "DepthReadOnlyStencilAttachmentOptimal";
  3491. case ImageLayout::eDepthAttachmentStencilReadOnlyOptimal : return "DepthAttachmentStencilReadOnlyOptimal";
  3492. case ImageLayout::ePresentSrcKHR : return "PresentSrcKHR";
  3493. case ImageLayout::eSharedPresentKHR : return "SharedPresentKHR";
  3494. case ImageLayout::eShadingRateOptimalNV : return "ShadingRateOptimalNV";
  3495. case ImageLayout::eFragmentDensityMapOptimalEXT : return "FragmentDensityMapOptimalEXT";
  3496. default: return "invalid";
  3497. }
  3498. }
  3499. enum class ImageTiling
  3500. {
  3501. eOptimal = VK_IMAGE_TILING_OPTIMAL,
  3502. eLinear = VK_IMAGE_TILING_LINEAR,
  3503. eDrmFormatModifierEXT = VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT
  3504. };
  3505. VULKAN_HPP_INLINE std::string to_string( ImageTiling value )
  3506. {
  3507. switch ( value )
  3508. {
  3509. case ImageTiling::eOptimal : return "Optimal";
  3510. case ImageTiling::eLinear : return "Linear";
  3511. case ImageTiling::eDrmFormatModifierEXT : return "DrmFormatModifierEXT";
  3512. default: return "invalid";
  3513. }
  3514. }
  3515. enum class ImageType
  3516. {
  3517. e1D = VK_IMAGE_TYPE_1D,
  3518. e2D = VK_IMAGE_TYPE_2D,
  3519. e3D = VK_IMAGE_TYPE_3D
  3520. };
  3521. VULKAN_HPP_INLINE std::string to_string( ImageType value )
  3522. {
  3523. switch ( value )
  3524. {
  3525. case ImageType::e1D : return "1D";
  3526. case ImageType::e2D : return "2D";
  3527. case ImageType::e3D : return "3D";
  3528. default: return "invalid";
  3529. }
  3530. }
  3531. enum class ImageViewType
  3532. {
  3533. e1D = VK_IMAGE_VIEW_TYPE_1D,
  3534. e2D = VK_IMAGE_VIEW_TYPE_2D,
  3535. e3D = VK_IMAGE_VIEW_TYPE_3D,
  3536. eCube = VK_IMAGE_VIEW_TYPE_CUBE,
  3537. e1DArray = VK_IMAGE_VIEW_TYPE_1D_ARRAY,
  3538. e2DArray = VK_IMAGE_VIEW_TYPE_2D_ARRAY,
  3539. eCubeArray = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
  3540. };
  3541. VULKAN_HPP_INLINE std::string to_string( ImageViewType value )
  3542. {
  3543. switch ( value )
  3544. {
  3545. case ImageViewType::e1D : return "1D";
  3546. case ImageViewType::e2D : return "2D";
  3547. case ImageViewType::e3D : return "3D";
  3548. case ImageViewType::eCube : return "Cube";
  3549. case ImageViewType::e1DArray : return "1DArray";
  3550. case ImageViewType::e2DArray : return "2DArray";
  3551. case ImageViewType::eCubeArray : return "CubeArray";
  3552. default: return "invalid";
  3553. }
  3554. }
  3555. enum class IndexType
  3556. {
  3557. eUint16 = VK_INDEX_TYPE_UINT16,
  3558. eUint32 = VK_INDEX_TYPE_UINT32,
  3559. eNoneNV = VK_INDEX_TYPE_NONE_NV
  3560. };
  3561. VULKAN_HPP_INLINE std::string to_string( IndexType value )
  3562. {
  3563. switch ( value )
  3564. {
  3565. case IndexType::eUint16 : return "Uint16";
  3566. case IndexType::eUint32 : return "Uint32";
  3567. case IndexType::eNoneNV : return "NoneNV";
  3568. default: return "invalid";
  3569. }
  3570. }
  3571. enum class IndirectCommandsTokenTypeNVX
  3572. {
  3573. ePipeline = VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX,
  3574. eDescriptorSet = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX,
  3575. eIndexBuffer = VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX,
  3576. eVertexBuffer = VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX,
  3577. ePushConstant = VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX,
  3578. eDrawIndexed = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX,
  3579. eDraw = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX,
  3580. eDispatch = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX
  3581. };
  3582. VULKAN_HPP_INLINE std::string to_string( IndirectCommandsTokenTypeNVX value )
  3583. {
  3584. switch ( value )
  3585. {
  3586. case IndirectCommandsTokenTypeNVX::ePipeline : return "Pipeline";
  3587. case IndirectCommandsTokenTypeNVX::eDescriptorSet : return "DescriptorSet";
  3588. case IndirectCommandsTokenTypeNVX::eIndexBuffer : return "IndexBuffer";
  3589. case IndirectCommandsTokenTypeNVX::eVertexBuffer : return "VertexBuffer";
  3590. case IndirectCommandsTokenTypeNVX::ePushConstant : return "PushConstant";
  3591. case IndirectCommandsTokenTypeNVX::eDrawIndexed : return "DrawIndexed";
  3592. case IndirectCommandsTokenTypeNVX::eDraw : return "Draw";
  3593. case IndirectCommandsTokenTypeNVX::eDispatch : return "Dispatch";
  3594. default: return "invalid";
  3595. }
  3596. }
  3597. enum class InternalAllocationType
  3598. {
  3599. eExecutable = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE
  3600. };
  3601. VULKAN_HPP_INLINE std::string to_string( InternalAllocationType value )
  3602. {
  3603. switch ( value )
  3604. {
  3605. case InternalAllocationType::eExecutable : return "Executable";
  3606. default: return "invalid";
  3607. }
  3608. }
  3609. enum class LogicOp
  3610. {
  3611. eClear = VK_LOGIC_OP_CLEAR,
  3612. eAnd = VK_LOGIC_OP_AND,
  3613. eAndReverse = VK_LOGIC_OP_AND_REVERSE,
  3614. eCopy = VK_LOGIC_OP_COPY,
  3615. eAndInverted = VK_LOGIC_OP_AND_INVERTED,
  3616. eNoOp = VK_LOGIC_OP_NO_OP,
  3617. eXor = VK_LOGIC_OP_XOR,
  3618. eOr = VK_LOGIC_OP_OR,
  3619. eNor = VK_LOGIC_OP_NOR,
  3620. eEquivalent = VK_LOGIC_OP_EQUIVALENT,
  3621. eInvert = VK_LOGIC_OP_INVERT,
  3622. eOrReverse = VK_LOGIC_OP_OR_REVERSE,
  3623. eCopyInverted = VK_LOGIC_OP_COPY_INVERTED,
  3624. eOrInverted = VK_LOGIC_OP_OR_INVERTED,
  3625. eNand = VK_LOGIC_OP_NAND,
  3626. eSet = VK_LOGIC_OP_SET
  3627. };
  3628. VULKAN_HPP_INLINE std::string to_string( LogicOp value )
  3629. {
  3630. switch ( value )
  3631. {
  3632. case LogicOp::eClear : return "Clear";
  3633. case LogicOp::eAnd : return "And";
  3634. case LogicOp::eAndReverse : return "AndReverse";
  3635. case LogicOp::eCopy : return "Copy";
  3636. case LogicOp::eAndInverted : return "AndInverted";
  3637. case LogicOp::eNoOp : return "NoOp";
  3638. case LogicOp::eXor : return "Xor";
  3639. case LogicOp::eOr : return "Or";
  3640. case LogicOp::eNor : return "Nor";
  3641. case LogicOp::eEquivalent : return "Equivalent";
  3642. case LogicOp::eInvert : return "Invert";
  3643. case LogicOp::eOrReverse : return "OrReverse";
  3644. case LogicOp::eCopyInverted : return "CopyInverted";
  3645. case LogicOp::eOrInverted : return "OrInverted";
  3646. case LogicOp::eNand : return "Nand";
  3647. case LogicOp::eSet : return "Set";
  3648. default: return "invalid";
  3649. }
  3650. }
  3651. enum class MemoryOverallocationBehaviorAMD
  3652. {
  3653. eDefault = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD,
  3654. eAllowed = VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD,
  3655. eDisallowed = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD
  3656. };
  3657. VULKAN_HPP_INLINE std::string to_string( MemoryOverallocationBehaviorAMD value )
  3658. {
  3659. switch ( value )
  3660. {
  3661. case MemoryOverallocationBehaviorAMD::eDefault : return "Default";
  3662. case MemoryOverallocationBehaviorAMD::eAllowed : return "Allowed";
  3663. case MemoryOverallocationBehaviorAMD::eDisallowed : return "Disallowed";
  3664. default: return "invalid";
  3665. }
  3666. }
  3667. enum class ObjectEntryTypeNVX
  3668. {
  3669. eDescriptorSet = VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX,
  3670. ePipeline = VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX,
  3671. eIndexBuffer = VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX,
  3672. eVertexBuffer = VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX,
  3673. ePushConstant = VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX
  3674. };
  3675. VULKAN_HPP_INLINE std::string to_string( ObjectEntryTypeNVX value )
  3676. {
  3677. switch ( value )
  3678. {
  3679. case ObjectEntryTypeNVX::eDescriptorSet : return "DescriptorSet";
  3680. case ObjectEntryTypeNVX::ePipeline : return "Pipeline";
  3681. case ObjectEntryTypeNVX::eIndexBuffer : return "IndexBuffer";
  3682. case ObjectEntryTypeNVX::eVertexBuffer : return "VertexBuffer";
  3683. case ObjectEntryTypeNVX::ePushConstant : return "PushConstant";
  3684. default: return "invalid";
  3685. }
  3686. }
  3687. enum class ObjectType
  3688. {
  3689. eUnknown = VK_OBJECT_TYPE_UNKNOWN,
  3690. eInstance = VK_OBJECT_TYPE_INSTANCE,
  3691. ePhysicalDevice = VK_OBJECT_TYPE_PHYSICAL_DEVICE,
  3692. eDevice = VK_OBJECT_TYPE_DEVICE,
  3693. eQueue = VK_OBJECT_TYPE_QUEUE,
  3694. eSemaphore = VK_OBJECT_TYPE_SEMAPHORE,
  3695. eCommandBuffer = VK_OBJECT_TYPE_COMMAND_BUFFER,
  3696. eFence = VK_OBJECT_TYPE_FENCE,
  3697. eDeviceMemory = VK_OBJECT_TYPE_DEVICE_MEMORY,
  3698. eBuffer = VK_OBJECT_TYPE_BUFFER,
  3699. eImage = VK_OBJECT_TYPE_IMAGE,
  3700. eEvent = VK_OBJECT_TYPE_EVENT,
  3701. eQueryPool = VK_OBJECT_TYPE_QUERY_POOL,
  3702. eBufferView = VK_OBJECT_TYPE_BUFFER_VIEW,
  3703. eImageView = VK_OBJECT_TYPE_IMAGE_VIEW,
  3704. eShaderModule = VK_OBJECT_TYPE_SHADER_MODULE,
  3705. ePipelineCache = VK_OBJECT_TYPE_PIPELINE_CACHE,
  3706. ePipelineLayout = VK_OBJECT_TYPE_PIPELINE_LAYOUT,
  3707. eRenderPass = VK_OBJECT_TYPE_RENDER_PASS,
  3708. ePipeline = VK_OBJECT_TYPE_PIPELINE,
  3709. eDescriptorSetLayout = VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT,
  3710. eSampler = VK_OBJECT_TYPE_SAMPLER,
  3711. eDescriptorPool = VK_OBJECT_TYPE_DESCRIPTOR_POOL,
  3712. eDescriptorSet = VK_OBJECT_TYPE_DESCRIPTOR_SET,
  3713. eFramebuffer = VK_OBJECT_TYPE_FRAMEBUFFER,
  3714. eCommandPool = VK_OBJECT_TYPE_COMMAND_POOL,
  3715. eSamplerYcbcrConversion = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
  3716. eDescriptorUpdateTemplate = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
  3717. eSurfaceKHR = VK_OBJECT_TYPE_SURFACE_KHR,
  3718. eSwapchainKHR = VK_OBJECT_TYPE_SWAPCHAIN_KHR,
  3719. eDisplayKHR = VK_OBJECT_TYPE_DISPLAY_KHR,
  3720. eDisplayModeKHR = VK_OBJECT_TYPE_DISPLAY_MODE_KHR,
  3721. eDebugReportCallbackEXT = VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT,
  3722. eObjectTableNVX = VK_OBJECT_TYPE_OBJECT_TABLE_NVX,
  3723. eIndirectCommandsLayoutNVX = VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX,
  3724. eDebugUtilsMessengerEXT = VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT,
  3725. eValidationCacheEXT = VK_OBJECT_TYPE_VALIDATION_CACHE_EXT,
  3726. eAccelerationStructureNV = VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV,
  3727. ePerformanceConfigurationINTEL = VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL,
  3728. eDescriptorUpdateTemplateKHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR,
  3729. eSamplerYcbcrConversionKHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR
  3730. };
  3731. VULKAN_HPP_INLINE std::string to_string( ObjectType value )
  3732. {
  3733. switch ( value )
  3734. {
  3735. case ObjectType::eUnknown : return "Unknown";
  3736. case ObjectType::eInstance : return "Instance";
  3737. case ObjectType::ePhysicalDevice : return "PhysicalDevice";
  3738. case ObjectType::eDevice : return "Device";
  3739. case ObjectType::eQueue : return "Queue";
  3740. case ObjectType::eSemaphore : return "Semaphore";
  3741. case ObjectType::eCommandBuffer : return "CommandBuffer";
  3742. case ObjectType::eFence : return "Fence";
  3743. case ObjectType::eDeviceMemory : return "DeviceMemory";
  3744. case ObjectType::eBuffer : return "Buffer";
  3745. case ObjectType::eImage : return "Image";
  3746. case ObjectType::eEvent : return "Event";
  3747. case ObjectType::eQueryPool : return "QueryPool";
  3748. case ObjectType::eBufferView : return "BufferView";
  3749. case ObjectType::eImageView : return "ImageView";
  3750. case ObjectType::eShaderModule : return "ShaderModule";
  3751. case ObjectType::ePipelineCache : return "PipelineCache";
  3752. case ObjectType::ePipelineLayout : return "PipelineLayout";
  3753. case ObjectType::eRenderPass : return "RenderPass";
  3754. case ObjectType::ePipeline : return "Pipeline";
  3755. case ObjectType::eDescriptorSetLayout : return "DescriptorSetLayout";
  3756. case ObjectType::eSampler : return "Sampler";
  3757. case ObjectType::eDescriptorPool : return "DescriptorPool";
  3758. case ObjectType::eDescriptorSet : return "DescriptorSet";
  3759. case ObjectType::eFramebuffer : return "Framebuffer";
  3760. case ObjectType::eCommandPool : return "CommandPool";
  3761. case ObjectType::eSamplerYcbcrConversion : return "SamplerYcbcrConversion";
  3762. case ObjectType::eDescriptorUpdateTemplate : return "DescriptorUpdateTemplate";
  3763. case ObjectType::eSurfaceKHR : return "SurfaceKHR";
  3764. case ObjectType::eSwapchainKHR : return "SwapchainKHR";
  3765. case ObjectType::eDisplayKHR : return "DisplayKHR";
  3766. case ObjectType::eDisplayModeKHR : return "DisplayModeKHR";
  3767. case ObjectType::eDebugReportCallbackEXT : return "DebugReportCallbackEXT";
  3768. case ObjectType::eObjectTableNVX : return "ObjectTableNVX";
  3769. case ObjectType::eIndirectCommandsLayoutNVX : return "IndirectCommandsLayoutNVX";
  3770. case ObjectType::eDebugUtilsMessengerEXT : return "DebugUtilsMessengerEXT";
  3771. case ObjectType::eValidationCacheEXT : return "ValidationCacheEXT";
  3772. case ObjectType::eAccelerationStructureNV : return "AccelerationStructureNV";
  3773. case ObjectType::ePerformanceConfigurationINTEL : return "PerformanceConfigurationINTEL";
  3774. default: return "invalid";
  3775. }
  3776. }
  3777. enum class PerformanceConfigurationTypeINTEL
  3778. {
  3779. eCommandQueueMetricsDiscoveryActivated = VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL
  3780. };
  3781. VULKAN_HPP_INLINE std::string to_string( PerformanceConfigurationTypeINTEL value )
  3782. {
  3783. switch ( value )
  3784. {
  3785. case PerformanceConfigurationTypeINTEL::eCommandQueueMetricsDiscoveryActivated : return "CommandQueueMetricsDiscoveryActivated";
  3786. default: return "invalid";
  3787. }
  3788. }
  3789. enum class PerformanceOverrideTypeINTEL
  3790. {
  3791. eNullHardware = VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL,
  3792. eFlushGpuCaches = VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL
  3793. };
  3794. VULKAN_HPP_INLINE std::string to_string( PerformanceOverrideTypeINTEL value )
  3795. {
  3796. switch ( value )
  3797. {
  3798. case PerformanceOverrideTypeINTEL::eNullHardware : return "NullHardware";
  3799. case PerformanceOverrideTypeINTEL::eFlushGpuCaches : return "FlushGpuCaches";
  3800. default: return "invalid";
  3801. }
  3802. }
  3803. enum class PerformanceParameterTypeINTEL
  3804. {
  3805. eHwCountersSupported = VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL,
  3806. eStreamMarkerValidBits = VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL
  3807. };
  3808. VULKAN_HPP_INLINE std::string to_string( PerformanceParameterTypeINTEL value )
  3809. {
  3810. switch ( value )
  3811. {
  3812. case PerformanceParameterTypeINTEL::eHwCountersSupported : return "HwCountersSupported";
  3813. case PerformanceParameterTypeINTEL::eStreamMarkerValidBits : return "StreamMarkerValidBits";
  3814. default: return "invalid";
  3815. }
  3816. }
  3817. enum class PerformanceValueTypeINTEL
  3818. {
  3819. eUint32 = VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL,
  3820. eUint64 = VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL,
  3821. eFloat = VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL,
  3822. eBool = VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL,
  3823. eString = VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL
  3824. };
  3825. VULKAN_HPP_INLINE std::string to_string( PerformanceValueTypeINTEL value )
  3826. {
  3827. switch ( value )
  3828. {
  3829. case PerformanceValueTypeINTEL::eUint32 : return "Uint32";
  3830. case PerformanceValueTypeINTEL::eUint64 : return "Uint64";
  3831. case PerformanceValueTypeINTEL::eFloat : return "Float";
  3832. case PerformanceValueTypeINTEL::eBool : return "Bool";
  3833. case PerformanceValueTypeINTEL::eString : return "String";
  3834. default: return "invalid";
  3835. }
  3836. }
  3837. enum class PhysicalDeviceType
  3838. {
  3839. eOther = VK_PHYSICAL_DEVICE_TYPE_OTHER,
  3840. eIntegratedGpu = VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU,
  3841. eDiscreteGpu = VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU,
  3842. eVirtualGpu = VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU,
  3843. eCpu = VK_PHYSICAL_DEVICE_TYPE_CPU
  3844. };
  3845. VULKAN_HPP_INLINE std::string to_string( PhysicalDeviceType value )
  3846. {
  3847. switch ( value )
  3848. {
  3849. case PhysicalDeviceType::eOther : return "Other";
  3850. case PhysicalDeviceType::eIntegratedGpu : return "IntegratedGpu";
  3851. case PhysicalDeviceType::eDiscreteGpu : return "DiscreteGpu";
  3852. case PhysicalDeviceType::eVirtualGpu : return "VirtualGpu";
  3853. case PhysicalDeviceType::eCpu : return "Cpu";
  3854. default: return "invalid";
  3855. }
  3856. }
  3857. enum class PipelineBindPoint
  3858. {
  3859. eGraphics = VK_PIPELINE_BIND_POINT_GRAPHICS,
  3860. eCompute = VK_PIPELINE_BIND_POINT_COMPUTE,
  3861. eRayTracingNV = VK_PIPELINE_BIND_POINT_RAY_TRACING_NV
  3862. };
  3863. VULKAN_HPP_INLINE std::string to_string( PipelineBindPoint value )
  3864. {
  3865. switch ( value )
  3866. {
  3867. case PipelineBindPoint::eGraphics : return "Graphics";
  3868. case PipelineBindPoint::eCompute : return "Compute";
  3869. case PipelineBindPoint::eRayTracingNV : return "RayTracingNV";
  3870. default: return "invalid";
  3871. }
  3872. }
  3873. enum class PipelineCacheHeaderVersion
  3874. {
  3875. eOne = VK_PIPELINE_CACHE_HEADER_VERSION_ONE
  3876. };
  3877. VULKAN_HPP_INLINE std::string to_string( PipelineCacheHeaderVersion value )
  3878. {
  3879. switch ( value )
  3880. {
  3881. case PipelineCacheHeaderVersion::eOne : return "One";
  3882. default: return "invalid";
  3883. }
  3884. }
  3885. enum class PointClippingBehavior
  3886. {
  3887. eAllClipPlanes = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
  3888. eUserClipPlanesOnly = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY,
  3889. eAllClipPlanesKHR = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR,
  3890. eUserClipPlanesOnlyKHR = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR
  3891. };
  3892. VULKAN_HPP_INLINE std::string to_string( PointClippingBehavior value )
  3893. {
  3894. switch ( value )
  3895. {
  3896. case PointClippingBehavior::eAllClipPlanes : return "AllClipPlanes";
  3897. case PointClippingBehavior::eUserClipPlanesOnly : return "UserClipPlanesOnly";
  3898. default: return "invalid";
  3899. }
  3900. }
  3901. enum class PolygonMode
  3902. {
  3903. eFill = VK_POLYGON_MODE_FILL,
  3904. eLine = VK_POLYGON_MODE_LINE,
  3905. ePoint = VK_POLYGON_MODE_POINT,
  3906. eFillRectangleNV = VK_POLYGON_MODE_FILL_RECTANGLE_NV
  3907. };
  3908. VULKAN_HPP_INLINE std::string to_string( PolygonMode value )
  3909. {
  3910. switch ( value )
  3911. {
  3912. case PolygonMode::eFill : return "Fill";
  3913. case PolygonMode::eLine : return "Line";
  3914. case PolygonMode::ePoint : return "Point";
  3915. case PolygonMode::eFillRectangleNV : return "FillRectangleNV";
  3916. default: return "invalid";
  3917. }
  3918. }
  3919. enum class PresentModeKHR
  3920. {
  3921. eImmediate = VK_PRESENT_MODE_IMMEDIATE_KHR,
  3922. eMailbox = VK_PRESENT_MODE_MAILBOX_KHR,
  3923. eFifo = VK_PRESENT_MODE_FIFO_KHR,
  3924. eFifoRelaxed = VK_PRESENT_MODE_FIFO_RELAXED_KHR,
  3925. eSharedDemandRefresh = VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR,
  3926. eSharedContinuousRefresh = VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR
  3927. };
  3928. VULKAN_HPP_INLINE std::string to_string( PresentModeKHR value )
  3929. {
  3930. switch ( value )
  3931. {
  3932. case PresentModeKHR::eImmediate : return "Immediate";
  3933. case PresentModeKHR::eMailbox : return "Mailbox";
  3934. case PresentModeKHR::eFifo : return "Fifo";
  3935. case PresentModeKHR::eFifoRelaxed : return "FifoRelaxed";
  3936. case PresentModeKHR::eSharedDemandRefresh : return "SharedDemandRefresh";
  3937. case PresentModeKHR::eSharedContinuousRefresh : return "SharedContinuousRefresh";
  3938. default: return "invalid";
  3939. }
  3940. }
  3941. enum class PrimitiveTopology
  3942. {
  3943. ePointList = VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
  3944. eLineList = VK_PRIMITIVE_TOPOLOGY_LINE_LIST,
  3945. eLineStrip = VK_PRIMITIVE_TOPOLOGY_LINE_STRIP,
  3946. eTriangleList = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,
  3947. eTriangleStrip = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP,
  3948. eTriangleFan = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN,
  3949. eLineListWithAdjacency = VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY,
  3950. eLineStripWithAdjacency = VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY,
  3951. eTriangleListWithAdjacency = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY,
  3952. eTriangleStripWithAdjacency = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY,
  3953. ePatchList = VK_PRIMITIVE_TOPOLOGY_PATCH_LIST
  3954. };
  3955. VULKAN_HPP_INLINE std::string to_string( PrimitiveTopology value )
  3956. {
  3957. switch ( value )
  3958. {
  3959. case PrimitiveTopology::ePointList : return "PointList";
  3960. case PrimitiveTopology::eLineList : return "LineList";
  3961. case PrimitiveTopology::eLineStrip : return "LineStrip";
  3962. case PrimitiveTopology::eTriangleList : return "TriangleList";
  3963. case PrimitiveTopology::eTriangleStrip : return "TriangleStrip";
  3964. case PrimitiveTopology::eTriangleFan : return "TriangleFan";
  3965. case PrimitiveTopology::eLineListWithAdjacency : return "LineListWithAdjacency";
  3966. case PrimitiveTopology::eLineStripWithAdjacency : return "LineStripWithAdjacency";
  3967. case PrimitiveTopology::eTriangleListWithAdjacency : return "TriangleListWithAdjacency";
  3968. case PrimitiveTopology::eTriangleStripWithAdjacency : return "TriangleStripWithAdjacency";
  3969. case PrimitiveTopology::ePatchList : return "PatchList";
  3970. default: return "invalid";
  3971. }
  3972. }
  3973. enum class QueryPoolSamplingModeINTEL
  3974. {
  3975. eManual = VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL
  3976. };
  3977. VULKAN_HPP_INLINE std::string to_string( QueryPoolSamplingModeINTEL value )
  3978. {
  3979. switch ( value )
  3980. {
  3981. case QueryPoolSamplingModeINTEL::eManual : return "Manual";
  3982. default: return "invalid";
  3983. }
  3984. }
  3985. enum class QueryType
  3986. {
  3987. eOcclusion = VK_QUERY_TYPE_OCCLUSION,
  3988. ePipelineStatistics = VK_QUERY_TYPE_PIPELINE_STATISTICS,
  3989. eTimestamp = VK_QUERY_TYPE_TIMESTAMP,
  3990. eTransformFeedbackStreamEXT = VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT,
  3991. eAccelerationStructureCompactedSizeNV = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV,
  3992. ePerformanceQueryINTEL = VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL
  3993. };
  3994. VULKAN_HPP_INLINE std::string to_string( QueryType value )
  3995. {
  3996. switch ( value )
  3997. {
  3998. case QueryType::eOcclusion : return "Occlusion";
  3999. case QueryType::ePipelineStatistics : return "PipelineStatistics";
  4000. case QueryType::eTimestamp : return "Timestamp";
  4001. case QueryType::eTransformFeedbackStreamEXT : return "TransformFeedbackStreamEXT";
  4002. case QueryType::eAccelerationStructureCompactedSizeNV : return "AccelerationStructureCompactedSizeNV";
  4003. case QueryType::ePerformanceQueryINTEL : return "PerformanceQueryINTEL";
  4004. default: return "invalid";
  4005. }
  4006. }
  4007. enum class QueueGlobalPriorityEXT
  4008. {
  4009. eLow = VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT,
  4010. eMedium = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT,
  4011. eHigh = VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT,
  4012. eRealtime = VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT
  4013. };
  4014. VULKAN_HPP_INLINE std::string to_string( QueueGlobalPriorityEXT value )
  4015. {
  4016. switch ( value )
  4017. {
  4018. case QueueGlobalPriorityEXT::eLow : return "Low";
  4019. case QueueGlobalPriorityEXT::eMedium : return "Medium";
  4020. case QueueGlobalPriorityEXT::eHigh : return "High";
  4021. case QueueGlobalPriorityEXT::eRealtime : return "Realtime";
  4022. default: return "invalid";
  4023. }
  4024. }
  4025. enum class RasterizationOrderAMD
  4026. {
  4027. eStrict = VK_RASTERIZATION_ORDER_STRICT_AMD,
  4028. eRelaxed = VK_RASTERIZATION_ORDER_RELAXED_AMD
  4029. };
  4030. VULKAN_HPP_INLINE std::string to_string( RasterizationOrderAMD value )
  4031. {
  4032. switch ( value )
  4033. {
  4034. case RasterizationOrderAMD::eStrict : return "Strict";
  4035. case RasterizationOrderAMD::eRelaxed : return "Relaxed";
  4036. default: return "invalid";
  4037. }
  4038. }
  4039. enum class RayTracingShaderGroupTypeNV
  4040. {
  4041. eGeneral = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV,
  4042. eTrianglesHitGroup = VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV,
  4043. eProceduralHitGroup = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV
  4044. };
  4045. VULKAN_HPP_INLINE std::string to_string( RayTracingShaderGroupTypeNV value )
  4046. {
  4047. switch ( value )
  4048. {
  4049. case RayTracingShaderGroupTypeNV::eGeneral : return "General";
  4050. case RayTracingShaderGroupTypeNV::eTrianglesHitGroup : return "TrianglesHitGroup";
  4051. case RayTracingShaderGroupTypeNV::eProceduralHitGroup : return "ProceduralHitGroup";
  4052. default: return "invalid";
  4053. }
  4054. }
  4055. enum class Result
  4056. {
  4057. eSuccess = VK_SUCCESS,
  4058. eNotReady = VK_NOT_READY,
  4059. eTimeout = VK_TIMEOUT,
  4060. eEventSet = VK_EVENT_SET,
  4061. eEventReset = VK_EVENT_RESET,
  4062. eIncomplete = VK_INCOMPLETE,
  4063. eErrorOutOfHostMemory = VK_ERROR_OUT_OF_HOST_MEMORY,
  4064. eErrorOutOfDeviceMemory = VK_ERROR_OUT_OF_DEVICE_MEMORY,
  4065. eErrorInitializationFailed = VK_ERROR_INITIALIZATION_FAILED,
  4066. eErrorDeviceLost = VK_ERROR_DEVICE_LOST,
  4067. eErrorMemoryMapFailed = VK_ERROR_MEMORY_MAP_FAILED,
  4068. eErrorLayerNotPresent = VK_ERROR_LAYER_NOT_PRESENT,
  4069. eErrorExtensionNotPresent = VK_ERROR_EXTENSION_NOT_PRESENT,
  4070. eErrorFeatureNotPresent = VK_ERROR_FEATURE_NOT_PRESENT,
  4071. eErrorIncompatibleDriver = VK_ERROR_INCOMPATIBLE_DRIVER,
  4072. eErrorTooManyObjects = VK_ERROR_TOO_MANY_OBJECTS,
  4073. eErrorFormatNotSupported = VK_ERROR_FORMAT_NOT_SUPPORTED,
  4074. eErrorFragmentedPool = VK_ERROR_FRAGMENTED_POOL,
  4075. eErrorOutOfPoolMemory = VK_ERROR_OUT_OF_POOL_MEMORY,
  4076. eErrorInvalidExternalHandle = VK_ERROR_INVALID_EXTERNAL_HANDLE,
  4077. eErrorSurfaceLostKHR = VK_ERROR_SURFACE_LOST_KHR,
  4078. eErrorNativeWindowInUseKHR = VK_ERROR_NATIVE_WINDOW_IN_USE_KHR,
  4079. eSuboptimalKHR = VK_SUBOPTIMAL_KHR,
  4080. eErrorOutOfDateKHR = VK_ERROR_OUT_OF_DATE_KHR,
  4081. eErrorIncompatibleDisplayKHR = VK_ERROR_INCOMPATIBLE_DISPLAY_KHR,
  4082. eErrorValidationFailedEXT = VK_ERROR_VALIDATION_FAILED_EXT,
  4083. eErrorInvalidShaderNV = VK_ERROR_INVALID_SHADER_NV,
  4084. eErrorInvalidDrmFormatModifierPlaneLayoutEXT = VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT,
  4085. eErrorFragmentationEXT = VK_ERROR_FRAGMENTATION_EXT,
  4086. eErrorNotPermittedEXT = VK_ERROR_NOT_PERMITTED_EXT,
  4087. eErrorInvalidDeviceAddressEXT = VK_ERROR_INVALID_DEVICE_ADDRESS_EXT,
  4088. eErrorFullScreenExclusiveModeLostEXT = VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT,
  4089. eErrorOutOfPoolMemoryKHR = VK_ERROR_OUT_OF_POOL_MEMORY_KHR,
  4090. eErrorInvalidExternalHandleKHR = VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR
  4091. };
  4092. VULKAN_HPP_INLINE std::string to_string( Result value )
  4093. {
  4094. switch ( value )
  4095. {
  4096. case Result::eSuccess : return "Success";
  4097. case Result::eNotReady : return "NotReady";
  4098. case Result::eTimeout : return "Timeout";
  4099. case Result::eEventSet : return "EventSet";
  4100. case Result::eEventReset : return "EventReset";
  4101. case Result::eIncomplete : return "Incomplete";
  4102. case Result::eErrorOutOfHostMemory : return "ErrorOutOfHostMemory";
  4103. case Result::eErrorOutOfDeviceMemory : return "ErrorOutOfDeviceMemory";
  4104. case Result::eErrorInitializationFailed : return "ErrorInitializationFailed";
  4105. case Result::eErrorDeviceLost : return "ErrorDeviceLost";
  4106. case Result::eErrorMemoryMapFailed : return "ErrorMemoryMapFailed";
  4107. case Result::eErrorLayerNotPresent : return "ErrorLayerNotPresent";
  4108. case Result::eErrorExtensionNotPresent : return "ErrorExtensionNotPresent";
  4109. case Result::eErrorFeatureNotPresent : return "ErrorFeatureNotPresent";
  4110. case Result::eErrorIncompatibleDriver : return "ErrorIncompatibleDriver";
  4111. case Result::eErrorTooManyObjects : return "ErrorTooManyObjects";
  4112. case Result::eErrorFormatNotSupported : return "ErrorFormatNotSupported";
  4113. case Result::eErrorFragmentedPool : return "ErrorFragmentedPool";
  4114. case Result::eErrorOutOfPoolMemory : return "ErrorOutOfPoolMemory";
  4115. case Result::eErrorInvalidExternalHandle : return "ErrorInvalidExternalHandle";
  4116. case Result::eErrorSurfaceLostKHR : return "ErrorSurfaceLostKHR";
  4117. case Result::eErrorNativeWindowInUseKHR : return "ErrorNativeWindowInUseKHR";
  4118. case Result::eSuboptimalKHR : return "SuboptimalKHR";
  4119. case Result::eErrorOutOfDateKHR : return "ErrorOutOfDateKHR";
  4120. case Result::eErrorIncompatibleDisplayKHR : return "ErrorIncompatibleDisplayKHR";
  4121. case Result::eErrorValidationFailedEXT : return "ErrorValidationFailedEXT";
  4122. case Result::eErrorInvalidShaderNV : return "ErrorInvalidShaderNV";
  4123. case Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT : return "ErrorInvalidDrmFormatModifierPlaneLayoutEXT";
  4124. case Result::eErrorFragmentationEXT : return "ErrorFragmentationEXT";
  4125. case Result::eErrorNotPermittedEXT : return "ErrorNotPermittedEXT";
  4126. case Result::eErrorInvalidDeviceAddressEXT : return "ErrorInvalidDeviceAddressEXT";
  4127. case Result::eErrorFullScreenExclusiveModeLostEXT : return "ErrorFullScreenExclusiveModeLostEXT";
  4128. default: return "invalid";
  4129. }
  4130. }
  4131. enum class SamplerAddressMode
  4132. {
  4133. eRepeat = VK_SAMPLER_ADDRESS_MODE_REPEAT,
  4134. eMirroredRepeat = VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT,
  4135. eClampToEdge = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,
  4136. eClampToBorder = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER,
  4137. eMirrorClampToEdge = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE
  4138. };
  4139. VULKAN_HPP_INLINE std::string to_string( SamplerAddressMode value )
  4140. {
  4141. switch ( value )
  4142. {
  4143. case SamplerAddressMode::eRepeat : return "Repeat";
  4144. case SamplerAddressMode::eMirroredRepeat : return "MirroredRepeat";
  4145. case SamplerAddressMode::eClampToEdge : return "ClampToEdge";
  4146. case SamplerAddressMode::eClampToBorder : return "ClampToBorder";
  4147. case SamplerAddressMode::eMirrorClampToEdge : return "MirrorClampToEdge";
  4148. default: return "invalid";
  4149. }
  4150. }
  4151. enum class SamplerMipmapMode
  4152. {
  4153. eNearest = VK_SAMPLER_MIPMAP_MODE_NEAREST,
  4154. eLinear = VK_SAMPLER_MIPMAP_MODE_LINEAR
  4155. };
  4156. VULKAN_HPP_INLINE std::string to_string( SamplerMipmapMode value )
  4157. {
  4158. switch ( value )
  4159. {
  4160. case SamplerMipmapMode::eNearest : return "Nearest";
  4161. case SamplerMipmapMode::eLinear : return "Linear";
  4162. default: return "invalid";
  4163. }
  4164. }
  4165. enum class SamplerReductionModeEXT
  4166. {
  4167. eWeightedAverage = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT,
  4168. eMin = VK_SAMPLER_REDUCTION_MODE_MIN_EXT,
  4169. eMax = VK_SAMPLER_REDUCTION_MODE_MAX_EXT
  4170. };
  4171. VULKAN_HPP_INLINE std::string to_string( SamplerReductionModeEXT value )
  4172. {
  4173. switch ( value )
  4174. {
  4175. case SamplerReductionModeEXT::eWeightedAverage : return "WeightedAverage";
  4176. case SamplerReductionModeEXT::eMin : return "Min";
  4177. case SamplerReductionModeEXT::eMax : return "Max";
  4178. default: return "invalid";
  4179. }
  4180. }
  4181. enum class SamplerYcbcrModelConversion
  4182. {
  4183. eRgbIdentity = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
  4184. eYcbcrIdentity = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY,
  4185. eYcbcr709 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709,
  4186. eYcbcr601 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601,
  4187. eYcbcr2020 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020,
  4188. eRgbIdentityKHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR,
  4189. eYcbcrIdentityKHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR,
  4190. eYcbcr709KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR,
  4191. eYcbcr601KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR,
  4192. eYcbcr2020KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR
  4193. };
  4194. VULKAN_HPP_INLINE std::string to_string( SamplerYcbcrModelConversion value )
  4195. {
  4196. switch ( value )
  4197. {
  4198. case SamplerYcbcrModelConversion::eRgbIdentity : return "RgbIdentity";
  4199. case SamplerYcbcrModelConversion::eYcbcrIdentity : return "YcbcrIdentity";
  4200. case SamplerYcbcrModelConversion::eYcbcr709 : return "Ycbcr709";
  4201. case SamplerYcbcrModelConversion::eYcbcr601 : return "Ycbcr601";
  4202. case SamplerYcbcrModelConversion::eYcbcr2020 : return "Ycbcr2020";
  4203. default: return "invalid";
  4204. }
  4205. }
  4206. enum class SamplerYcbcrRange
  4207. {
  4208. eItuFull = VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
  4209. eItuNarrow = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW,
  4210. eItuFullKHR = VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR,
  4211. eItuNarrowKHR = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR
  4212. };
  4213. VULKAN_HPP_INLINE std::string to_string( SamplerYcbcrRange value )
  4214. {
  4215. switch ( value )
  4216. {
  4217. case SamplerYcbcrRange::eItuFull : return "ItuFull";
  4218. case SamplerYcbcrRange::eItuNarrow : return "ItuNarrow";
  4219. default: return "invalid";
  4220. }
  4221. }
  4222. enum class ScopeNV
  4223. {
  4224. eDevice = VK_SCOPE_DEVICE_NV,
  4225. eWorkgroup = VK_SCOPE_WORKGROUP_NV,
  4226. eSubgroup = VK_SCOPE_SUBGROUP_NV,
  4227. eQueueFamily = VK_SCOPE_QUEUE_FAMILY_NV
  4228. };
  4229. VULKAN_HPP_INLINE std::string to_string( ScopeNV value )
  4230. {
  4231. switch ( value )
  4232. {
  4233. case ScopeNV::eDevice : return "Device";
  4234. case ScopeNV::eWorkgroup : return "Workgroup";
  4235. case ScopeNV::eSubgroup : return "Subgroup";
  4236. case ScopeNV::eQueueFamily : return "QueueFamily";
  4237. default: return "invalid";
  4238. }
  4239. }
  4240. enum class ShaderInfoTypeAMD
  4241. {
  4242. eStatistics = VK_SHADER_INFO_TYPE_STATISTICS_AMD,
  4243. eBinary = VK_SHADER_INFO_TYPE_BINARY_AMD,
  4244. eDisassembly = VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD
  4245. };
  4246. VULKAN_HPP_INLINE std::string to_string( ShaderInfoTypeAMD value )
  4247. {
  4248. switch ( value )
  4249. {
  4250. case ShaderInfoTypeAMD::eStatistics : return "Statistics";
  4251. case ShaderInfoTypeAMD::eBinary : return "Binary";
  4252. case ShaderInfoTypeAMD::eDisassembly : return "Disassembly";
  4253. default: return "invalid";
  4254. }
  4255. }
  4256. enum class ShadingRatePaletteEntryNV
  4257. {
  4258. eNoInvocations = VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV,
  4259. e16InvocationsPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV,
  4260. e8InvocationsPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV,
  4261. e4InvocationsPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV,
  4262. e2InvocationsPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV,
  4263. e1InvocationPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV,
  4264. e1InvocationPer2X1Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV,
  4265. e1InvocationPer1X2Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV,
  4266. e1InvocationPer2X2Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV,
  4267. e1InvocationPer4X2Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV,
  4268. e1InvocationPer2X4Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV,
  4269. e1InvocationPer4X4Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV
  4270. };
  4271. VULKAN_HPP_INLINE std::string to_string( ShadingRatePaletteEntryNV value )
  4272. {
  4273. switch ( value )
  4274. {
  4275. case ShadingRatePaletteEntryNV::eNoInvocations : return "NoInvocations";
  4276. case ShadingRatePaletteEntryNV::e16InvocationsPerPixel : return "16InvocationsPerPixel";
  4277. case ShadingRatePaletteEntryNV::e8InvocationsPerPixel : return "8InvocationsPerPixel";
  4278. case ShadingRatePaletteEntryNV::e4InvocationsPerPixel : return "4InvocationsPerPixel";
  4279. case ShadingRatePaletteEntryNV::e2InvocationsPerPixel : return "2InvocationsPerPixel";
  4280. case ShadingRatePaletteEntryNV::e1InvocationPerPixel : return "1InvocationPerPixel";
  4281. case ShadingRatePaletteEntryNV::e1InvocationPer2X1Pixels : return "1InvocationPer2X1Pixels";
  4282. case ShadingRatePaletteEntryNV::e1InvocationPer1X2Pixels : return "1InvocationPer1X2Pixels";
  4283. case ShadingRatePaletteEntryNV::e1InvocationPer2X2Pixels : return "1InvocationPer2X2Pixels";
  4284. case ShadingRatePaletteEntryNV::e1InvocationPer4X2Pixels : return "1InvocationPer4X2Pixels";
  4285. case ShadingRatePaletteEntryNV::e1InvocationPer2X4Pixels : return "1InvocationPer2X4Pixels";
  4286. case ShadingRatePaletteEntryNV::e1InvocationPer4X4Pixels : return "1InvocationPer4X4Pixels";
  4287. default: return "invalid";
  4288. }
  4289. }
  4290. enum class SharingMode
  4291. {
  4292. eExclusive = VK_SHARING_MODE_EXCLUSIVE,
  4293. eConcurrent = VK_SHARING_MODE_CONCURRENT
  4294. };
  4295. VULKAN_HPP_INLINE std::string to_string( SharingMode value )
  4296. {
  4297. switch ( value )
  4298. {
  4299. case SharingMode::eExclusive : return "Exclusive";
  4300. case SharingMode::eConcurrent : return "Concurrent";
  4301. default: return "invalid";
  4302. }
  4303. }
  4304. enum class StencilOp
  4305. {
  4306. eKeep = VK_STENCIL_OP_KEEP,
  4307. eZero = VK_STENCIL_OP_ZERO,
  4308. eReplace = VK_STENCIL_OP_REPLACE,
  4309. eIncrementAndClamp = VK_STENCIL_OP_INCREMENT_AND_CLAMP,
  4310. eDecrementAndClamp = VK_STENCIL_OP_DECREMENT_AND_CLAMP,
  4311. eInvert = VK_STENCIL_OP_INVERT,
  4312. eIncrementAndWrap = VK_STENCIL_OP_INCREMENT_AND_WRAP,
  4313. eDecrementAndWrap = VK_STENCIL_OP_DECREMENT_AND_WRAP
  4314. };
  4315. VULKAN_HPP_INLINE std::string to_string( StencilOp value )
  4316. {
  4317. switch ( value )
  4318. {
  4319. case StencilOp::eKeep : return "Keep";
  4320. case StencilOp::eZero : return "Zero";
  4321. case StencilOp::eReplace : return "Replace";
  4322. case StencilOp::eIncrementAndClamp : return "IncrementAndClamp";
  4323. case StencilOp::eDecrementAndClamp : return "DecrementAndClamp";
  4324. case StencilOp::eInvert : return "Invert";
  4325. case StencilOp::eIncrementAndWrap : return "IncrementAndWrap";
  4326. case StencilOp::eDecrementAndWrap : return "DecrementAndWrap";
  4327. default: return "invalid";
  4328. }
  4329. }
  4330. enum class StructureType
  4331. {
  4332. eApplicationInfo = VK_STRUCTURE_TYPE_APPLICATION_INFO,
  4333. eInstanceCreateInfo = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO,
  4334. eDeviceQueueCreateInfo = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO,
  4335. eDeviceCreateInfo = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO,
  4336. eSubmitInfo = VK_STRUCTURE_TYPE_SUBMIT_INFO,
  4337. eMemoryAllocateInfo = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO,
  4338. eMappedMemoryRange = VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE,
  4339. eBindSparseInfo = VK_STRUCTURE_TYPE_BIND_SPARSE_INFO,
  4340. eFenceCreateInfo = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO,
  4341. eSemaphoreCreateInfo = VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO,
  4342. eEventCreateInfo = VK_STRUCTURE_TYPE_EVENT_CREATE_INFO,
  4343. eQueryPoolCreateInfo = VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO,
  4344. eBufferCreateInfo = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,
  4345. eBufferViewCreateInfo = VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO,
  4346. eImageCreateInfo = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,
  4347. eImageViewCreateInfo = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,
  4348. eShaderModuleCreateInfo = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO,
  4349. ePipelineCacheCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO,
  4350. ePipelineShaderStageCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO,
  4351. ePipelineVertexInputStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO,
  4352. ePipelineInputAssemblyStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO,
  4353. ePipelineTessellationStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO,
  4354. ePipelineViewportStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO,
  4355. ePipelineRasterizationStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO,
  4356. ePipelineMultisampleStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO,
  4357. ePipelineDepthStencilStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO,
  4358. ePipelineColorBlendStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO,
  4359. ePipelineDynamicStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO,
  4360. eGraphicsPipelineCreateInfo = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO,
  4361. eComputePipelineCreateInfo = VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO,
  4362. ePipelineLayoutCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO,
  4363. eSamplerCreateInfo = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO,
  4364. eDescriptorSetLayoutCreateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO,
  4365. eDescriptorPoolCreateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO,
  4366. eDescriptorSetAllocateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO,
  4367. eWriteDescriptorSet = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET,
  4368. eCopyDescriptorSet = VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET,
  4369. eFramebufferCreateInfo = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO,
  4370. eRenderPassCreateInfo = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO,
  4371. eCommandPoolCreateInfo = VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO,
  4372. eCommandBufferAllocateInfo = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO,
  4373. eCommandBufferInheritanceInfo = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO,
  4374. eCommandBufferBeginInfo = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,
  4375. eRenderPassBeginInfo = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO,
  4376. eBufferMemoryBarrier = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER,
  4377. eImageMemoryBarrier = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
  4378. eMemoryBarrier = VK_STRUCTURE_TYPE_MEMORY_BARRIER,
  4379. eLoaderInstanceCreateInfo = VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO,
  4380. eLoaderDeviceCreateInfo = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO,
  4381. ePhysicalDeviceSubgroupProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES,
  4382. eBindBufferMemoryInfo = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO,
  4383. eBindImageMemoryInfo = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO,
  4384. ePhysicalDevice16BitStorageFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES,
  4385. eMemoryDedicatedRequirements = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS,
  4386. eMemoryDedicatedAllocateInfo = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
  4387. eMemoryAllocateFlagsInfo = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO,
  4388. eDeviceGroupRenderPassBeginInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO,
  4389. eDeviceGroupCommandBufferBeginInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO,
  4390. eDeviceGroupSubmitInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO,
  4391. eDeviceGroupBindSparseInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO,
  4392. eBindBufferMemoryDeviceGroupInfo = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO,
  4393. eBindImageMemoryDeviceGroupInfo = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO,
  4394. ePhysicalDeviceGroupProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES,
  4395. eDeviceGroupDeviceCreateInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO,
  4396. eBufferMemoryRequirementsInfo2 = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2,
  4397. eImageMemoryRequirementsInfo2 = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2,
  4398. eImageSparseMemoryRequirementsInfo2 = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,
  4399. eMemoryRequirements2 = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,
  4400. eSparseImageMemoryRequirements2 = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2,
  4401. ePhysicalDeviceFeatures2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
  4402. ePhysicalDeviceProperties2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2,
  4403. eFormatProperties2 = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2,
  4404. eImageFormatProperties2 = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2,
  4405. ePhysicalDeviceImageFormatInfo2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,
  4406. eQueueFamilyProperties2 = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2,
  4407. ePhysicalDeviceMemoryProperties2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2,
  4408. eSparseImageFormatProperties2 = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2,
  4409. ePhysicalDeviceSparseImageFormatInfo2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2,
  4410. ePhysicalDevicePointClippingProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES,
  4411. eRenderPassInputAttachmentAspectCreateInfo = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO,
  4412. eImageViewUsageCreateInfo = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO,
  4413. ePipelineTessellationDomainOriginStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,
  4414. eRenderPassMultiviewCreateInfo = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
  4415. ePhysicalDeviceMultiviewFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
  4416. ePhysicalDeviceMultiviewProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
  4417. ePhysicalDeviceVariablePointersFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
  4418. eProtectedSubmitInfo = VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO,
  4419. ePhysicalDeviceProtectedMemoryFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES,
  4420. ePhysicalDeviceProtectedMemoryProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES,
  4421. eDeviceQueueInfo2 = VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2,
  4422. eSamplerYcbcrConversionCreateInfo = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO,
  4423. eSamplerYcbcrConversionInfo = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO,
  4424. eBindImagePlaneMemoryInfo = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO,
  4425. eImagePlaneMemoryRequirementsInfo = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO,
  4426. ePhysicalDeviceSamplerYcbcrConversionFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES,
  4427. eSamplerYcbcrConversionImageFormatProperties = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES,
  4428. eDescriptorUpdateTemplateCreateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,
  4429. ePhysicalDeviceExternalImageFormatInfo = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO,
  4430. eExternalImageFormatProperties = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES,
  4431. ePhysicalDeviceExternalBufferInfo = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO,
  4432. eExternalBufferProperties = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES,
  4433. ePhysicalDeviceIdProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES,
  4434. eExternalMemoryBufferCreateInfo = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
  4435. eExternalMemoryImageCreateInfo = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO,
  4436. eExportMemoryAllocateInfo = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO,
  4437. ePhysicalDeviceExternalFenceInfo = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO,
  4438. eExternalFenceProperties = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES,
  4439. eExportFenceCreateInfo = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO,
  4440. eExportSemaphoreCreateInfo = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO,
  4441. ePhysicalDeviceExternalSemaphoreInfo = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO,
  4442. eExternalSemaphoreProperties = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES,
  4443. ePhysicalDeviceMaintenance3Properties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,
  4444. eDescriptorSetLayoutSupport = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT,
  4445. ePhysicalDeviceShaderDrawParametersFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
  4446. eSwapchainCreateInfoKHR = VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR,
  4447. ePresentInfoKHR = VK_STRUCTURE_TYPE_PRESENT_INFO_KHR,
  4448. eDeviceGroupPresentCapabilitiesKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR,
  4449. eImageSwapchainCreateInfoKHR = VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR,
  4450. eBindImageMemorySwapchainInfoKHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR,
  4451. eAcquireNextImageInfoKHR = VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR,
  4452. eDeviceGroupPresentInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR,
  4453. eDeviceGroupSwapchainCreateInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR,
  4454. eDisplayModeCreateInfoKHR = VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR,
  4455. eDisplaySurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR,
  4456. eDisplayPresentInfoKHR = VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR,
  4457. eXlibSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR,
  4458. eXcbSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR,
  4459. eWaylandSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR,
  4460. eAndroidSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR,
  4461. eWin32SurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR,
  4462. eDebugReportCallbackCreateInfoEXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
  4463. ePipelineRasterizationStateRasterizationOrderAMD = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD,
  4464. eDebugMarkerObjectNameInfoEXT = VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT,
  4465. eDebugMarkerObjectTagInfoEXT = VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT,
  4466. eDebugMarkerMarkerInfoEXT = VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT,
  4467. eDedicatedAllocationImageCreateInfoNV = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV,
  4468. eDedicatedAllocationBufferCreateInfoNV = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV,
  4469. eDedicatedAllocationMemoryAllocateInfoNV = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV,
  4470. ePhysicalDeviceTransformFeedbackFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT,
  4471. ePhysicalDeviceTransformFeedbackPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT,
  4472. ePipelineRasterizationStateStreamCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT,
  4473. eImageViewHandleInfoNVX = VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX,
  4474. eTextureLodGatherFormatPropertiesAMD = VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD,
  4475. eStreamDescriptorSurfaceCreateInfoGGP = VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP,
  4476. ePhysicalDeviceCornerSampledImageFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV,
  4477. eExternalMemoryImageCreateInfoNV = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV,
  4478. eExportMemoryAllocateInfoNV = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV,
  4479. eImportMemoryWin32HandleInfoNV = VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV,
  4480. eExportMemoryWin32HandleInfoNV = VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV,
  4481. eWin32KeyedMutexAcquireReleaseInfoNV = VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV,
  4482. eValidationFlagsEXT = VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT,
  4483. eViSurfaceCreateInfoNN = VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN,
  4484. eImageViewAstcDecodeModeEXT = VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT,
  4485. ePhysicalDeviceAstcDecodeFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT,
  4486. eImportMemoryWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR,
  4487. eExportMemoryWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR,
  4488. eMemoryWin32HandlePropertiesKHR = VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR,
  4489. eMemoryGetWin32HandleInfoKHR = VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR,
  4490. eImportMemoryFdInfoKHR = VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR,
  4491. eMemoryFdPropertiesKHR = VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR,
  4492. eMemoryGetFdInfoKHR = VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR,
  4493. eWin32KeyedMutexAcquireReleaseInfoKHR = VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR,
  4494. eImportSemaphoreWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR,
  4495. eExportSemaphoreWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR,
  4496. eD3D12FenceSubmitInfoKHR = VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR,
  4497. eSemaphoreGetWin32HandleInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR,
  4498. eImportSemaphoreFdInfoKHR = VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR,
  4499. eSemaphoreGetFdInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR,
  4500. ePhysicalDevicePushDescriptorPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR,
  4501. eCommandBufferInheritanceConditionalRenderingInfoEXT = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT,
  4502. ePhysicalDeviceConditionalRenderingFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT,
  4503. eConditionalRenderingBeginInfoEXT = VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT,
  4504. ePhysicalDeviceFloat16Int8FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR,
  4505. ePresentRegionsKHR = VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR,
  4506. eObjectTableCreateInfoNVX = VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX,
  4507. eIndirectCommandsLayoutCreateInfoNVX = VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX,
  4508. eCmdProcessCommandsInfoNVX = VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX,
  4509. eCmdReserveSpaceForCommandsInfoNVX = VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX,
  4510. eDeviceGeneratedCommandsLimitsNVX = VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX,
  4511. eDeviceGeneratedCommandsFeaturesNVX = VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX,
  4512. ePipelineViewportWScalingStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV,
  4513. eSurfaceCapabilities2EXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT,
  4514. eDisplayPowerInfoEXT = VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT,
  4515. eDeviceEventInfoEXT = VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT,
  4516. eDisplayEventInfoEXT = VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT,
  4517. eSwapchainCounterCreateInfoEXT = VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT,
  4518. ePresentTimesInfoGOOGLE = VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE,
  4519. ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX,
  4520. ePipelineViewportSwizzleStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV,
  4521. ePhysicalDeviceDiscardRectanglePropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT,
  4522. ePipelineDiscardRectangleStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT,
  4523. ePhysicalDeviceConservativeRasterizationPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT,
  4524. ePipelineRasterizationConservativeStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT,
  4525. ePhysicalDeviceDepthClipEnableFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT,
  4526. ePipelineRasterizationDepthClipStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT,
  4527. eHdrMetadataEXT = VK_STRUCTURE_TYPE_HDR_METADATA_EXT,
  4528. ePhysicalDeviceImagelessFramebufferFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR,
  4529. eFramebufferAttachmentsCreateInfoKHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR,
  4530. eFramebufferAttachmentImageInfoKHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR,
  4531. eRenderPassAttachmentBeginInfoKHR = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR,
  4532. eAttachmentDescription2KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR,
  4533. eAttachmentReference2KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR,
  4534. eSubpassDescription2KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR,
  4535. eSubpassDependency2KHR = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR,
  4536. eRenderPassCreateInfo2KHR = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR,
  4537. eSubpassBeginInfoKHR = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR,
  4538. eSubpassEndInfoKHR = VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR,
  4539. eSharedPresentSurfaceCapabilitiesKHR = VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR,
  4540. eImportFenceWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR,
  4541. eExportFenceWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR,
  4542. eFenceGetWin32HandleInfoKHR = VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR,
  4543. eImportFenceFdInfoKHR = VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR,
  4544. eFenceGetFdInfoKHR = VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR,
  4545. ePhysicalDeviceSurfaceInfo2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR,
  4546. eSurfaceCapabilities2KHR = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR,
  4547. eSurfaceFormat2KHR = VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR,
  4548. eDisplayProperties2KHR = VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR,
  4549. eDisplayPlaneProperties2KHR = VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR,
  4550. eDisplayModeProperties2KHR = VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR,
  4551. eDisplayPlaneInfo2KHR = VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR,
  4552. eDisplayPlaneCapabilities2KHR = VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR,
  4553. eIosSurfaceCreateInfoMVK = VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK,
  4554. eMacosSurfaceCreateInfoMVK = VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK,
  4555. eDebugUtilsObjectNameInfoEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT,
  4556. eDebugUtilsObjectTagInfoEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT,
  4557. eDebugUtilsLabelEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT,
  4558. eDebugUtilsMessengerCallbackDataEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT,
  4559. eDebugUtilsMessengerCreateInfoEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT,
  4560. eAndroidHardwareBufferUsageANDROID = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID,
  4561. eAndroidHardwareBufferPropertiesANDROID = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID,
  4562. eAndroidHardwareBufferFormatPropertiesANDROID = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID,
  4563. eImportAndroidHardwareBufferInfoANDROID = VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID,
  4564. eMemoryGetAndroidHardwareBufferInfoANDROID = VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID,
  4565. eExternalFormatANDROID = VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID,
  4566. ePhysicalDeviceSamplerFilterMinmaxPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT,
  4567. eSamplerReductionModeCreateInfoEXT = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT,
  4568. ePhysicalDeviceInlineUniformBlockFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT,
  4569. ePhysicalDeviceInlineUniformBlockPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT,
  4570. eWriteDescriptorSetInlineUniformBlockEXT = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT,
  4571. eDescriptorPoolInlineUniformBlockCreateInfoEXT = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT,
  4572. eSampleLocationsInfoEXT = VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT,
  4573. eRenderPassSampleLocationsBeginInfoEXT = VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT,
  4574. ePipelineSampleLocationsStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT,
  4575. ePhysicalDeviceSampleLocationsPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT,
  4576. eMultisamplePropertiesEXT = VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT,
  4577. eImageFormatListCreateInfoKHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR,
  4578. ePhysicalDeviceBlendOperationAdvancedFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT,
  4579. ePhysicalDeviceBlendOperationAdvancedPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT,
  4580. ePipelineColorBlendAdvancedStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT,
  4581. ePipelineCoverageToColorStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV,
  4582. ePipelineCoverageModulationStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV,
  4583. ePhysicalDeviceShaderSmBuiltinsFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV,
  4584. ePhysicalDeviceShaderSmBuiltinsPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV,
  4585. eDrmFormatModifierPropertiesListEXT = VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT,
  4586. eDrmFormatModifierPropertiesEXT = VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT,
  4587. ePhysicalDeviceImageDrmFormatModifierInfoEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT,
  4588. eImageDrmFormatModifierListCreateInfoEXT = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT,
  4589. eImageDrmFormatModifierExplicitCreateInfoEXT = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT,
  4590. eImageDrmFormatModifierPropertiesEXT = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT,
  4591. eValidationCacheCreateInfoEXT = VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT,
  4592. eShaderModuleValidationCacheCreateInfoEXT = VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT,
  4593. eDescriptorSetLayoutBindingFlagsCreateInfoEXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT,
  4594. ePhysicalDeviceDescriptorIndexingFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT,
  4595. ePhysicalDeviceDescriptorIndexingPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT,
  4596. eDescriptorSetVariableDescriptorCountAllocateInfoEXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT,
  4597. eDescriptorSetVariableDescriptorCountLayoutSupportEXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT,
  4598. ePipelineViewportShadingRateImageStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV,
  4599. ePhysicalDeviceShadingRateImageFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV,
  4600. ePhysicalDeviceShadingRateImagePropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV,
  4601. ePipelineViewportCoarseSampleOrderStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV,
  4602. eRayTracingPipelineCreateInfoNV = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV,
  4603. eAccelerationStructureCreateInfoNV = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV,
  4604. eGeometryNV = VK_STRUCTURE_TYPE_GEOMETRY_NV,
  4605. eGeometryTrianglesNV = VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV,
  4606. eGeometryAabbNV = VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV,
  4607. eBindAccelerationStructureMemoryInfoNV = VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV,
  4608. eWriteDescriptorSetAccelerationStructureNV = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV,
  4609. eAccelerationStructureMemoryRequirementsInfoNV = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV,
  4610. ePhysicalDeviceRayTracingPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV,
  4611. eRayTracingShaderGroupCreateInfoNV = VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV,
  4612. eAccelerationStructureInfoNV = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV,
  4613. ePhysicalDeviceRepresentativeFragmentTestFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV,
  4614. ePipelineRepresentativeFragmentTestStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV,
  4615. ePhysicalDeviceImageViewImageFormatInfoEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT,
  4616. eFilterCubicImageViewImageFormatPropertiesEXT = VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT,
  4617. eDeviceQueueGlobalPriorityCreateInfoEXT = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT,
  4618. ePhysicalDevice8BitStorageFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR,
  4619. eImportMemoryHostPointerInfoEXT = VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT,
  4620. eMemoryHostPointerPropertiesEXT = VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT,
  4621. ePhysicalDeviceExternalMemoryHostPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT,
  4622. ePhysicalDeviceShaderAtomicInt64FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR,
  4623. eCalibratedTimestampInfoEXT = VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT,
  4624. ePhysicalDeviceShaderCorePropertiesAMD = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD,
  4625. eDeviceMemoryOverallocationCreateInfoAMD = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD,
  4626. ePhysicalDeviceVertexAttributeDivisorPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT,
  4627. ePipelineVertexInputDivisorStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT,
  4628. ePhysicalDeviceVertexAttributeDivisorFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT,
  4629. ePresentFrameTokenGGP = VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP,
  4630. ePipelineCreationFeedbackCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT,
  4631. ePhysicalDeviceDriverPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR,
  4632. ePhysicalDeviceFloatControlsPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR,
  4633. ePhysicalDeviceDepthStencilResolvePropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR,
  4634. eSubpassDescriptionDepthStencilResolveKHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR,
  4635. ePhysicalDeviceComputeShaderDerivativesFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV,
  4636. ePhysicalDeviceMeshShaderFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV,
  4637. ePhysicalDeviceMeshShaderPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV,
  4638. ePhysicalDeviceFragmentShaderBarycentricFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV,
  4639. ePhysicalDeviceShaderImageFootprintFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV,
  4640. ePipelineViewportExclusiveScissorStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV,
  4641. ePhysicalDeviceExclusiveScissorFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV,
  4642. eCheckpointDataNV = VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV,
  4643. eQueueFamilyCheckpointPropertiesNV = VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV,
  4644. ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS2_FEATURES_INTEL,
  4645. eQueryPoolCreateInfoINTEL = VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL,
  4646. eInitializePerformanceApiInfoINTEL = VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL,
  4647. ePerformanceMarkerInfoINTEL = VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL,
  4648. ePerformanceStreamMarkerInfoINTEL = VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL,
  4649. ePerformanceOverrideInfoINTEL = VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL,
  4650. ePerformanceConfigurationAcquireInfoINTEL = VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL,
  4651. ePhysicalDeviceVulkanMemoryModelFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR,
  4652. ePhysicalDevicePciBusInfoPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT,
  4653. eDisplayNativeHdrSurfaceCapabilitiesAMD = VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD,
  4654. eSwapchainDisplayNativeHdrCreateInfoAMD = VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD,
  4655. eImagepipeSurfaceCreateInfoFUCHSIA = VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA,
  4656. eMetalSurfaceCreateInfoEXT = VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT,
  4657. ePhysicalDeviceFragmentDensityMapFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT,
  4658. ePhysicalDeviceFragmentDensityMapPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT,
  4659. eRenderPassFragmentDensityMapCreateInfoEXT = VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT,
  4660. ePhysicalDeviceScalarBlockLayoutFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT,
  4661. ePhysicalDeviceMemoryBudgetPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT,
  4662. ePhysicalDeviceMemoryPriorityFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT,
  4663. eMemoryPriorityAllocateInfoEXT = VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT,
  4664. eSurfaceProtectedCapabilitiesKHR = VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR,
  4665. ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV,
  4666. ePhysicalDeviceBufferDeviceAddressFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT,
  4667. eBufferDeviceAddressInfoEXT = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT,
  4668. eBufferDeviceAddressCreateInfoEXT = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT,
  4669. eImageStencilUsageCreateInfoEXT = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT,
  4670. eValidationFeaturesEXT = VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT,
  4671. ePhysicalDeviceCooperativeMatrixFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV,
  4672. eCooperativeMatrixPropertiesNV = VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV,
  4673. ePhysicalDeviceCooperativeMatrixPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV,
  4674. ePhysicalDeviceCoverageReductionModeFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV,
  4675. ePipelineCoverageReductionStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV,
  4676. eFramebufferMixedSamplesCombinationNV = VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV,
  4677. ePhysicalDeviceFragmentShaderInterlockFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT,
  4678. ePhysicalDeviceYcbcrImageArraysFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT,
  4679. ePhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR,
  4680. eSurfaceFullScreenExclusiveInfoEXT = VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT,
  4681. eSurfaceCapabilitiesFullScreenExclusiveEXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT,
  4682. eSurfaceFullScreenExclusiveWin32InfoEXT = VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT,
  4683. eHeadlessSurfaceCreateInfoEXT = VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT,
  4684. ePhysicalDeviceHostQueryResetFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT,
  4685. ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT,
  4686. ePhysicalDeviceTexelBufferAlignmentFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT,
  4687. ePhysicalDeviceTexelBufferAlignmentPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT,
  4688. ePhysicalDeviceVariablePointerFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES,
  4689. ePhysicalDeviceShaderDrawParameterFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES,
  4690. eDebugReportCreateInfoEXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT,
  4691. eRenderPassMultiviewCreateInfoKHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR,
  4692. ePhysicalDeviceMultiviewFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR,
  4693. ePhysicalDeviceMultiviewPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR,
  4694. ePhysicalDeviceFeatures2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR,
  4695. ePhysicalDeviceProperties2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR,
  4696. eFormatProperties2KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR,
  4697. eImageFormatProperties2KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR,
  4698. ePhysicalDeviceImageFormatInfo2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR,
  4699. eQueueFamilyProperties2KHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR,
  4700. ePhysicalDeviceMemoryProperties2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR,
  4701. eSparseImageFormatProperties2KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR,
  4702. ePhysicalDeviceSparseImageFormatInfo2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR,
  4703. eMemoryAllocateFlagsInfoKHR = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR,
  4704. eDeviceGroupRenderPassBeginInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR,
  4705. eDeviceGroupCommandBufferBeginInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR,
  4706. eDeviceGroupSubmitInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR,
  4707. eDeviceGroupBindSparseInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR,
  4708. eBindBufferMemoryDeviceGroupInfoKHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR,
  4709. eBindImageMemoryDeviceGroupInfoKHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR,
  4710. ePhysicalDeviceGroupPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR,
  4711. eDeviceGroupDeviceCreateInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR,
  4712. ePhysicalDeviceExternalImageFormatInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR,
  4713. eExternalImageFormatPropertiesKHR = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR,
  4714. ePhysicalDeviceExternalBufferInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR,
  4715. eExternalBufferPropertiesKHR = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR,
  4716. ePhysicalDeviceIdPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR,
  4717. eExternalMemoryBufferCreateInfoKHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR,
  4718. eExternalMemoryImageCreateInfoKHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR,
  4719. eExportMemoryAllocateInfoKHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR,
  4720. ePhysicalDeviceExternalSemaphoreInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR,
  4721. eExternalSemaphorePropertiesKHR = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR,
  4722. eExportSemaphoreCreateInfoKHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR,
  4723. ePhysicalDevice16BitStorageFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR,
  4724. eDescriptorUpdateTemplateCreateInfoKHR = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR,
  4725. ePhysicalDeviceExternalFenceInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR,
  4726. eExternalFencePropertiesKHR = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR,
  4727. eExportFenceCreateInfoKHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR,
  4728. ePhysicalDevicePointClippingPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR,
  4729. eRenderPassInputAttachmentAspectCreateInfoKHR = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR,
  4730. eImageViewUsageCreateInfoKHR = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR,
  4731. ePipelineTessellationDomainOriginStateCreateInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR,
  4732. ePhysicalDeviceVariablePointerFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR,
  4733. ePhysicalDeviceVariablePointersFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR,
  4734. eMemoryDedicatedRequirementsKHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR,
  4735. eMemoryDedicatedAllocateInfoKHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR,
  4736. eBufferMemoryRequirementsInfo2KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR,
  4737. eImageMemoryRequirementsInfo2KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR,
  4738. eImageSparseMemoryRequirementsInfo2KHR = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR,
  4739. eMemoryRequirements2KHR = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR,
  4740. eSparseImageMemoryRequirements2KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR,
  4741. eSamplerYcbcrConversionCreateInfoKHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR,
  4742. eSamplerYcbcrConversionInfoKHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR,
  4743. eBindImagePlaneMemoryInfoKHR = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR,
  4744. eImagePlaneMemoryRequirementsInfoKHR = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR,
  4745. ePhysicalDeviceSamplerYcbcrConversionFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR,
  4746. eSamplerYcbcrConversionImageFormatPropertiesKHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR,
  4747. eBindBufferMemoryInfoKHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR,
  4748. eBindImageMemoryInfoKHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR,
  4749. ePhysicalDeviceMaintenance3PropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR,
  4750. eDescriptorSetLayoutSupportKHR = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR,
  4751. ePhysicalDeviceBufferAddressFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT
  4752. };
  4753. VULKAN_HPP_INLINE std::string to_string( StructureType value )
  4754. {
  4755. switch ( value )
  4756. {
  4757. case StructureType::eApplicationInfo : return "ApplicationInfo";
  4758. case StructureType::eInstanceCreateInfo : return "InstanceCreateInfo";
  4759. case StructureType::eDeviceQueueCreateInfo : return "DeviceQueueCreateInfo";
  4760. case StructureType::eDeviceCreateInfo : return "DeviceCreateInfo";
  4761. case StructureType::eSubmitInfo : return "SubmitInfo";
  4762. case StructureType::eMemoryAllocateInfo : return "MemoryAllocateInfo";
  4763. case StructureType::eMappedMemoryRange : return "MappedMemoryRange";
  4764. case StructureType::eBindSparseInfo : return "BindSparseInfo";
  4765. case StructureType::eFenceCreateInfo : return "FenceCreateInfo";
  4766. case StructureType::eSemaphoreCreateInfo : return "SemaphoreCreateInfo";
  4767. case StructureType::eEventCreateInfo : return "EventCreateInfo";
  4768. case StructureType::eQueryPoolCreateInfo : return "QueryPoolCreateInfo";
  4769. case StructureType::eBufferCreateInfo : return "BufferCreateInfo";
  4770. case StructureType::eBufferViewCreateInfo : return "BufferViewCreateInfo";
  4771. case StructureType::eImageCreateInfo : return "ImageCreateInfo";
  4772. case StructureType::eImageViewCreateInfo : return "ImageViewCreateInfo";
  4773. case StructureType::eShaderModuleCreateInfo : return "ShaderModuleCreateInfo";
  4774. case StructureType::ePipelineCacheCreateInfo : return "PipelineCacheCreateInfo";
  4775. case StructureType::ePipelineShaderStageCreateInfo : return "PipelineShaderStageCreateInfo";
  4776. case StructureType::ePipelineVertexInputStateCreateInfo : return "PipelineVertexInputStateCreateInfo";
  4777. case StructureType::ePipelineInputAssemblyStateCreateInfo : return "PipelineInputAssemblyStateCreateInfo";
  4778. case StructureType::ePipelineTessellationStateCreateInfo : return "PipelineTessellationStateCreateInfo";
  4779. case StructureType::ePipelineViewportStateCreateInfo : return "PipelineViewportStateCreateInfo";
  4780. case StructureType::ePipelineRasterizationStateCreateInfo : return "PipelineRasterizationStateCreateInfo";
  4781. case StructureType::ePipelineMultisampleStateCreateInfo : return "PipelineMultisampleStateCreateInfo";
  4782. case StructureType::ePipelineDepthStencilStateCreateInfo : return "PipelineDepthStencilStateCreateInfo";
  4783. case StructureType::ePipelineColorBlendStateCreateInfo : return "PipelineColorBlendStateCreateInfo";
  4784. case StructureType::ePipelineDynamicStateCreateInfo : return "PipelineDynamicStateCreateInfo";
  4785. case StructureType::eGraphicsPipelineCreateInfo : return "GraphicsPipelineCreateInfo";
  4786. case StructureType::eComputePipelineCreateInfo : return "ComputePipelineCreateInfo";
  4787. case StructureType::ePipelineLayoutCreateInfo : return "PipelineLayoutCreateInfo";
  4788. case StructureType::eSamplerCreateInfo : return "SamplerCreateInfo";
  4789. case StructureType::eDescriptorSetLayoutCreateInfo : return "DescriptorSetLayoutCreateInfo";
  4790. case StructureType::eDescriptorPoolCreateInfo : return "DescriptorPoolCreateInfo";
  4791. case StructureType::eDescriptorSetAllocateInfo : return "DescriptorSetAllocateInfo";
  4792. case StructureType::eWriteDescriptorSet : return "WriteDescriptorSet";
  4793. case StructureType::eCopyDescriptorSet : return "CopyDescriptorSet";
  4794. case StructureType::eFramebufferCreateInfo : return "FramebufferCreateInfo";
  4795. case StructureType::eRenderPassCreateInfo : return "RenderPassCreateInfo";
  4796. case StructureType::eCommandPoolCreateInfo : return "CommandPoolCreateInfo";
  4797. case StructureType::eCommandBufferAllocateInfo : return "CommandBufferAllocateInfo";
  4798. case StructureType::eCommandBufferInheritanceInfo : return "CommandBufferInheritanceInfo";
  4799. case StructureType::eCommandBufferBeginInfo : return "CommandBufferBeginInfo";
  4800. case StructureType::eRenderPassBeginInfo : return "RenderPassBeginInfo";
  4801. case StructureType::eBufferMemoryBarrier : return "BufferMemoryBarrier";
  4802. case StructureType::eImageMemoryBarrier : return "ImageMemoryBarrier";
  4803. case StructureType::eMemoryBarrier : return "MemoryBarrier";
  4804. case StructureType::eLoaderInstanceCreateInfo : return "LoaderInstanceCreateInfo";
  4805. case StructureType::eLoaderDeviceCreateInfo : return "LoaderDeviceCreateInfo";
  4806. case StructureType::ePhysicalDeviceSubgroupProperties : return "PhysicalDeviceSubgroupProperties";
  4807. case StructureType::eBindBufferMemoryInfo : return "BindBufferMemoryInfo";
  4808. case StructureType::eBindImageMemoryInfo : return "BindImageMemoryInfo";
  4809. case StructureType::ePhysicalDevice16BitStorageFeatures : return "PhysicalDevice16BitStorageFeatures";
  4810. case StructureType::eMemoryDedicatedRequirements : return "MemoryDedicatedRequirements";
  4811. case StructureType::eMemoryDedicatedAllocateInfo : return "MemoryDedicatedAllocateInfo";
  4812. case StructureType::eMemoryAllocateFlagsInfo : return "MemoryAllocateFlagsInfo";
  4813. case StructureType::eDeviceGroupRenderPassBeginInfo : return "DeviceGroupRenderPassBeginInfo";
  4814. case StructureType::eDeviceGroupCommandBufferBeginInfo : return "DeviceGroupCommandBufferBeginInfo";
  4815. case StructureType::eDeviceGroupSubmitInfo : return "DeviceGroupSubmitInfo";
  4816. case StructureType::eDeviceGroupBindSparseInfo : return "DeviceGroupBindSparseInfo";
  4817. case StructureType::eBindBufferMemoryDeviceGroupInfo : return "BindBufferMemoryDeviceGroupInfo";
  4818. case StructureType::eBindImageMemoryDeviceGroupInfo : return "BindImageMemoryDeviceGroupInfo";
  4819. case StructureType::ePhysicalDeviceGroupProperties : return "PhysicalDeviceGroupProperties";
  4820. case StructureType::eDeviceGroupDeviceCreateInfo : return "DeviceGroupDeviceCreateInfo";
  4821. case StructureType::eBufferMemoryRequirementsInfo2 : return "BufferMemoryRequirementsInfo2";
  4822. case StructureType::eImageMemoryRequirementsInfo2 : return "ImageMemoryRequirementsInfo2";
  4823. case StructureType::eImageSparseMemoryRequirementsInfo2 : return "ImageSparseMemoryRequirementsInfo2";
  4824. case StructureType::eMemoryRequirements2 : return "MemoryRequirements2";
  4825. case StructureType::eSparseImageMemoryRequirements2 : return "SparseImageMemoryRequirements2";
  4826. case StructureType::ePhysicalDeviceFeatures2 : return "PhysicalDeviceFeatures2";
  4827. case StructureType::ePhysicalDeviceProperties2 : return "PhysicalDeviceProperties2";
  4828. case StructureType::eFormatProperties2 : return "FormatProperties2";
  4829. case StructureType::eImageFormatProperties2 : return "ImageFormatProperties2";
  4830. case StructureType::ePhysicalDeviceImageFormatInfo2 : return "PhysicalDeviceImageFormatInfo2";
  4831. case StructureType::eQueueFamilyProperties2 : return "QueueFamilyProperties2";
  4832. case StructureType::ePhysicalDeviceMemoryProperties2 : return "PhysicalDeviceMemoryProperties2";
  4833. case StructureType::eSparseImageFormatProperties2 : return "SparseImageFormatProperties2";
  4834. case StructureType::ePhysicalDeviceSparseImageFormatInfo2 : return "PhysicalDeviceSparseImageFormatInfo2";
  4835. case StructureType::ePhysicalDevicePointClippingProperties : return "PhysicalDevicePointClippingProperties";
  4836. case StructureType::eRenderPassInputAttachmentAspectCreateInfo : return "RenderPassInputAttachmentAspectCreateInfo";
  4837. case StructureType::eImageViewUsageCreateInfo : return "ImageViewUsageCreateInfo";
  4838. case StructureType::ePipelineTessellationDomainOriginStateCreateInfo : return "PipelineTessellationDomainOriginStateCreateInfo";
  4839. case StructureType::eRenderPassMultiviewCreateInfo : return "RenderPassMultiviewCreateInfo";
  4840. case StructureType::ePhysicalDeviceMultiviewFeatures : return "PhysicalDeviceMultiviewFeatures";
  4841. case StructureType::ePhysicalDeviceMultiviewProperties : return "PhysicalDeviceMultiviewProperties";
  4842. case StructureType::ePhysicalDeviceVariablePointersFeatures : return "PhysicalDeviceVariablePointersFeatures";
  4843. case StructureType::eProtectedSubmitInfo : return "ProtectedSubmitInfo";
  4844. case StructureType::ePhysicalDeviceProtectedMemoryFeatures : return "PhysicalDeviceProtectedMemoryFeatures";
  4845. case StructureType::ePhysicalDeviceProtectedMemoryProperties : return "PhysicalDeviceProtectedMemoryProperties";
  4846. case StructureType::eDeviceQueueInfo2 : return "DeviceQueueInfo2";
  4847. case StructureType::eSamplerYcbcrConversionCreateInfo : return "SamplerYcbcrConversionCreateInfo";
  4848. case StructureType::eSamplerYcbcrConversionInfo : return "SamplerYcbcrConversionInfo";
  4849. case StructureType::eBindImagePlaneMemoryInfo : return "BindImagePlaneMemoryInfo";
  4850. case StructureType::eImagePlaneMemoryRequirementsInfo : return "ImagePlaneMemoryRequirementsInfo";
  4851. case StructureType::ePhysicalDeviceSamplerYcbcrConversionFeatures : return "PhysicalDeviceSamplerYcbcrConversionFeatures";
  4852. case StructureType::eSamplerYcbcrConversionImageFormatProperties : return "SamplerYcbcrConversionImageFormatProperties";
  4853. case StructureType::eDescriptorUpdateTemplateCreateInfo : return "DescriptorUpdateTemplateCreateInfo";
  4854. case StructureType::ePhysicalDeviceExternalImageFormatInfo : return "PhysicalDeviceExternalImageFormatInfo";
  4855. case StructureType::eExternalImageFormatProperties : return "ExternalImageFormatProperties";
  4856. case StructureType::ePhysicalDeviceExternalBufferInfo : return "PhysicalDeviceExternalBufferInfo";
  4857. case StructureType::eExternalBufferProperties : return "ExternalBufferProperties";
  4858. case StructureType::ePhysicalDeviceIdProperties : return "PhysicalDeviceIdProperties";
  4859. case StructureType::eExternalMemoryBufferCreateInfo : return "ExternalMemoryBufferCreateInfo";
  4860. case StructureType::eExternalMemoryImageCreateInfo : return "ExternalMemoryImageCreateInfo";
  4861. case StructureType::eExportMemoryAllocateInfo : return "ExportMemoryAllocateInfo";
  4862. case StructureType::ePhysicalDeviceExternalFenceInfo : return "PhysicalDeviceExternalFenceInfo";
  4863. case StructureType::eExternalFenceProperties : return "ExternalFenceProperties";
  4864. case StructureType::eExportFenceCreateInfo : return "ExportFenceCreateInfo";
  4865. case StructureType::eExportSemaphoreCreateInfo : return "ExportSemaphoreCreateInfo";
  4866. case StructureType::ePhysicalDeviceExternalSemaphoreInfo : return "PhysicalDeviceExternalSemaphoreInfo";
  4867. case StructureType::eExternalSemaphoreProperties : return "ExternalSemaphoreProperties";
  4868. case StructureType::ePhysicalDeviceMaintenance3Properties : return "PhysicalDeviceMaintenance3Properties";
  4869. case StructureType::eDescriptorSetLayoutSupport : return "DescriptorSetLayoutSupport";
  4870. case StructureType::ePhysicalDeviceShaderDrawParametersFeatures : return "PhysicalDeviceShaderDrawParametersFeatures";
  4871. case StructureType::eSwapchainCreateInfoKHR : return "SwapchainCreateInfoKHR";
  4872. case StructureType::ePresentInfoKHR : return "PresentInfoKHR";
  4873. case StructureType::eDeviceGroupPresentCapabilitiesKHR : return "DeviceGroupPresentCapabilitiesKHR";
  4874. case StructureType::eImageSwapchainCreateInfoKHR : return "ImageSwapchainCreateInfoKHR";
  4875. case StructureType::eBindImageMemorySwapchainInfoKHR : return "BindImageMemorySwapchainInfoKHR";
  4876. case StructureType::eAcquireNextImageInfoKHR : return "AcquireNextImageInfoKHR";
  4877. case StructureType::eDeviceGroupPresentInfoKHR : return "DeviceGroupPresentInfoKHR";
  4878. case StructureType::eDeviceGroupSwapchainCreateInfoKHR : return "DeviceGroupSwapchainCreateInfoKHR";
  4879. case StructureType::eDisplayModeCreateInfoKHR : return "DisplayModeCreateInfoKHR";
  4880. case StructureType::eDisplaySurfaceCreateInfoKHR : return "DisplaySurfaceCreateInfoKHR";
  4881. case StructureType::eDisplayPresentInfoKHR : return "DisplayPresentInfoKHR";
  4882. case StructureType::eXlibSurfaceCreateInfoKHR : return "XlibSurfaceCreateInfoKHR";
  4883. case StructureType::eXcbSurfaceCreateInfoKHR : return "XcbSurfaceCreateInfoKHR";
  4884. case StructureType::eWaylandSurfaceCreateInfoKHR : return "WaylandSurfaceCreateInfoKHR";
  4885. case StructureType::eAndroidSurfaceCreateInfoKHR : return "AndroidSurfaceCreateInfoKHR";
  4886. case StructureType::eWin32SurfaceCreateInfoKHR : return "Win32SurfaceCreateInfoKHR";
  4887. case StructureType::eDebugReportCallbackCreateInfoEXT : return "DebugReportCallbackCreateInfoEXT";
  4888. case StructureType::ePipelineRasterizationStateRasterizationOrderAMD : return "PipelineRasterizationStateRasterizationOrderAMD";
  4889. case StructureType::eDebugMarkerObjectNameInfoEXT : return "DebugMarkerObjectNameInfoEXT";
  4890. case StructureType::eDebugMarkerObjectTagInfoEXT : return "DebugMarkerObjectTagInfoEXT";
  4891. case StructureType::eDebugMarkerMarkerInfoEXT : return "DebugMarkerMarkerInfoEXT";
  4892. case StructureType::eDedicatedAllocationImageCreateInfoNV : return "DedicatedAllocationImageCreateInfoNV";
  4893. case StructureType::eDedicatedAllocationBufferCreateInfoNV : return "DedicatedAllocationBufferCreateInfoNV";
  4894. case StructureType::eDedicatedAllocationMemoryAllocateInfoNV : return "DedicatedAllocationMemoryAllocateInfoNV";
  4895. case StructureType::ePhysicalDeviceTransformFeedbackFeaturesEXT : return "PhysicalDeviceTransformFeedbackFeaturesEXT";
  4896. case StructureType::ePhysicalDeviceTransformFeedbackPropertiesEXT : return "PhysicalDeviceTransformFeedbackPropertiesEXT";
  4897. case StructureType::ePipelineRasterizationStateStreamCreateInfoEXT : return "PipelineRasterizationStateStreamCreateInfoEXT";
  4898. case StructureType::eImageViewHandleInfoNVX : return "ImageViewHandleInfoNVX";
  4899. case StructureType::eTextureLodGatherFormatPropertiesAMD : return "TextureLodGatherFormatPropertiesAMD";
  4900. case StructureType::eStreamDescriptorSurfaceCreateInfoGGP : return "StreamDescriptorSurfaceCreateInfoGGP";
  4901. case StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV : return "PhysicalDeviceCornerSampledImageFeaturesNV";
  4902. case StructureType::eExternalMemoryImageCreateInfoNV : return "ExternalMemoryImageCreateInfoNV";
  4903. case StructureType::eExportMemoryAllocateInfoNV : return "ExportMemoryAllocateInfoNV";
  4904. case StructureType::eImportMemoryWin32HandleInfoNV : return "ImportMemoryWin32HandleInfoNV";
  4905. case StructureType::eExportMemoryWin32HandleInfoNV : return "ExportMemoryWin32HandleInfoNV";
  4906. case StructureType::eWin32KeyedMutexAcquireReleaseInfoNV : return "Win32KeyedMutexAcquireReleaseInfoNV";
  4907. case StructureType::eValidationFlagsEXT : return "ValidationFlagsEXT";
  4908. case StructureType::eViSurfaceCreateInfoNN : return "ViSurfaceCreateInfoNN";
  4909. case StructureType::eImageViewAstcDecodeModeEXT : return "ImageViewAstcDecodeModeEXT";
  4910. case StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT : return "PhysicalDeviceAstcDecodeFeaturesEXT";
  4911. case StructureType::eImportMemoryWin32HandleInfoKHR : return "ImportMemoryWin32HandleInfoKHR";
  4912. case StructureType::eExportMemoryWin32HandleInfoKHR : return "ExportMemoryWin32HandleInfoKHR";
  4913. case StructureType::eMemoryWin32HandlePropertiesKHR : return "MemoryWin32HandlePropertiesKHR";
  4914. case StructureType::eMemoryGetWin32HandleInfoKHR : return "MemoryGetWin32HandleInfoKHR";
  4915. case StructureType::eImportMemoryFdInfoKHR : return "ImportMemoryFdInfoKHR";
  4916. case StructureType::eMemoryFdPropertiesKHR : return "MemoryFdPropertiesKHR";
  4917. case StructureType::eMemoryGetFdInfoKHR : return "MemoryGetFdInfoKHR";
  4918. case StructureType::eWin32KeyedMutexAcquireReleaseInfoKHR : return "Win32KeyedMutexAcquireReleaseInfoKHR";
  4919. case StructureType::eImportSemaphoreWin32HandleInfoKHR : return "ImportSemaphoreWin32HandleInfoKHR";
  4920. case StructureType::eExportSemaphoreWin32HandleInfoKHR : return "ExportSemaphoreWin32HandleInfoKHR";
  4921. case StructureType::eD3D12FenceSubmitInfoKHR : return "D3D12FenceSubmitInfoKHR";
  4922. case StructureType::eSemaphoreGetWin32HandleInfoKHR : return "SemaphoreGetWin32HandleInfoKHR";
  4923. case StructureType::eImportSemaphoreFdInfoKHR : return "ImportSemaphoreFdInfoKHR";
  4924. case StructureType::eSemaphoreGetFdInfoKHR : return "SemaphoreGetFdInfoKHR";
  4925. case StructureType::ePhysicalDevicePushDescriptorPropertiesKHR : return "PhysicalDevicePushDescriptorPropertiesKHR";
  4926. case StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT : return "CommandBufferInheritanceConditionalRenderingInfoEXT";
  4927. case StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT : return "PhysicalDeviceConditionalRenderingFeaturesEXT";
  4928. case StructureType::eConditionalRenderingBeginInfoEXT : return "ConditionalRenderingBeginInfoEXT";
  4929. case StructureType::ePhysicalDeviceFloat16Int8FeaturesKHR : return "PhysicalDeviceFloat16Int8FeaturesKHR";
  4930. case StructureType::ePresentRegionsKHR : return "PresentRegionsKHR";
  4931. case StructureType::eObjectTableCreateInfoNVX : return "ObjectTableCreateInfoNVX";
  4932. case StructureType::eIndirectCommandsLayoutCreateInfoNVX : return "IndirectCommandsLayoutCreateInfoNVX";
  4933. case StructureType::eCmdProcessCommandsInfoNVX : return "CmdProcessCommandsInfoNVX";
  4934. case StructureType::eCmdReserveSpaceForCommandsInfoNVX : return "CmdReserveSpaceForCommandsInfoNVX";
  4935. case StructureType::eDeviceGeneratedCommandsLimitsNVX : return "DeviceGeneratedCommandsLimitsNVX";
  4936. case StructureType::eDeviceGeneratedCommandsFeaturesNVX : return "DeviceGeneratedCommandsFeaturesNVX";
  4937. case StructureType::ePipelineViewportWScalingStateCreateInfoNV : return "PipelineViewportWScalingStateCreateInfoNV";
  4938. case StructureType::eSurfaceCapabilities2EXT : return "SurfaceCapabilities2EXT";
  4939. case StructureType::eDisplayPowerInfoEXT : return "DisplayPowerInfoEXT";
  4940. case StructureType::eDeviceEventInfoEXT : return "DeviceEventInfoEXT";
  4941. case StructureType::eDisplayEventInfoEXT : return "DisplayEventInfoEXT";
  4942. case StructureType::eSwapchainCounterCreateInfoEXT : return "SwapchainCounterCreateInfoEXT";
  4943. case StructureType::ePresentTimesInfoGOOGLE : return "PresentTimesInfoGOOGLE";
  4944. case StructureType::ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX : return "PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX";
  4945. case StructureType::ePipelineViewportSwizzleStateCreateInfoNV : return "PipelineViewportSwizzleStateCreateInfoNV";
  4946. case StructureType::ePhysicalDeviceDiscardRectanglePropertiesEXT : return "PhysicalDeviceDiscardRectanglePropertiesEXT";
  4947. case StructureType::ePipelineDiscardRectangleStateCreateInfoEXT : return "PipelineDiscardRectangleStateCreateInfoEXT";
  4948. case StructureType::ePhysicalDeviceConservativeRasterizationPropertiesEXT : return "PhysicalDeviceConservativeRasterizationPropertiesEXT";
  4949. case StructureType::ePipelineRasterizationConservativeStateCreateInfoEXT : return "PipelineRasterizationConservativeStateCreateInfoEXT";
  4950. case StructureType::ePhysicalDeviceDepthClipEnableFeaturesEXT : return "PhysicalDeviceDepthClipEnableFeaturesEXT";
  4951. case StructureType::ePipelineRasterizationDepthClipStateCreateInfoEXT : return "PipelineRasterizationDepthClipStateCreateInfoEXT";
  4952. case StructureType::eHdrMetadataEXT : return "HdrMetadataEXT";
  4953. case StructureType::ePhysicalDeviceImagelessFramebufferFeaturesKHR : return "PhysicalDeviceImagelessFramebufferFeaturesKHR";
  4954. case StructureType::eFramebufferAttachmentsCreateInfoKHR : return "FramebufferAttachmentsCreateInfoKHR";
  4955. case StructureType::eFramebufferAttachmentImageInfoKHR : return "FramebufferAttachmentImageInfoKHR";
  4956. case StructureType::eRenderPassAttachmentBeginInfoKHR : return "RenderPassAttachmentBeginInfoKHR";
  4957. case StructureType::eAttachmentDescription2KHR : return "AttachmentDescription2KHR";
  4958. case StructureType::eAttachmentReference2KHR : return "AttachmentReference2KHR";
  4959. case StructureType::eSubpassDescription2KHR : return "SubpassDescription2KHR";
  4960. case StructureType::eSubpassDependency2KHR : return "SubpassDependency2KHR";
  4961. case StructureType::eRenderPassCreateInfo2KHR : return "RenderPassCreateInfo2KHR";
  4962. case StructureType::eSubpassBeginInfoKHR : return "SubpassBeginInfoKHR";
  4963. case StructureType::eSubpassEndInfoKHR : return "SubpassEndInfoKHR";
  4964. case StructureType::eSharedPresentSurfaceCapabilitiesKHR : return "SharedPresentSurfaceCapabilitiesKHR";
  4965. case StructureType::eImportFenceWin32HandleInfoKHR : return "ImportFenceWin32HandleInfoKHR";
  4966. case StructureType::eExportFenceWin32HandleInfoKHR : return "ExportFenceWin32HandleInfoKHR";
  4967. case StructureType::eFenceGetWin32HandleInfoKHR : return "FenceGetWin32HandleInfoKHR";
  4968. case StructureType::eImportFenceFdInfoKHR : return "ImportFenceFdInfoKHR";
  4969. case StructureType::eFenceGetFdInfoKHR : return "FenceGetFdInfoKHR";
  4970. case StructureType::ePhysicalDeviceSurfaceInfo2KHR : return "PhysicalDeviceSurfaceInfo2KHR";
  4971. case StructureType::eSurfaceCapabilities2KHR : return "SurfaceCapabilities2KHR";
  4972. case StructureType::eSurfaceFormat2KHR : return "SurfaceFormat2KHR";
  4973. case StructureType::eDisplayProperties2KHR : return "DisplayProperties2KHR";
  4974. case StructureType::eDisplayPlaneProperties2KHR : return "DisplayPlaneProperties2KHR";
  4975. case StructureType::eDisplayModeProperties2KHR : return "DisplayModeProperties2KHR";
  4976. case StructureType::eDisplayPlaneInfo2KHR : return "DisplayPlaneInfo2KHR";
  4977. case StructureType::eDisplayPlaneCapabilities2KHR : return "DisplayPlaneCapabilities2KHR";
  4978. case StructureType::eIosSurfaceCreateInfoMVK : return "IosSurfaceCreateInfoMVK";
  4979. case StructureType::eMacosSurfaceCreateInfoMVK : return "MacosSurfaceCreateInfoMVK";
  4980. case StructureType::eDebugUtilsObjectNameInfoEXT : return "DebugUtilsObjectNameInfoEXT";
  4981. case StructureType::eDebugUtilsObjectTagInfoEXT : return "DebugUtilsObjectTagInfoEXT";
  4982. case StructureType::eDebugUtilsLabelEXT : return "DebugUtilsLabelEXT";
  4983. case StructureType::eDebugUtilsMessengerCallbackDataEXT : return "DebugUtilsMessengerCallbackDataEXT";
  4984. case StructureType::eDebugUtilsMessengerCreateInfoEXT : return "DebugUtilsMessengerCreateInfoEXT";
  4985. case StructureType::eAndroidHardwareBufferUsageANDROID : return "AndroidHardwareBufferUsageANDROID";
  4986. case StructureType::eAndroidHardwareBufferPropertiesANDROID : return "AndroidHardwareBufferPropertiesANDROID";
  4987. case StructureType::eAndroidHardwareBufferFormatPropertiesANDROID : return "AndroidHardwareBufferFormatPropertiesANDROID";
  4988. case StructureType::eImportAndroidHardwareBufferInfoANDROID : return "ImportAndroidHardwareBufferInfoANDROID";
  4989. case StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID : return "MemoryGetAndroidHardwareBufferInfoANDROID";
  4990. case StructureType::eExternalFormatANDROID : return "ExternalFormatANDROID";
  4991. case StructureType::ePhysicalDeviceSamplerFilterMinmaxPropertiesEXT : return "PhysicalDeviceSamplerFilterMinmaxPropertiesEXT";
  4992. case StructureType::eSamplerReductionModeCreateInfoEXT : return "SamplerReductionModeCreateInfoEXT";
  4993. case StructureType::ePhysicalDeviceInlineUniformBlockFeaturesEXT : return "PhysicalDeviceInlineUniformBlockFeaturesEXT";
  4994. case StructureType::ePhysicalDeviceInlineUniformBlockPropertiesEXT : return "PhysicalDeviceInlineUniformBlockPropertiesEXT";
  4995. case StructureType::eWriteDescriptorSetInlineUniformBlockEXT : return "WriteDescriptorSetInlineUniformBlockEXT";
  4996. case StructureType::eDescriptorPoolInlineUniformBlockCreateInfoEXT : return "DescriptorPoolInlineUniformBlockCreateInfoEXT";
  4997. case StructureType::eSampleLocationsInfoEXT : return "SampleLocationsInfoEXT";
  4998. case StructureType::eRenderPassSampleLocationsBeginInfoEXT : return "RenderPassSampleLocationsBeginInfoEXT";
  4999. case StructureType::ePipelineSampleLocationsStateCreateInfoEXT : return "PipelineSampleLocationsStateCreateInfoEXT";
  5000. case StructureType::ePhysicalDeviceSampleLocationsPropertiesEXT : return "PhysicalDeviceSampleLocationsPropertiesEXT";
  5001. case StructureType::eMultisamplePropertiesEXT : return "MultisamplePropertiesEXT";
  5002. case StructureType::eImageFormatListCreateInfoKHR : return "ImageFormatListCreateInfoKHR";
  5003. case StructureType::ePhysicalDeviceBlendOperationAdvancedFeaturesEXT : return "PhysicalDeviceBlendOperationAdvancedFeaturesEXT";
  5004. case StructureType::ePhysicalDeviceBlendOperationAdvancedPropertiesEXT : return "PhysicalDeviceBlendOperationAdvancedPropertiesEXT";
  5005. case StructureType::ePipelineColorBlendAdvancedStateCreateInfoEXT : return "PipelineColorBlendAdvancedStateCreateInfoEXT";
  5006. case StructureType::ePipelineCoverageToColorStateCreateInfoNV : return "PipelineCoverageToColorStateCreateInfoNV";
  5007. case StructureType::ePipelineCoverageModulationStateCreateInfoNV : return "PipelineCoverageModulationStateCreateInfoNV";
  5008. case StructureType::ePhysicalDeviceShaderSmBuiltinsFeaturesNV : return "PhysicalDeviceShaderSmBuiltinsFeaturesNV";
  5009. case StructureType::ePhysicalDeviceShaderSmBuiltinsPropertiesNV : return "PhysicalDeviceShaderSmBuiltinsPropertiesNV";
  5010. case StructureType::eDrmFormatModifierPropertiesListEXT : return "DrmFormatModifierPropertiesListEXT";
  5011. case StructureType::eDrmFormatModifierPropertiesEXT : return "DrmFormatModifierPropertiesEXT";
  5012. case StructureType::ePhysicalDeviceImageDrmFormatModifierInfoEXT : return "PhysicalDeviceImageDrmFormatModifierInfoEXT";
  5013. case StructureType::eImageDrmFormatModifierListCreateInfoEXT : return "ImageDrmFormatModifierListCreateInfoEXT";
  5014. case StructureType::eImageDrmFormatModifierExplicitCreateInfoEXT : return "ImageDrmFormatModifierExplicitCreateInfoEXT";
  5015. case StructureType::eImageDrmFormatModifierPropertiesEXT : return "ImageDrmFormatModifierPropertiesEXT";
  5016. case StructureType::eValidationCacheCreateInfoEXT : return "ValidationCacheCreateInfoEXT";
  5017. case StructureType::eShaderModuleValidationCacheCreateInfoEXT : return "ShaderModuleValidationCacheCreateInfoEXT";
  5018. case StructureType::eDescriptorSetLayoutBindingFlagsCreateInfoEXT : return "DescriptorSetLayoutBindingFlagsCreateInfoEXT";
  5019. case StructureType::ePhysicalDeviceDescriptorIndexingFeaturesEXT : return "PhysicalDeviceDescriptorIndexingFeaturesEXT";
  5020. case StructureType::ePhysicalDeviceDescriptorIndexingPropertiesEXT : return "PhysicalDeviceDescriptorIndexingPropertiesEXT";
  5021. case StructureType::eDescriptorSetVariableDescriptorCountAllocateInfoEXT : return "DescriptorSetVariableDescriptorCountAllocateInfoEXT";
  5022. case StructureType::eDescriptorSetVariableDescriptorCountLayoutSupportEXT : return "DescriptorSetVariableDescriptorCountLayoutSupportEXT";
  5023. case StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV : return "PipelineViewportShadingRateImageStateCreateInfoNV";
  5024. case StructureType::ePhysicalDeviceShadingRateImageFeaturesNV : return "PhysicalDeviceShadingRateImageFeaturesNV";
  5025. case StructureType::ePhysicalDeviceShadingRateImagePropertiesNV : return "PhysicalDeviceShadingRateImagePropertiesNV";
  5026. case StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV : return "PipelineViewportCoarseSampleOrderStateCreateInfoNV";
  5027. case StructureType::eRayTracingPipelineCreateInfoNV : return "RayTracingPipelineCreateInfoNV";
  5028. case StructureType::eAccelerationStructureCreateInfoNV : return "AccelerationStructureCreateInfoNV";
  5029. case StructureType::eGeometryNV : return "GeometryNV";
  5030. case StructureType::eGeometryTrianglesNV : return "GeometryTrianglesNV";
  5031. case StructureType::eGeometryAabbNV : return "GeometryAabbNV";
  5032. case StructureType::eBindAccelerationStructureMemoryInfoNV : return "BindAccelerationStructureMemoryInfoNV";
  5033. case StructureType::eWriteDescriptorSetAccelerationStructureNV : return "WriteDescriptorSetAccelerationStructureNV";
  5034. case StructureType::eAccelerationStructureMemoryRequirementsInfoNV : return "AccelerationStructureMemoryRequirementsInfoNV";
  5035. case StructureType::ePhysicalDeviceRayTracingPropertiesNV : return "PhysicalDeviceRayTracingPropertiesNV";
  5036. case StructureType::eRayTracingShaderGroupCreateInfoNV : return "RayTracingShaderGroupCreateInfoNV";
  5037. case StructureType::eAccelerationStructureInfoNV : return "AccelerationStructureInfoNV";
  5038. case StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV : return "PhysicalDeviceRepresentativeFragmentTestFeaturesNV";
  5039. case StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV : return "PipelineRepresentativeFragmentTestStateCreateInfoNV";
  5040. case StructureType::ePhysicalDeviceImageViewImageFormatInfoEXT : return "PhysicalDeviceImageViewImageFormatInfoEXT";
  5041. case StructureType::eFilterCubicImageViewImageFormatPropertiesEXT : return "FilterCubicImageViewImageFormatPropertiesEXT";
  5042. case StructureType::eDeviceQueueGlobalPriorityCreateInfoEXT : return "DeviceQueueGlobalPriorityCreateInfoEXT";
  5043. case StructureType::ePhysicalDevice8BitStorageFeaturesKHR : return "PhysicalDevice8BitStorageFeaturesKHR";
  5044. case StructureType::eImportMemoryHostPointerInfoEXT : return "ImportMemoryHostPointerInfoEXT";
  5045. case StructureType::eMemoryHostPointerPropertiesEXT : return "MemoryHostPointerPropertiesEXT";
  5046. case StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT : return "PhysicalDeviceExternalMemoryHostPropertiesEXT";
  5047. case StructureType::ePhysicalDeviceShaderAtomicInt64FeaturesKHR : return "PhysicalDeviceShaderAtomicInt64FeaturesKHR";
  5048. case StructureType::eCalibratedTimestampInfoEXT : return "CalibratedTimestampInfoEXT";
  5049. case StructureType::ePhysicalDeviceShaderCorePropertiesAMD : return "PhysicalDeviceShaderCorePropertiesAMD";
  5050. case StructureType::eDeviceMemoryOverallocationCreateInfoAMD : return "DeviceMemoryOverallocationCreateInfoAMD";
  5051. case StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT : return "PhysicalDeviceVertexAttributeDivisorPropertiesEXT";
  5052. case StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT : return "PipelineVertexInputDivisorStateCreateInfoEXT";
  5053. case StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT : return "PhysicalDeviceVertexAttributeDivisorFeaturesEXT";
  5054. case StructureType::ePresentFrameTokenGGP : return "PresentFrameTokenGGP";
  5055. case StructureType::ePipelineCreationFeedbackCreateInfoEXT : return "PipelineCreationFeedbackCreateInfoEXT";
  5056. case StructureType::ePhysicalDeviceDriverPropertiesKHR : return "PhysicalDeviceDriverPropertiesKHR";
  5057. case StructureType::ePhysicalDeviceFloatControlsPropertiesKHR : return "PhysicalDeviceFloatControlsPropertiesKHR";
  5058. case StructureType::ePhysicalDeviceDepthStencilResolvePropertiesKHR : return "PhysicalDeviceDepthStencilResolvePropertiesKHR";
  5059. case StructureType::eSubpassDescriptionDepthStencilResolveKHR : return "SubpassDescriptionDepthStencilResolveKHR";
  5060. case StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV : return "PhysicalDeviceComputeShaderDerivativesFeaturesNV";
  5061. case StructureType::ePhysicalDeviceMeshShaderFeaturesNV : return "PhysicalDeviceMeshShaderFeaturesNV";
  5062. case StructureType::ePhysicalDeviceMeshShaderPropertiesNV : return "PhysicalDeviceMeshShaderPropertiesNV";
  5063. case StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesNV : return "PhysicalDeviceFragmentShaderBarycentricFeaturesNV";
  5064. case StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV : return "PhysicalDeviceShaderImageFootprintFeaturesNV";
  5065. case StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV : return "PipelineViewportExclusiveScissorStateCreateInfoNV";
  5066. case StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV : return "PhysicalDeviceExclusiveScissorFeaturesNV";
  5067. case StructureType::eCheckpointDataNV : return "CheckpointDataNV";
  5068. case StructureType::eQueueFamilyCheckpointPropertiesNV : return "QueueFamilyCheckpointPropertiesNV";
  5069. case StructureType::ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL : return "PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL";
  5070. case StructureType::eQueryPoolCreateInfoINTEL : return "QueryPoolCreateInfoINTEL";
  5071. case StructureType::eInitializePerformanceApiInfoINTEL : return "InitializePerformanceApiInfoINTEL";
  5072. case StructureType::ePerformanceMarkerInfoINTEL : return "PerformanceMarkerInfoINTEL";
  5073. case StructureType::ePerformanceStreamMarkerInfoINTEL : return "PerformanceStreamMarkerInfoINTEL";
  5074. case StructureType::ePerformanceOverrideInfoINTEL : return "PerformanceOverrideInfoINTEL";
  5075. case StructureType::ePerformanceConfigurationAcquireInfoINTEL : return "PerformanceConfigurationAcquireInfoINTEL";
  5076. case StructureType::ePhysicalDeviceVulkanMemoryModelFeaturesKHR : return "PhysicalDeviceVulkanMemoryModelFeaturesKHR";
  5077. case StructureType::ePhysicalDevicePciBusInfoPropertiesEXT : return "PhysicalDevicePciBusInfoPropertiesEXT";
  5078. case StructureType::eDisplayNativeHdrSurfaceCapabilitiesAMD : return "DisplayNativeHdrSurfaceCapabilitiesAMD";
  5079. case StructureType::eSwapchainDisplayNativeHdrCreateInfoAMD : return "SwapchainDisplayNativeHdrCreateInfoAMD";
  5080. case StructureType::eImagepipeSurfaceCreateInfoFUCHSIA : return "ImagepipeSurfaceCreateInfoFUCHSIA";
  5081. case StructureType::eMetalSurfaceCreateInfoEXT : return "MetalSurfaceCreateInfoEXT";
  5082. case StructureType::ePhysicalDeviceFragmentDensityMapFeaturesEXT : return "PhysicalDeviceFragmentDensityMapFeaturesEXT";
  5083. case StructureType::ePhysicalDeviceFragmentDensityMapPropertiesEXT : return "PhysicalDeviceFragmentDensityMapPropertiesEXT";
  5084. case StructureType::eRenderPassFragmentDensityMapCreateInfoEXT : return "RenderPassFragmentDensityMapCreateInfoEXT";
  5085. case StructureType::ePhysicalDeviceScalarBlockLayoutFeaturesEXT : return "PhysicalDeviceScalarBlockLayoutFeaturesEXT";
  5086. case StructureType::ePhysicalDeviceMemoryBudgetPropertiesEXT : return "PhysicalDeviceMemoryBudgetPropertiesEXT";
  5087. case StructureType::ePhysicalDeviceMemoryPriorityFeaturesEXT : return "PhysicalDeviceMemoryPriorityFeaturesEXT";
  5088. case StructureType::eMemoryPriorityAllocateInfoEXT : return "MemoryPriorityAllocateInfoEXT";
  5089. case StructureType::eSurfaceProtectedCapabilitiesKHR : return "SurfaceProtectedCapabilitiesKHR";
  5090. case StructureType::ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV : return "PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV";
  5091. case StructureType::ePhysicalDeviceBufferDeviceAddressFeaturesEXT : return "PhysicalDeviceBufferDeviceAddressFeaturesEXT";
  5092. case StructureType::eBufferDeviceAddressInfoEXT : return "BufferDeviceAddressInfoEXT";
  5093. case StructureType::eBufferDeviceAddressCreateInfoEXT : return "BufferDeviceAddressCreateInfoEXT";
  5094. case StructureType::eImageStencilUsageCreateInfoEXT : return "ImageStencilUsageCreateInfoEXT";
  5095. case StructureType::eValidationFeaturesEXT : return "ValidationFeaturesEXT";
  5096. case StructureType::ePhysicalDeviceCooperativeMatrixFeaturesNV : return "PhysicalDeviceCooperativeMatrixFeaturesNV";
  5097. case StructureType::eCooperativeMatrixPropertiesNV : return "CooperativeMatrixPropertiesNV";
  5098. case StructureType::ePhysicalDeviceCooperativeMatrixPropertiesNV : return "PhysicalDeviceCooperativeMatrixPropertiesNV";
  5099. case StructureType::ePhysicalDeviceCoverageReductionModeFeaturesNV : return "PhysicalDeviceCoverageReductionModeFeaturesNV";
  5100. case StructureType::ePipelineCoverageReductionStateCreateInfoNV : return "PipelineCoverageReductionStateCreateInfoNV";
  5101. case StructureType::eFramebufferMixedSamplesCombinationNV : return "FramebufferMixedSamplesCombinationNV";
  5102. case StructureType::ePhysicalDeviceFragmentShaderInterlockFeaturesEXT : return "PhysicalDeviceFragmentShaderInterlockFeaturesEXT";
  5103. case StructureType::ePhysicalDeviceYcbcrImageArraysFeaturesEXT : return "PhysicalDeviceYcbcrImageArraysFeaturesEXT";
  5104. case StructureType::ePhysicalDeviceUniformBufferStandardLayoutFeaturesKHR : return "PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR";
  5105. case StructureType::eSurfaceFullScreenExclusiveInfoEXT : return "SurfaceFullScreenExclusiveInfoEXT";
  5106. case StructureType::eSurfaceCapabilitiesFullScreenExclusiveEXT : return "SurfaceCapabilitiesFullScreenExclusiveEXT";
  5107. case StructureType::eSurfaceFullScreenExclusiveWin32InfoEXT : return "SurfaceFullScreenExclusiveWin32InfoEXT";
  5108. case StructureType::eHeadlessSurfaceCreateInfoEXT : return "HeadlessSurfaceCreateInfoEXT";
  5109. case StructureType::ePhysicalDeviceHostQueryResetFeaturesEXT : return "PhysicalDeviceHostQueryResetFeaturesEXT";
  5110. case StructureType::ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT : return "PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT";
  5111. case StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT : return "PhysicalDeviceTexelBufferAlignmentFeaturesEXT";
  5112. case StructureType::ePhysicalDeviceTexelBufferAlignmentPropertiesEXT : return "PhysicalDeviceTexelBufferAlignmentPropertiesEXT";
  5113. default: return "invalid";
  5114. }
  5115. }
  5116. enum class SubpassContents
  5117. {
  5118. eInline = VK_SUBPASS_CONTENTS_INLINE,
  5119. eSecondaryCommandBuffers = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS
  5120. };
  5121. VULKAN_HPP_INLINE std::string to_string( SubpassContents value )
  5122. {
  5123. switch ( value )
  5124. {
  5125. case SubpassContents::eInline : return "Inline";
  5126. case SubpassContents::eSecondaryCommandBuffers : return "SecondaryCommandBuffers";
  5127. default: return "invalid";
  5128. }
  5129. }
  5130. enum class SystemAllocationScope
  5131. {
  5132. eCommand = VK_SYSTEM_ALLOCATION_SCOPE_COMMAND,
  5133. eObject = VK_SYSTEM_ALLOCATION_SCOPE_OBJECT,
  5134. eCache = VK_SYSTEM_ALLOCATION_SCOPE_CACHE,
  5135. eDevice = VK_SYSTEM_ALLOCATION_SCOPE_DEVICE,
  5136. eInstance = VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE
  5137. };
  5138. VULKAN_HPP_INLINE std::string to_string( SystemAllocationScope value )
  5139. {
  5140. switch ( value )
  5141. {
  5142. case SystemAllocationScope::eCommand : return "Command";
  5143. case SystemAllocationScope::eObject : return "Object";
  5144. case SystemAllocationScope::eCache : return "Cache";
  5145. case SystemAllocationScope::eDevice : return "Device";
  5146. case SystemAllocationScope::eInstance : return "Instance";
  5147. default: return "invalid";
  5148. }
  5149. }
  5150. enum class TessellationDomainOrigin
  5151. {
  5152. eUpperLeft = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT,
  5153. eLowerLeft = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT,
  5154. eUpperLeftKHR = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR,
  5155. eLowerLeftKHR = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR
  5156. };
  5157. VULKAN_HPP_INLINE std::string to_string( TessellationDomainOrigin value )
  5158. {
  5159. switch ( value )
  5160. {
  5161. case TessellationDomainOrigin::eUpperLeft : return "UpperLeft";
  5162. case TessellationDomainOrigin::eLowerLeft : return "LowerLeft";
  5163. default: return "invalid";
  5164. }
  5165. }
  5166. enum class TimeDomainEXT
  5167. {
  5168. eDevice = VK_TIME_DOMAIN_DEVICE_EXT,
  5169. eClockMonotonic = VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT,
  5170. eClockMonotonicRaw = VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT,
  5171. eQueryPerformanceCounter = VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT
  5172. };
  5173. VULKAN_HPP_INLINE std::string to_string( TimeDomainEXT value )
  5174. {
  5175. switch ( value )
  5176. {
  5177. case TimeDomainEXT::eDevice : return "Device";
  5178. case TimeDomainEXT::eClockMonotonic : return "ClockMonotonic";
  5179. case TimeDomainEXT::eClockMonotonicRaw : return "ClockMonotonicRaw";
  5180. case TimeDomainEXT::eQueryPerformanceCounter : return "QueryPerformanceCounter";
  5181. default: return "invalid";
  5182. }
  5183. }
  5184. enum class ValidationCacheHeaderVersionEXT
  5185. {
  5186. eOne = VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT
  5187. };
  5188. VULKAN_HPP_INLINE std::string to_string( ValidationCacheHeaderVersionEXT value )
  5189. {
  5190. switch ( value )
  5191. {
  5192. case ValidationCacheHeaderVersionEXT::eOne : return "One";
  5193. default: return "invalid";
  5194. }
  5195. }
  5196. enum class ValidationCheckEXT
  5197. {
  5198. eAll = VK_VALIDATION_CHECK_ALL_EXT,
  5199. eShaders = VK_VALIDATION_CHECK_SHADERS_EXT
  5200. };
  5201. VULKAN_HPP_INLINE std::string to_string( ValidationCheckEXT value )
  5202. {
  5203. switch ( value )
  5204. {
  5205. case ValidationCheckEXT::eAll : return "All";
  5206. case ValidationCheckEXT::eShaders : return "Shaders";
  5207. default: return "invalid";
  5208. }
  5209. }
  5210. enum class ValidationFeatureDisableEXT
  5211. {
  5212. eAll = VK_VALIDATION_FEATURE_DISABLE_ALL_EXT,
  5213. eShaders = VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT,
  5214. eThreadSafety = VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT,
  5215. eApiParameters = VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT,
  5216. eObjectLifetimes = VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT,
  5217. eCoreChecks = VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT,
  5218. eUniqueHandles = VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT
  5219. };
  5220. VULKAN_HPP_INLINE std::string to_string( ValidationFeatureDisableEXT value )
  5221. {
  5222. switch ( value )
  5223. {
  5224. case ValidationFeatureDisableEXT::eAll : return "All";
  5225. case ValidationFeatureDisableEXT::eShaders : return "Shaders";
  5226. case ValidationFeatureDisableEXT::eThreadSafety : return "ThreadSafety";
  5227. case ValidationFeatureDisableEXT::eApiParameters : return "ApiParameters";
  5228. case ValidationFeatureDisableEXT::eObjectLifetimes : return "ObjectLifetimes";
  5229. case ValidationFeatureDisableEXT::eCoreChecks : return "CoreChecks";
  5230. case ValidationFeatureDisableEXT::eUniqueHandles : return "UniqueHandles";
  5231. default: return "invalid";
  5232. }
  5233. }
  5234. enum class ValidationFeatureEnableEXT
  5235. {
  5236. eGpuAssisted = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT,
  5237. eGpuAssistedReserveBindingSlot = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT
  5238. };
  5239. VULKAN_HPP_INLINE std::string to_string( ValidationFeatureEnableEXT value )
  5240. {
  5241. switch ( value )
  5242. {
  5243. case ValidationFeatureEnableEXT::eGpuAssisted : return "GpuAssisted";
  5244. case ValidationFeatureEnableEXT::eGpuAssistedReserveBindingSlot : return "GpuAssistedReserveBindingSlot";
  5245. default: return "invalid";
  5246. }
  5247. }
  5248. enum class VendorId
  5249. {
  5250. eVIV = VK_VENDOR_ID_VIV,
  5251. eVSI = VK_VENDOR_ID_VSI,
  5252. eKazan = VK_VENDOR_ID_KAZAN
  5253. };
  5254. VULKAN_HPP_INLINE std::string to_string( VendorId value )
  5255. {
  5256. switch ( value )
  5257. {
  5258. case VendorId::eVIV : return "VIV";
  5259. case VendorId::eVSI : return "VSI";
  5260. case VendorId::eKazan : return "Kazan";
  5261. default: return "invalid";
  5262. }
  5263. }
  5264. enum class VertexInputRate
  5265. {
  5266. eVertex = VK_VERTEX_INPUT_RATE_VERTEX,
  5267. eInstance = VK_VERTEX_INPUT_RATE_INSTANCE
  5268. };
  5269. VULKAN_HPP_INLINE std::string to_string( VertexInputRate value )
  5270. {
  5271. switch ( value )
  5272. {
  5273. case VertexInputRate::eVertex : return "Vertex";
  5274. case VertexInputRate::eInstance : return "Instance";
  5275. default: return "invalid";
  5276. }
  5277. }
  5278. enum class ViewportCoordinateSwizzleNV
  5279. {
  5280. ePositiveX = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV,
  5281. eNegativeX = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV,
  5282. ePositiveY = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV,
  5283. eNegativeY = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV,
  5284. ePositiveZ = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV,
  5285. eNegativeZ = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV,
  5286. ePositiveW = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV,
  5287. eNegativeW = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV
  5288. };
  5289. VULKAN_HPP_INLINE std::string to_string( ViewportCoordinateSwizzleNV value )
  5290. {
  5291. switch ( value )
  5292. {
  5293. case ViewportCoordinateSwizzleNV::ePositiveX : return "PositiveX";
  5294. case ViewportCoordinateSwizzleNV::eNegativeX : return "NegativeX";
  5295. case ViewportCoordinateSwizzleNV::ePositiveY : return "PositiveY";
  5296. case ViewportCoordinateSwizzleNV::eNegativeY : return "NegativeY";
  5297. case ViewportCoordinateSwizzleNV::ePositiveZ : return "PositiveZ";
  5298. case ViewportCoordinateSwizzleNV::eNegativeZ : return "NegativeZ";
  5299. case ViewportCoordinateSwizzleNV::ePositiveW : return "PositiveW";
  5300. case ViewportCoordinateSwizzleNV::eNegativeW : return "NegativeW";
  5301. default: return "invalid";
  5302. }
  5303. }
  5304. enum class AccessFlagBits
  5305. {
  5306. eIndirectCommandRead = VK_ACCESS_INDIRECT_COMMAND_READ_BIT,
  5307. eIndexRead = VK_ACCESS_INDEX_READ_BIT,
  5308. eVertexAttributeRead = VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT,
  5309. eUniformRead = VK_ACCESS_UNIFORM_READ_BIT,
  5310. eInputAttachmentRead = VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,
  5311. eShaderRead = VK_ACCESS_SHADER_READ_BIT,
  5312. eShaderWrite = VK_ACCESS_SHADER_WRITE_BIT,
  5313. eColorAttachmentRead = VK_ACCESS_COLOR_ATTACHMENT_READ_BIT,
  5314. eColorAttachmentWrite = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
  5315. eDepthStencilAttachmentRead = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT,
  5316. eDepthStencilAttachmentWrite = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,
  5317. eTransferRead = VK_ACCESS_TRANSFER_READ_BIT,
  5318. eTransferWrite = VK_ACCESS_TRANSFER_WRITE_BIT,
  5319. eHostRead = VK_ACCESS_HOST_READ_BIT,
  5320. eHostWrite = VK_ACCESS_HOST_WRITE_BIT,
  5321. eMemoryRead = VK_ACCESS_MEMORY_READ_BIT,
  5322. eMemoryWrite = VK_ACCESS_MEMORY_WRITE_BIT,
  5323. eTransformFeedbackWriteEXT = VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,
  5324. eTransformFeedbackCounterReadEXT = VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT,
  5325. eTransformFeedbackCounterWriteEXT = VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,
  5326. eConditionalRenderingReadEXT = VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT,
  5327. eCommandProcessReadNVX = VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX,
  5328. eCommandProcessWriteNVX = VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX,
  5329. eColorAttachmentReadNoncoherentEXT = VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT,
  5330. eShadingRateImageReadNV = VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV,
  5331. eAccelerationStructureReadNV = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV,
  5332. eAccelerationStructureWriteNV = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV,
  5333. eFragmentDensityMapReadEXT = VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT
  5334. };
  5335. VULKAN_HPP_INLINE std::string to_string( AccessFlagBits value )
  5336. {
  5337. switch ( value )
  5338. {
  5339. case AccessFlagBits::eIndirectCommandRead : return "IndirectCommandRead";
  5340. case AccessFlagBits::eIndexRead : return "IndexRead";
  5341. case AccessFlagBits::eVertexAttributeRead : return "VertexAttributeRead";
  5342. case AccessFlagBits::eUniformRead : return "UniformRead";
  5343. case AccessFlagBits::eInputAttachmentRead : return "InputAttachmentRead";
  5344. case AccessFlagBits::eShaderRead : return "ShaderRead";
  5345. case AccessFlagBits::eShaderWrite : return "ShaderWrite";
  5346. case AccessFlagBits::eColorAttachmentRead : return "ColorAttachmentRead";
  5347. case AccessFlagBits::eColorAttachmentWrite : return "ColorAttachmentWrite";
  5348. case AccessFlagBits::eDepthStencilAttachmentRead : return "DepthStencilAttachmentRead";
  5349. case AccessFlagBits::eDepthStencilAttachmentWrite : return "DepthStencilAttachmentWrite";
  5350. case AccessFlagBits::eTransferRead : return "TransferRead";
  5351. case AccessFlagBits::eTransferWrite : return "TransferWrite";
  5352. case AccessFlagBits::eHostRead : return "HostRead";
  5353. case AccessFlagBits::eHostWrite : return "HostWrite";
  5354. case AccessFlagBits::eMemoryRead : return "MemoryRead";
  5355. case AccessFlagBits::eMemoryWrite : return "MemoryWrite";
  5356. case AccessFlagBits::eTransformFeedbackWriteEXT : return "TransformFeedbackWriteEXT";
  5357. case AccessFlagBits::eTransformFeedbackCounterReadEXT : return "TransformFeedbackCounterReadEXT";
  5358. case AccessFlagBits::eTransformFeedbackCounterWriteEXT : return "TransformFeedbackCounterWriteEXT";
  5359. case AccessFlagBits::eConditionalRenderingReadEXT : return "ConditionalRenderingReadEXT";
  5360. case AccessFlagBits::eCommandProcessReadNVX : return "CommandProcessReadNVX";
  5361. case AccessFlagBits::eCommandProcessWriteNVX : return "CommandProcessWriteNVX";
  5362. case AccessFlagBits::eColorAttachmentReadNoncoherentEXT : return "ColorAttachmentReadNoncoherentEXT";
  5363. case AccessFlagBits::eShadingRateImageReadNV : return "ShadingRateImageReadNV";
  5364. case AccessFlagBits::eAccelerationStructureReadNV : return "AccelerationStructureReadNV";
  5365. case AccessFlagBits::eAccelerationStructureWriteNV : return "AccelerationStructureWriteNV";
  5366. case AccessFlagBits::eFragmentDensityMapReadEXT : return "FragmentDensityMapReadEXT";
  5367. default: return "invalid";
  5368. }
  5369. }
  5370. using AccessFlags = Flags<AccessFlagBits, VkAccessFlags>;
  5371. VULKAN_HPP_INLINE AccessFlags operator|( AccessFlagBits bit0, AccessFlagBits bit1 )
  5372. {
  5373. return AccessFlags( bit0 ) | bit1;
  5374. }
  5375. VULKAN_HPP_INLINE AccessFlags operator~( AccessFlagBits bits )
  5376. {
  5377. return ~( AccessFlags( bits ) );
  5378. }
  5379. template <> struct FlagTraits<AccessFlagBits>
  5380. {
  5381. enum
  5382. {
  5383. allFlags = VkFlags(AccessFlagBits::eIndirectCommandRead) | VkFlags(AccessFlagBits::eIndexRead) | VkFlags(AccessFlagBits::eVertexAttributeRead) | VkFlags(AccessFlagBits::eUniformRead) | VkFlags(AccessFlagBits::eInputAttachmentRead) | VkFlags(AccessFlagBits::eShaderRead) | VkFlags(AccessFlagBits::eShaderWrite) | VkFlags(AccessFlagBits::eColorAttachmentRead) | VkFlags(AccessFlagBits::eColorAttachmentWrite) | VkFlags(AccessFlagBits::eDepthStencilAttachmentRead) | VkFlags(AccessFlagBits::eDepthStencilAttachmentWrite) | VkFlags(AccessFlagBits::eTransferRead) | VkFlags(AccessFlagBits::eTransferWrite) | VkFlags(AccessFlagBits::eHostRead) | VkFlags(AccessFlagBits::eHostWrite) | VkFlags(AccessFlagBits::eMemoryRead) | VkFlags(AccessFlagBits::eMemoryWrite) | VkFlags(AccessFlagBits::eTransformFeedbackWriteEXT) | VkFlags(AccessFlagBits::eTransformFeedbackCounterReadEXT) | VkFlags(AccessFlagBits::eTransformFeedbackCounterWriteEXT) | VkFlags(AccessFlagBits::eConditionalRenderingReadEXT) | VkFlags(AccessFlagBits::eCommandProcessReadNVX) | VkFlags(AccessFlagBits::eCommandProcessWriteNVX) | VkFlags(AccessFlagBits::eColorAttachmentReadNoncoherentEXT) | VkFlags(AccessFlagBits::eShadingRateImageReadNV) | VkFlags(AccessFlagBits::eAccelerationStructureReadNV) | VkFlags(AccessFlagBits::eAccelerationStructureWriteNV) | VkFlags(AccessFlagBits::eFragmentDensityMapReadEXT)
  5384. };
  5385. };
  5386. VULKAN_HPP_INLINE std::string to_string( AccessFlags value )
  5387. {
  5388. if ( !value ) return "{}";
  5389. std::string result;
  5390. if ( value & AccessFlagBits::eIndirectCommandRead ) result += "IndirectCommandRead | ";
  5391. if ( value & AccessFlagBits::eIndexRead ) result += "IndexRead | ";
  5392. if ( value & AccessFlagBits::eVertexAttributeRead ) result += "VertexAttributeRead | ";
  5393. if ( value & AccessFlagBits::eUniformRead ) result += "UniformRead | ";
  5394. if ( value & AccessFlagBits::eInputAttachmentRead ) result += "InputAttachmentRead | ";
  5395. if ( value & AccessFlagBits::eShaderRead ) result += "ShaderRead | ";
  5396. if ( value & AccessFlagBits::eShaderWrite ) result += "ShaderWrite | ";
  5397. if ( value & AccessFlagBits::eColorAttachmentRead ) result += "ColorAttachmentRead | ";
  5398. if ( value & AccessFlagBits::eColorAttachmentWrite ) result += "ColorAttachmentWrite | ";
  5399. if ( value & AccessFlagBits::eDepthStencilAttachmentRead ) result += "DepthStencilAttachmentRead | ";
  5400. if ( value & AccessFlagBits::eDepthStencilAttachmentWrite ) result += "DepthStencilAttachmentWrite | ";
  5401. if ( value & AccessFlagBits::eTransferRead ) result += "TransferRead | ";
  5402. if ( value & AccessFlagBits::eTransferWrite ) result += "TransferWrite | ";
  5403. if ( value & AccessFlagBits::eHostRead ) result += "HostRead | ";
  5404. if ( value & AccessFlagBits::eHostWrite ) result += "HostWrite | ";
  5405. if ( value & AccessFlagBits::eMemoryRead ) result += "MemoryRead | ";
  5406. if ( value & AccessFlagBits::eMemoryWrite ) result += "MemoryWrite | ";
  5407. if ( value & AccessFlagBits::eTransformFeedbackWriteEXT ) result += "TransformFeedbackWriteEXT | ";
  5408. if ( value & AccessFlagBits::eTransformFeedbackCounterReadEXT ) result += "TransformFeedbackCounterReadEXT | ";
  5409. if ( value & AccessFlagBits::eTransformFeedbackCounterWriteEXT ) result += "TransformFeedbackCounterWriteEXT | ";
  5410. if ( value & AccessFlagBits::eConditionalRenderingReadEXT ) result += "ConditionalRenderingReadEXT | ";
  5411. if ( value & AccessFlagBits::eCommandProcessReadNVX ) result += "CommandProcessReadNVX | ";
  5412. if ( value & AccessFlagBits::eCommandProcessWriteNVX ) result += "CommandProcessWriteNVX | ";
  5413. if ( value & AccessFlagBits::eColorAttachmentReadNoncoherentEXT ) result += "ColorAttachmentReadNoncoherentEXT | ";
  5414. if ( value & AccessFlagBits::eShadingRateImageReadNV ) result += "ShadingRateImageReadNV | ";
  5415. if ( value & AccessFlagBits::eAccelerationStructureReadNV ) result += "AccelerationStructureReadNV | ";
  5416. if ( value & AccessFlagBits::eAccelerationStructureWriteNV ) result += "AccelerationStructureWriteNV | ";
  5417. if ( value & AccessFlagBits::eFragmentDensityMapReadEXT ) result += "FragmentDensityMapReadEXT | ";
  5418. return "{ " + result.substr(0, result.size() - 3) + " }";
  5419. }
  5420. #ifdef VK_USE_PLATFORM_ANDROID_KHR
  5421. enum class AndroidSurfaceCreateFlagBitsKHR
  5422. {};
  5423. VULKAN_HPP_INLINE std::string to_string( AndroidSurfaceCreateFlagBitsKHR )
  5424. {
  5425. return "(void)";
  5426. }
  5427. using AndroidSurfaceCreateFlagsKHR = Flags<AndroidSurfaceCreateFlagBitsKHR, VkAndroidSurfaceCreateFlagsKHR>;
  5428. VULKAN_HPP_INLINE std::string to_string( AndroidSurfaceCreateFlagsKHR )
  5429. {
  5430. return "{}";
  5431. }
  5432. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  5433. enum class AttachmentDescriptionFlagBits
  5434. {
  5435. eMayAlias = VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT
  5436. };
  5437. VULKAN_HPP_INLINE std::string to_string( AttachmentDescriptionFlagBits value )
  5438. {
  5439. switch ( value )
  5440. {
  5441. case AttachmentDescriptionFlagBits::eMayAlias : return "MayAlias";
  5442. default: return "invalid";
  5443. }
  5444. }
  5445. using AttachmentDescriptionFlags = Flags<AttachmentDescriptionFlagBits, VkAttachmentDescriptionFlags>;
  5446. VULKAN_HPP_INLINE AttachmentDescriptionFlags operator|( AttachmentDescriptionFlagBits bit0, AttachmentDescriptionFlagBits bit1 )
  5447. {
  5448. return AttachmentDescriptionFlags( bit0 ) | bit1;
  5449. }
  5450. VULKAN_HPP_INLINE AttachmentDescriptionFlags operator~( AttachmentDescriptionFlagBits bits )
  5451. {
  5452. return ~( AttachmentDescriptionFlags( bits ) );
  5453. }
  5454. template <> struct FlagTraits<AttachmentDescriptionFlagBits>
  5455. {
  5456. enum
  5457. {
  5458. allFlags = VkFlags(AttachmentDescriptionFlagBits::eMayAlias)
  5459. };
  5460. };
  5461. VULKAN_HPP_INLINE std::string to_string( AttachmentDescriptionFlags value )
  5462. {
  5463. if ( !value ) return "{}";
  5464. std::string result;
  5465. if ( value & AttachmentDescriptionFlagBits::eMayAlias ) result += "MayAlias | ";
  5466. return "{ " + result.substr(0, result.size() - 3) + " }";
  5467. }
  5468. enum class BufferCreateFlagBits
  5469. {
  5470. eSparseBinding = VK_BUFFER_CREATE_SPARSE_BINDING_BIT,
  5471. eSparseResidency = VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT,
  5472. eSparseAliased = VK_BUFFER_CREATE_SPARSE_ALIASED_BIT,
  5473. eProtected = VK_BUFFER_CREATE_PROTECTED_BIT,
  5474. eDeviceAddressCaptureReplayEXT = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT
  5475. };
  5476. VULKAN_HPP_INLINE std::string to_string( BufferCreateFlagBits value )
  5477. {
  5478. switch ( value )
  5479. {
  5480. case BufferCreateFlagBits::eSparseBinding : return "SparseBinding";
  5481. case BufferCreateFlagBits::eSparseResidency : return "SparseResidency";
  5482. case BufferCreateFlagBits::eSparseAliased : return "SparseAliased";
  5483. case BufferCreateFlagBits::eProtected : return "Protected";
  5484. case BufferCreateFlagBits::eDeviceAddressCaptureReplayEXT : return "DeviceAddressCaptureReplayEXT";
  5485. default: return "invalid";
  5486. }
  5487. }
  5488. using BufferCreateFlags = Flags<BufferCreateFlagBits, VkBufferCreateFlags>;
  5489. VULKAN_HPP_INLINE BufferCreateFlags operator|( BufferCreateFlagBits bit0, BufferCreateFlagBits bit1 )
  5490. {
  5491. return BufferCreateFlags( bit0 ) | bit1;
  5492. }
  5493. VULKAN_HPP_INLINE BufferCreateFlags operator~( BufferCreateFlagBits bits )
  5494. {
  5495. return ~( BufferCreateFlags( bits ) );
  5496. }
  5497. template <> struct FlagTraits<BufferCreateFlagBits>
  5498. {
  5499. enum
  5500. {
  5501. allFlags = VkFlags(BufferCreateFlagBits::eSparseBinding) | VkFlags(BufferCreateFlagBits::eSparseResidency) | VkFlags(BufferCreateFlagBits::eSparseAliased) | VkFlags(BufferCreateFlagBits::eProtected) | VkFlags(BufferCreateFlagBits::eDeviceAddressCaptureReplayEXT)
  5502. };
  5503. };
  5504. VULKAN_HPP_INLINE std::string to_string( BufferCreateFlags value )
  5505. {
  5506. if ( !value ) return "{}";
  5507. std::string result;
  5508. if ( value & BufferCreateFlagBits::eSparseBinding ) result += "SparseBinding | ";
  5509. if ( value & BufferCreateFlagBits::eSparseResidency ) result += "SparseResidency | ";
  5510. if ( value & BufferCreateFlagBits::eSparseAliased ) result += "SparseAliased | ";
  5511. if ( value & BufferCreateFlagBits::eProtected ) result += "Protected | ";
  5512. if ( value & BufferCreateFlagBits::eDeviceAddressCaptureReplayEXT ) result += "DeviceAddressCaptureReplayEXT | ";
  5513. return "{ " + result.substr(0, result.size() - 3) + " }";
  5514. }
  5515. enum class BufferUsageFlagBits
  5516. {
  5517. eTransferSrc = VK_BUFFER_USAGE_TRANSFER_SRC_BIT,
  5518. eTransferDst = VK_BUFFER_USAGE_TRANSFER_DST_BIT,
  5519. eUniformTexelBuffer = VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT,
  5520. eStorageTexelBuffer = VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT,
  5521. eUniformBuffer = VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,
  5522. eStorageBuffer = VK_BUFFER_USAGE_STORAGE_BUFFER_BIT,
  5523. eIndexBuffer = VK_BUFFER_USAGE_INDEX_BUFFER_BIT,
  5524. eVertexBuffer = VK_BUFFER_USAGE_VERTEX_BUFFER_BIT,
  5525. eIndirectBuffer = VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT,
  5526. eTransformFeedbackBufferEXT = VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT,
  5527. eTransformFeedbackCounterBufferEXT = VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT,
  5528. eConditionalRenderingEXT = VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT,
  5529. eRayTracingNV = VK_BUFFER_USAGE_RAY_TRACING_BIT_NV,
  5530. eShaderDeviceAddressEXT = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT
  5531. };
  5532. VULKAN_HPP_INLINE std::string to_string( BufferUsageFlagBits value )
  5533. {
  5534. switch ( value )
  5535. {
  5536. case BufferUsageFlagBits::eTransferSrc : return "TransferSrc";
  5537. case BufferUsageFlagBits::eTransferDst : return "TransferDst";
  5538. case BufferUsageFlagBits::eUniformTexelBuffer : return "UniformTexelBuffer";
  5539. case BufferUsageFlagBits::eStorageTexelBuffer : return "StorageTexelBuffer";
  5540. case BufferUsageFlagBits::eUniformBuffer : return "UniformBuffer";
  5541. case BufferUsageFlagBits::eStorageBuffer : return "StorageBuffer";
  5542. case BufferUsageFlagBits::eIndexBuffer : return "IndexBuffer";
  5543. case BufferUsageFlagBits::eVertexBuffer : return "VertexBuffer";
  5544. case BufferUsageFlagBits::eIndirectBuffer : return "IndirectBuffer";
  5545. case BufferUsageFlagBits::eTransformFeedbackBufferEXT : return "TransformFeedbackBufferEXT";
  5546. case BufferUsageFlagBits::eTransformFeedbackCounterBufferEXT : return "TransformFeedbackCounterBufferEXT";
  5547. case BufferUsageFlagBits::eConditionalRenderingEXT : return "ConditionalRenderingEXT";
  5548. case BufferUsageFlagBits::eRayTracingNV : return "RayTracingNV";
  5549. case BufferUsageFlagBits::eShaderDeviceAddressEXT : return "ShaderDeviceAddressEXT";
  5550. default: return "invalid";
  5551. }
  5552. }
  5553. using BufferUsageFlags = Flags<BufferUsageFlagBits, VkBufferUsageFlags>;
  5554. VULKAN_HPP_INLINE BufferUsageFlags operator|( BufferUsageFlagBits bit0, BufferUsageFlagBits bit1 )
  5555. {
  5556. return BufferUsageFlags( bit0 ) | bit1;
  5557. }
  5558. VULKAN_HPP_INLINE BufferUsageFlags operator~( BufferUsageFlagBits bits )
  5559. {
  5560. return ~( BufferUsageFlags( bits ) );
  5561. }
  5562. template <> struct FlagTraits<BufferUsageFlagBits>
  5563. {
  5564. enum
  5565. {
  5566. allFlags = VkFlags(BufferUsageFlagBits::eTransferSrc) | VkFlags(BufferUsageFlagBits::eTransferDst) | VkFlags(BufferUsageFlagBits::eUniformTexelBuffer) | VkFlags(BufferUsageFlagBits::eStorageTexelBuffer) | VkFlags(BufferUsageFlagBits::eUniformBuffer) | VkFlags(BufferUsageFlagBits::eStorageBuffer) | VkFlags(BufferUsageFlagBits::eIndexBuffer) | VkFlags(BufferUsageFlagBits::eVertexBuffer) | VkFlags(BufferUsageFlagBits::eIndirectBuffer) | VkFlags(BufferUsageFlagBits::eTransformFeedbackBufferEXT) | VkFlags(BufferUsageFlagBits::eTransformFeedbackCounterBufferEXT) | VkFlags(BufferUsageFlagBits::eConditionalRenderingEXT) | VkFlags(BufferUsageFlagBits::eRayTracingNV) | VkFlags(BufferUsageFlagBits::eShaderDeviceAddressEXT)
  5567. };
  5568. };
  5569. VULKAN_HPP_INLINE std::string to_string( BufferUsageFlags value )
  5570. {
  5571. if ( !value ) return "{}";
  5572. std::string result;
  5573. if ( value & BufferUsageFlagBits::eTransferSrc ) result += "TransferSrc | ";
  5574. if ( value & BufferUsageFlagBits::eTransferDst ) result += "TransferDst | ";
  5575. if ( value & BufferUsageFlagBits::eUniformTexelBuffer ) result += "UniformTexelBuffer | ";
  5576. if ( value & BufferUsageFlagBits::eStorageTexelBuffer ) result += "StorageTexelBuffer | ";
  5577. if ( value & BufferUsageFlagBits::eUniformBuffer ) result += "UniformBuffer | ";
  5578. if ( value & BufferUsageFlagBits::eStorageBuffer ) result += "StorageBuffer | ";
  5579. if ( value & BufferUsageFlagBits::eIndexBuffer ) result += "IndexBuffer | ";
  5580. if ( value & BufferUsageFlagBits::eVertexBuffer ) result += "VertexBuffer | ";
  5581. if ( value & BufferUsageFlagBits::eIndirectBuffer ) result += "IndirectBuffer | ";
  5582. if ( value & BufferUsageFlagBits::eTransformFeedbackBufferEXT ) result += "TransformFeedbackBufferEXT | ";
  5583. if ( value & BufferUsageFlagBits::eTransformFeedbackCounterBufferEXT ) result += "TransformFeedbackCounterBufferEXT | ";
  5584. if ( value & BufferUsageFlagBits::eConditionalRenderingEXT ) result += "ConditionalRenderingEXT | ";
  5585. if ( value & BufferUsageFlagBits::eRayTracingNV ) result += "RayTracingNV | ";
  5586. if ( value & BufferUsageFlagBits::eShaderDeviceAddressEXT ) result += "ShaderDeviceAddressEXT | ";
  5587. return "{ " + result.substr(0, result.size() - 3) + " }";
  5588. }
  5589. enum class BufferViewCreateFlagBits
  5590. {};
  5591. VULKAN_HPP_INLINE std::string to_string( BufferViewCreateFlagBits )
  5592. {
  5593. return "(void)";
  5594. }
  5595. using BufferViewCreateFlags = Flags<BufferViewCreateFlagBits, VkBufferViewCreateFlags>;
  5596. VULKAN_HPP_INLINE std::string to_string( BufferViewCreateFlags )
  5597. {
  5598. return "{}";
  5599. }
  5600. enum class BuildAccelerationStructureFlagBitsNV
  5601. {
  5602. eAllowUpdate = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV,
  5603. eAllowCompaction = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV,
  5604. ePreferFastTrace = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV,
  5605. ePreferFastBuild = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV,
  5606. eLowMemory = VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV
  5607. };
  5608. VULKAN_HPP_INLINE std::string to_string( BuildAccelerationStructureFlagBitsNV value )
  5609. {
  5610. switch ( value )
  5611. {
  5612. case BuildAccelerationStructureFlagBitsNV::eAllowUpdate : return "AllowUpdate";
  5613. case BuildAccelerationStructureFlagBitsNV::eAllowCompaction : return "AllowCompaction";
  5614. case BuildAccelerationStructureFlagBitsNV::ePreferFastTrace : return "PreferFastTrace";
  5615. case BuildAccelerationStructureFlagBitsNV::ePreferFastBuild : return "PreferFastBuild";
  5616. case BuildAccelerationStructureFlagBitsNV::eLowMemory : return "LowMemory";
  5617. default: return "invalid";
  5618. }
  5619. }
  5620. using BuildAccelerationStructureFlagsNV = Flags<BuildAccelerationStructureFlagBitsNV, VkBuildAccelerationStructureFlagsNV>;
  5621. VULKAN_HPP_INLINE BuildAccelerationStructureFlagsNV operator|( BuildAccelerationStructureFlagBitsNV bit0, BuildAccelerationStructureFlagBitsNV bit1 )
  5622. {
  5623. return BuildAccelerationStructureFlagsNV( bit0 ) | bit1;
  5624. }
  5625. VULKAN_HPP_INLINE BuildAccelerationStructureFlagsNV operator~( BuildAccelerationStructureFlagBitsNV bits )
  5626. {
  5627. return ~( BuildAccelerationStructureFlagsNV( bits ) );
  5628. }
  5629. template <> struct FlagTraits<BuildAccelerationStructureFlagBitsNV>
  5630. {
  5631. enum
  5632. {
  5633. allFlags = VkFlags(BuildAccelerationStructureFlagBitsNV::eAllowUpdate) | VkFlags(BuildAccelerationStructureFlagBitsNV::eAllowCompaction) | VkFlags(BuildAccelerationStructureFlagBitsNV::ePreferFastTrace) | VkFlags(BuildAccelerationStructureFlagBitsNV::ePreferFastBuild) | VkFlags(BuildAccelerationStructureFlagBitsNV::eLowMemory)
  5634. };
  5635. };
  5636. VULKAN_HPP_INLINE std::string to_string( BuildAccelerationStructureFlagsNV value )
  5637. {
  5638. if ( !value ) return "{}";
  5639. std::string result;
  5640. if ( value & BuildAccelerationStructureFlagBitsNV::eAllowUpdate ) result += "AllowUpdate | ";
  5641. if ( value & BuildAccelerationStructureFlagBitsNV::eAllowCompaction ) result += "AllowCompaction | ";
  5642. if ( value & BuildAccelerationStructureFlagBitsNV::ePreferFastTrace ) result += "PreferFastTrace | ";
  5643. if ( value & BuildAccelerationStructureFlagBitsNV::ePreferFastBuild ) result += "PreferFastBuild | ";
  5644. if ( value & BuildAccelerationStructureFlagBitsNV::eLowMemory ) result += "LowMemory | ";
  5645. return "{ " + result.substr(0, result.size() - 3) + " }";
  5646. }
  5647. enum class ColorComponentFlagBits
  5648. {
  5649. eR = VK_COLOR_COMPONENT_R_BIT,
  5650. eG = VK_COLOR_COMPONENT_G_BIT,
  5651. eB = VK_COLOR_COMPONENT_B_BIT,
  5652. eA = VK_COLOR_COMPONENT_A_BIT
  5653. };
  5654. VULKAN_HPP_INLINE std::string to_string( ColorComponentFlagBits value )
  5655. {
  5656. switch ( value )
  5657. {
  5658. case ColorComponentFlagBits::eR : return "R";
  5659. case ColorComponentFlagBits::eG : return "G";
  5660. case ColorComponentFlagBits::eB : return "B";
  5661. case ColorComponentFlagBits::eA : return "A";
  5662. default: return "invalid";
  5663. }
  5664. }
  5665. using ColorComponentFlags = Flags<ColorComponentFlagBits, VkColorComponentFlags>;
  5666. VULKAN_HPP_INLINE ColorComponentFlags operator|( ColorComponentFlagBits bit0, ColorComponentFlagBits bit1 )
  5667. {
  5668. return ColorComponentFlags( bit0 ) | bit1;
  5669. }
  5670. VULKAN_HPP_INLINE ColorComponentFlags operator~( ColorComponentFlagBits bits )
  5671. {
  5672. return ~( ColorComponentFlags( bits ) );
  5673. }
  5674. template <> struct FlagTraits<ColorComponentFlagBits>
  5675. {
  5676. enum
  5677. {
  5678. allFlags = VkFlags(ColorComponentFlagBits::eR) | VkFlags(ColorComponentFlagBits::eG) | VkFlags(ColorComponentFlagBits::eB) | VkFlags(ColorComponentFlagBits::eA)
  5679. };
  5680. };
  5681. VULKAN_HPP_INLINE std::string to_string( ColorComponentFlags value )
  5682. {
  5683. if ( !value ) return "{}";
  5684. std::string result;
  5685. if ( value & ColorComponentFlagBits::eR ) result += "R | ";
  5686. if ( value & ColorComponentFlagBits::eG ) result += "G | ";
  5687. if ( value & ColorComponentFlagBits::eB ) result += "B | ";
  5688. if ( value & ColorComponentFlagBits::eA ) result += "A | ";
  5689. return "{ " + result.substr(0, result.size() - 3) + " }";
  5690. }
  5691. enum class CommandBufferResetFlagBits
  5692. {
  5693. eReleaseResources = VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT
  5694. };
  5695. VULKAN_HPP_INLINE std::string to_string( CommandBufferResetFlagBits value )
  5696. {
  5697. switch ( value )
  5698. {
  5699. case CommandBufferResetFlagBits::eReleaseResources : return "ReleaseResources";
  5700. default: return "invalid";
  5701. }
  5702. }
  5703. using CommandBufferResetFlags = Flags<CommandBufferResetFlagBits, VkCommandBufferResetFlags>;
  5704. VULKAN_HPP_INLINE CommandBufferResetFlags operator|( CommandBufferResetFlagBits bit0, CommandBufferResetFlagBits bit1 )
  5705. {
  5706. return CommandBufferResetFlags( bit0 ) | bit1;
  5707. }
  5708. VULKAN_HPP_INLINE CommandBufferResetFlags operator~( CommandBufferResetFlagBits bits )
  5709. {
  5710. return ~( CommandBufferResetFlags( bits ) );
  5711. }
  5712. template <> struct FlagTraits<CommandBufferResetFlagBits>
  5713. {
  5714. enum
  5715. {
  5716. allFlags = VkFlags(CommandBufferResetFlagBits::eReleaseResources)
  5717. };
  5718. };
  5719. VULKAN_HPP_INLINE std::string to_string( CommandBufferResetFlags value )
  5720. {
  5721. if ( !value ) return "{}";
  5722. std::string result;
  5723. if ( value & CommandBufferResetFlagBits::eReleaseResources ) result += "ReleaseResources | ";
  5724. return "{ " + result.substr(0, result.size() - 3) + " }";
  5725. }
  5726. enum class CommandBufferUsageFlagBits
  5727. {
  5728. eOneTimeSubmit = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT,
  5729. eRenderPassContinue = VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT,
  5730. eSimultaneousUse = VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT
  5731. };
  5732. VULKAN_HPP_INLINE std::string to_string( CommandBufferUsageFlagBits value )
  5733. {
  5734. switch ( value )
  5735. {
  5736. case CommandBufferUsageFlagBits::eOneTimeSubmit : return "OneTimeSubmit";
  5737. case CommandBufferUsageFlagBits::eRenderPassContinue : return "RenderPassContinue";
  5738. case CommandBufferUsageFlagBits::eSimultaneousUse : return "SimultaneousUse";
  5739. default: return "invalid";
  5740. }
  5741. }
  5742. using CommandBufferUsageFlags = Flags<CommandBufferUsageFlagBits, VkCommandBufferUsageFlags>;
  5743. VULKAN_HPP_INLINE CommandBufferUsageFlags operator|( CommandBufferUsageFlagBits bit0, CommandBufferUsageFlagBits bit1 )
  5744. {
  5745. return CommandBufferUsageFlags( bit0 ) | bit1;
  5746. }
  5747. VULKAN_HPP_INLINE CommandBufferUsageFlags operator~( CommandBufferUsageFlagBits bits )
  5748. {
  5749. return ~( CommandBufferUsageFlags( bits ) );
  5750. }
  5751. template <> struct FlagTraits<CommandBufferUsageFlagBits>
  5752. {
  5753. enum
  5754. {
  5755. allFlags = VkFlags(CommandBufferUsageFlagBits::eOneTimeSubmit) | VkFlags(CommandBufferUsageFlagBits::eRenderPassContinue) | VkFlags(CommandBufferUsageFlagBits::eSimultaneousUse)
  5756. };
  5757. };
  5758. VULKAN_HPP_INLINE std::string to_string( CommandBufferUsageFlags value )
  5759. {
  5760. if ( !value ) return "{}";
  5761. std::string result;
  5762. if ( value & CommandBufferUsageFlagBits::eOneTimeSubmit ) result += "OneTimeSubmit | ";
  5763. if ( value & CommandBufferUsageFlagBits::eRenderPassContinue ) result += "RenderPassContinue | ";
  5764. if ( value & CommandBufferUsageFlagBits::eSimultaneousUse ) result += "SimultaneousUse | ";
  5765. return "{ " + result.substr(0, result.size() - 3) + " }";
  5766. }
  5767. enum class CommandPoolCreateFlagBits
  5768. {
  5769. eTransient = VK_COMMAND_POOL_CREATE_TRANSIENT_BIT,
  5770. eResetCommandBuffer = VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT,
  5771. eProtected = VK_COMMAND_POOL_CREATE_PROTECTED_BIT
  5772. };
  5773. VULKAN_HPP_INLINE std::string to_string( CommandPoolCreateFlagBits value )
  5774. {
  5775. switch ( value )
  5776. {
  5777. case CommandPoolCreateFlagBits::eTransient : return "Transient";
  5778. case CommandPoolCreateFlagBits::eResetCommandBuffer : return "ResetCommandBuffer";
  5779. case CommandPoolCreateFlagBits::eProtected : return "Protected";
  5780. default: return "invalid";
  5781. }
  5782. }
  5783. using CommandPoolCreateFlags = Flags<CommandPoolCreateFlagBits, VkCommandPoolCreateFlags>;
  5784. VULKAN_HPP_INLINE CommandPoolCreateFlags operator|( CommandPoolCreateFlagBits bit0, CommandPoolCreateFlagBits bit1 )
  5785. {
  5786. return CommandPoolCreateFlags( bit0 ) | bit1;
  5787. }
  5788. VULKAN_HPP_INLINE CommandPoolCreateFlags operator~( CommandPoolCreateFlagBits bits )
  5789. {
  5790. return ~( CommandPoolCreateFlags( bits ) );
  5791. }
  5792. template <> struct FlagTraits<CommandPoolCreateFlagBits>
  5793. {
  5794. enum
  5795. {
  5796. allFlags = VkFlags(CommandPoolCreateFlagBits::eTransient) | VkFlags(CommandPoolCreateFlagBits::eResetCommandBuffer) | VkFlags(CommandPoolCreateFlagBits::eProtected)
  5797. };
  5798. };
  5799. VULKAN_HPP_INLINE std::string to_string( CommandPoolCreateFlags value )
  5800. {
  5801. if ( !value ) return "{}";
  5802. std::string result;
  5803. if ( value & CommandPoolCreateFlagBits::eTransient ) result += "Transient | ";
  5804. if ( value & CommandPoolCreateFlagBits::eResetCommandBuffer ) result += "ResetCommandBuffer | ";
  5805. if ( value & CommandPoolCreateFlagBits::eProtected ) result += "Protected | ";
  5806. return "{ " + result.substr(0, result.size() - 3) + " }";
  5807. }
  5808. enum class CommandPoolResetFlagBits
  5809. {
  5810. eReleaseResources = VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT
  5811. };
  5812. VULKAN_HPP_INLINE std::string to_string( CommandPoolResetFlagBits value )
  5813. {
  5814. switch ( value )
  5815. {
  5816. case CommandPoolResetFlagBits::eReleaseResources : return "ReleaseResources";
  5817. default: return "invalid";
  5818. }
  5819. }
  5820. using CommandPoolResetFlags = Flags<CommandPoolResetFlagBits, VkCommandPoolResetFlags>;
  5821. VULKAN_HPP_INLINE CommandPoolResetFlags operator|( CommandPoolResetFlagBits bit0, CommandPoolResetFlagBits bit1 )
  5822. {
  5823. return CommandPoolResetFlags( bit0 ) | bit1;
  5824. }
  5825. VULKAN_HPP_INLINE CommandPoolResetFlags operator~( CommandPoolResetFlagBits bits )
  5826. {
  5827. return ~( CommandPoolResetFlags( bits ) );
  5828. }
  5829. template <> struct FlagTraits<CommandPoolResetFlagBits>
  5830. {
  5831. enum
  5832. {
  5833. allFlags = VkFlags(CommandPoolResetFlagBits::eReleaseResources)
  5834. };
  5835. };
  5836. VULKAN_HPP_INLINE std::string to_string( CommandPoolResetFlags value )
  5837. {
  5838. if ( !value ) return "{}";
  5839. std::string result;
  5840. if ( value & CommandPoolResetFlagBits::eReleaseResources ) result += "ReleaseResources | ";
  5841. return "{ " + result.substr(0, result.size() - 3) + " }";
  5842. }
  5843. enum class CommandPoolTrimFlagBits
  5844. {};
  5845. VULKAN_HPP_INLINE std::string to_string( CommandPoolTrimFlagBits )
  5846. {
  5847. return "(void)";
  5848. }
  5849. using CommandPoolTrimFlags = Flags<CommandPoolTrimFlagBits, VkCommandPoolTrimFlags>;
  5850. using CommandPoolTrimFlagsKHR = CommandPoolTrimFlags;
  5851. VULKAN_HPP_INLINE std::string to_string( CommandPoolTrimFlags )
  5852. {
  5853. return "{}";
  5854. }
  5855. enum class CompositeAlphaFlagBitsKHR
  5856. {
  5857. eOpaque = VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR,
  5858. ePreMultiplied = VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR,
  5859. ePostMultiplied = VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR,
  5860. eInherit = VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR
  5861. };
  5862. VULKAN_HPP_INLINE std::string to_string( CompositeAlphaFlagBitsKHR value )
  5863. {
  5864. switch ( value )
  5865. {
  5866. case CompositeAlphaFlagBitsKHR::eOpaque : return "Opaque";
  5867. case CompositeAlphaFlagBitsKHR::ePreMultiplied : return "PreMultiplied";
  5868. case CompositeAlphaFlagBitsKHR::ePostMultiplied : return "PostMultiplied";
  5869. case CompositeAlphaFlagBitsKHR::eInherit : return "Inherit";
  5870. default: return "invalid";
  5871. }
  5872. }
  5873. using CompositeAlphaFlagsKHR = Flags<CompositeAlphaFlagBitsKHR, VkCompositeAlphaFlagsKHR>;
  5874. VULKAN_HPP_INLINE CompositeAlphaFlagsKHR operator|( CompositeAlphaFlagBitsKHR bit0, CompositeAlphaFlagBitsKHR bit1 )
  5875. {
  5876. return CompositeAlphaFlagsKHR( bit0 ) | bit1;
  5877. }
  5878. VULKAN_HPP_INLINE CompositeAlphaFlagsKHR operator~( CompositeAlphaFlagBitsKHR bits )
  5879. {
  5880. return ~( CompositeAlphaFlagsKHR( bits ) );
  5881. }
  5882. template <> struct FlagTraits<CompositeAlphaFlagBitsKHR>
  5883. {
  5884. enum
  5885. {
  5886. allFlags = VkFlags(CompositeAlphaFlagBitsKHR::eOpaque) | VkFlags(CompositeAlphaFlagBitsKHR::ePreMultiplied) | VkFlags(CompositeAlphaFlagBitsKHR::ePostMultiplied) | VkFlags(CompositeAlphaFlagBitsKHR::eInherit)
  5887. };
  5888. };
  5889. VULKAN_HPP_INLINE std::string to_string( CompositeAlphaFlagsKHR value )
  5890. {
  5891. if ( !value ) return "{}";
  5892. std::string result;
  5893. if ( value & CompositeAlphaFlagBitsKHR::eOpaque ) result += "Opaque | ";
  5894. if ( value & CompositeAlphaFlagBitsKHR::ePreMultiplied ) result += "PreMultiplied | ";
  5895. if ( value & CompositeAlphaFlagBitsKHR::ePostMultiplied ) result += "PostMultiplied | ";
  5896. if ( value & CompositeAlphaFlagBitsKHR::eInherit ) result += "Inherit | ";
  5897. return "{ " + result.substr(0, result.size() - 3) + " }";
  5898. }
  5899. enum class ConditionalRenderingFlagBitsEXT
  5900. {
  5901. eInverted = VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT
  5902. };
  5903. VULKAN_HPP_INLINE std::string to_string( ConditionalRenderingFlagBitsEXT value )
  5904. {
  5905. switch ( value )
  5906. {
  5907. case ConditionalRenderingFlagBitsEXT::eInverted : return "Inverted";
  5908. default: return "invalid";
  5909. }
  5910. }
  5911. using ConditionalRenderingFlagsEXT = Flags<ConditionalRenderingFlagBitsEXT, VkConditionalRenderingFlagsEXT>;
  5912. VULKAN_HPP_INLINE ConditionalRenderingFlagsEXT operator|( ConditionalRenderingFlagBitsEXT bit0, ConditionalRenderingFlagBitsEXT bit1 )
  5913. {
  5914. return ConditionalRenderingFlagsEXT( bit0 ) | bit1;
  5915. }
  5916. VULKAN_HPP_INLINE ConditionalRenderingFlagsEXT operator~( ConditionalRenderingFlagBitsEXT bits )
  5917. {
  5918. return ~( ConditionalRenderingFlagsEXT( bits ) );
  5919. }
  5920. template <> struct FlagTraits<ConditionalRenderingFlagBitsEXT>
  5921. {
  5922. enum
  5923. {
  5924. allFlags = VkFlags(ConditionalRenderingFlagBitsEXT::eInverted)
  5925. };
  5926. };
  5927. VULKAN_HPP_INLINE std::string to_string( ConditionalRenderingFlagsEXT value )
  5928. {
  5929. if ( !value ) return "{}";
  5930. std::string result;
  5931. if ( value & ConditionalRenderingFlagBitsEXT::eInverted ) result += "Inverted | ";
  5932. return "{ " + result.substr(0, result.size() - 3) + " }";
  5933. }
  5934. enum class CullModeFlagBits
  5935. {
  5936. eNone = VK_CULL_MODE_NONE,
  5937. eFront = VK_CULL_MODE_FRONT_BIT,
  5938. eBack = VK_CULL_MODE_BACK_BIT,
  5939. eFrontAndBack = VK_CULL_MODE_FRONT_AND_BACK
  5940. };
  5941. VULKAN_HPP_INLINE std::string to_string( CullModeFlagBits value )
  5942. {
  5943. switch ( value )
  5944. {
  5945. case CullModeFlagBits::eNone : return "None";
  5946. case CullModeFlagBits::eFront : return "Front";
  5947. case CullModeFlagBits::eBack : return "Back";
  5948. case CullModeFlagBits::eFrontAndBack : return "FrontAndBack";
  5949. default: return "invalid";
  5950. }
  5951. }
  5952. using CullModeFlags = Flags<CullModeFlagBits, VkCullModeFlags>;
  5953. VULKAN_HPP_INLINE CullModeFlags operator|( CullModeFlagBits bit0, CullModeFlagBits bit1 )
  5954. {
  5955. return CullModeFlags( bit0 ) | bit1;
  5956. }
  5957. VULKAN_HPP_INLINE CullModeFlags operator~( CullModeFlagBits bits )
  5958. {
  5959. return ~( CullModeFlags( bits ) );
  5960. }
  5961. template <> struct FlagTraits<CullModeFlagBits>
  5962. {
  5963. enum
  5964. {
  5965. allFlags = VkFlags(CullModeFlagBits::eNone) | VkFlags(CullModeFlagBits::eFront) | VkFlags(CullModeFlagBits::eBack) | VkFlags(CullModeFlagBits::eFrontAndBack)
  5966. };
  5967. };
  5968. VULKAN_HPP_INLINE std::string to_string( CullModeFlags value )
  5969. {
  5970. if ( !value ) return "{}";
  5971. std::string result;
  5972. if ( value & CullModeFlagBits::eFront ) result += "Front | ";
  5973. if ( value & CullModeFlagBits::eBack ) result += "Back | ";
  5974. return "{ " + result.substr(0, result.size() - 3) + " }";
  5975. }
  5976. enum class DebugReportFlagBitsEXT
  5977. {
  5978. eInformation = VK_DEBUG_REPORT_INFORMATION_BIT_EXT,
  5979. eWarning = VK_DEBUG_REPORT_WARNING_BIT_EXT,
  5980. ePerformanceWarning = VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT,
  5981. eError = VK_DEBUG_REPORT_ERROR_BIT_EXT,
  5982. eDebug = VK_DEBUG_REPORT_DEBUG_BIT_EXT
  5983. };
  5984. VULKAN_HPP_INLINE std::string to_string( DebugReportFlagBitsEXT value )
  5985. {
  5986. switch ( value )
  5987. {
  5988. case DebugReportFlagBitsEXT::eInformation : return "Information";
  5989. case DebugReportFlagBitsEXT::eWarning : return "Warning";
  5990. case DebugReportFlagBitsEXT::ePerformanceWarning : return "PerformanceWarning";
  5991. case DebugReportFlagBitsEXT::eError : return "Error";
  5992. case DebugReportFlagBitsEXT::eDebug : return "Debug";
  5993. default: return "invalid";
  5994. }
  5995. }
  5996. using DebugReportFlagsEXT = Flags<DebugReportFlagBitsEXT, VkDebugReportFlagsEXT>;
  5997. VULKAN_HPP_INLINE DebugReportFlagsEXT operator|( DebugReportFlagBitsEXT bit0, DebugReportFlagBitsEXT bit1 )
  5998. {
  5999. return DebugReportFlagsEXT( bit0 ) | bit1;
  6000. }
  6001. VULKAN_HPP_INLINE DebugReportFlagsEXT operator~( DebugReportFlagBitsEXT bits )
  6002. {
  6003. return ~( DebugReportFlagsEXT( bits ) );
  6004. }
  6005. template <> struct FlagTraits<DebugReportFlagBitsEXT>
  6006. {
  6007. enum
  6008. {
  6009. allFlags = VkFlags(DebugReportFlagBitsEXT::eInformation) | VkFlags(DebugReportFlagBitsEXT::eWarning) | VkFlags(DebugReportFlagBitsEXT::ePerformanceWarning) | VkFlags(DebugReportFlagBitsEXT::eError) | VkFlags(DebugReportFlagBitsEXT::eDebug)
  6010. };
  6011. };
  6012. VULKAN_HPP_INLINE std::string to_string( DebugReportFlagsEXT value )
  6013. {
  6014. if ( !value ) return "{}";
  6015. std::string result;
  6016. if ( value & DebugReportFlagBitsEXT::eInformation ) result += "Information | ";
  6017. if ( value & DebugReportFlagBitsEXT::eWarning ) result += "Warning | ";
  6018. if ( value & DebugReportFlagBitsEXT::ePerformanceWarning ) result += "PerformanceWarning | ";
  6019. if ( value & DebugReportFlagBitsEXT::eError ) result += "Error | ";
  6020. if ( value & DebugReportFlagBitsEXT::eDebug ) result += "Debug | ";
  6021. return "{ " + result.substr(0, result.size() - 3) + " }";
  6022. }
  6023. enum class DebugUtilsMessageSeverityFlagBitsEXT
  6024. {
  6025. eVerbose = VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT,
  6026. eInfo = VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT,
  6027. eWarning = VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT,
  6028. eError = VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT
  6029. };
  6030. VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageSeverityFlagBitsEXT value )
  6031. {
  6032. switch ( value )
  6033. {
  6034. case DebugUtilsMessageSeverityFlagBitsEXT::eVerbose : return "Verbose";
  6035. case DebugUtilsMessageSeverityFlagBitsEXT::eInfo : return "Info";
  6036. case DebugUtilsMessageSeverityFlagBitsEXT::eWarning : return "Warning";
  6037. case DebugUtilsMessageSeverityFlagBitsEXT::eError : return "Error";
  6038. default: return "invalid";
  6039. }
  6040. }
  6041. using DebugUtilsMessageSeverityFlagsEXT = Flags<DebugUtilsMessageSeverityFlagBitsEXT, VkDebugUtilsMessageSeverityFlagsEXT>;
  6042. VULKAN_HPP_INLINE DebugUtilsMessageSeverityFlagsEXT operator|( DebugUtilsMessageSeverityFlagBitsEXT bit0, DebugUtilsMessageSeverityFlagBitsEXT bit1 )
  6043. {
  6044. return DebugUtilsMessageSeverityFlagsEXT( bit0 ) | bit1;
  6045. }
  6046. VULKAN_HPP_INLINE DebugUtilsMessageSeverityFlagsEXT operator~( DebugUtilsMessageSeverityFlagBitsEXT bits )
  6047. {
  6048. return ~( DebugUtilsMessageSeverityFlagsEXT( bits ) );
  6049. }
  6050. template <> struct FlagTraits<DebugUtilsMessageSeverityFlagBitsEXT>
  6051. {
  6052. enum
  6053. {
  6054. allFlags = VkFlags(DebugUtilsMessageSeverityFlagBitsEXT::eVerbose) | VkFlags(DebugUtilsMessageSeverityFlagBitsEXT::eInfo) | VkFlags(DebugUtilsMessageSeverityFlagBitsEXT::eWarning) | VkFlags(DebugUtilsMessageSeverityFlagBitsEXT::eError)
  6055. };
  6056. };
  6057. VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageSeverityFlagsEXT value )
  6058. {
  6059. if ( !value ) return "{}";
  6060. std::string result;
  6061. if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eVerbose ) result += "Verbose | ";
  6062. if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eInfo ) result += "Info | ";
  6063. if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eWarning ) result += "Warning | ";
  6064. if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eError ) result += "Error | ";
  6065. return "{ " + result.substr(0, result.size() - 3) + " }";
  6066. }
  6067. enum class DebugUtilsMessageTypeFlagBitsEXT
  6068. {
  6069. eGeneral = VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT,
  6070. eValidation = VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT,
  6071. ePerformance = VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT
  6072. };
  6073. VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageTypeFlagBitsEXT value )
  6074. {
  6075. switch ( value )
  6076. {
  6077. case DebugUtilsMessageTypeFlagBitsEXT::eGeneral : return "General";
  6078. case DebugUtilsMessageTypeFlagBitsEXT::eValidation : return "Validation";
  6079. case DebugUtilsMessageTypeFlagBitsEXT::ePerformance : return "Performance";
  6080. default: return "invalid";
  6081. }
  6082. }
  6083. using DebugUtilsMessageTypeFlagsEXT = Flags<DebugUtilsMessageTypeFlagBitsEXT, VkDebugUtilsMessageTypeFlagsEXT>;
  6084. VULKAN_HPP_INLINE DebugUtilsMessageTypeFlagsEXT operator|( DebugUtilsMessageTypeFlagBitsEXT bit0, DebugUtilsMessageTypeFlagBitsEXT bit1 )
  6085. {
  6086. return DebugUtilsMessageTypeFlagsEXT( bit0 ) | bit1;
  6087. }
  6088. VULKAN_HPP_INLINE DebugUtilsMessageTypeFlagsEXT operator~( DebugUtilsMessageTypeFlagBitsEXT bits )
  6089. {
  6090. return ~( DebugUtilsMessageTypeFlagsEXT( bits ) );
  6091. }
  6092. template <> struct FlagTraits<DebugUtilsMessageTypeFlagBitsEXT>
  6093. {
  6094. enum
  6095. {
  6096. allFlags = VkFlags(DebugUtilsMessageTypeFlagBitsEXT::eGeneral) | VkFlags(DebugUtilsMessageTypeFlagBitsEXT::eValidation) | VkFlags(DebugUtilsMessageTypeFlagBitsEXT::ePerformance)
  6097. };
  6098. };
  6099. VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageTypeFlagsEXT value )
  6100. {
  6101. if ( !value ) return "{}";
  6102. std::string result;
  6103. if ( value & DebugUtilsMessageTypeFlagBitsEXT::eGeneral ) result += "General | ";
  6104. if ( value & DebugUtilsMessageTypeFlagBitsEXT::eValidation ) result += "Validation | ";
  6105. if ( value & DebugUtilsMessageTypeFlagBitsEXT::ePerformance ) result += "Performance | ";
  6106. return "{ " + result.substr(0, result.size() - 3) + " }";
  6107. }
  6108. enum class DebugUtilsMessengerCallbackDataFlagBitsEXT
  6109. {};
  6110. VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCallbackDataFlagBitsEXT )
  6111. {
  6112. return "(void)";
  6113. }
  6114. using DebugUtilsMessengerCallbackDataFlagsEXT = Flags<DebugUtilsMessengerCallbackDataFlagBitsEXT, VkDebugUtilsMessengerCallbackDataFlagsEXT>;
  6115. VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCallbackDataFlagsEXT )
  6116. {
  6117. return "{}";
  6118. }
  6119. enum class DebugUtilsMessengerCreateFlagBitsEXT
  6120. {};
  6121. VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCreateFlagBitsEXT )
  6122. {
  6123. return "(void)";
  6124. }
  6125. using DebugUtilsMessengerCreateFlagsEXT = Flags<DebugUtilsMessengerCreateFlagBitsEXT, VkDebugUtilsMessengerCreateFlagsEXT>;
  6126. VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCreateFlagsEXT )
  6127. {
  6128. return "{}";
  6129. }
  6130. enum class DependencyFlagBits
  6131. {
  6132. eByRegion = VK_DEPENDENCY_BY_REGION_BIT,
  6133. eDeviceGroup = VK_DEPENDENCY_DEVICE_GROUP_BIT,
  6134. eViewLocal = VK_DEPENDENCY_VIEW_LOCAL_BIT,
  6135. eViewLocalKHR = VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR,
  6136. eDeviceGroupKHR = VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR
  6137. };
  6138. VULKAN_HPP_INLINE std::string to_string( DependencyFlagBits value )
  6139. {
  6140. switch ( value )
  6141. {
  6142. case DependencyFlagBits::eByRegion : return "ByRegion";
  6143. case DependencyFlagBits::eDeviceGroup : return "DeviceGroup";
  6144. case DependencyFlagBits::eViewLocal : return "ViewLocal";
  6145. default: return "invalid";
  6146. }
  6147. }
  6148. using DependencyFlags = Flags<DependencyFlagBits, VkDependencyFlags>;
  6149. VULKAN_HPP_INLINE DependencyFlags operator|( DependencyFlagBits bit0, DependencyFlagBits bit1 )
  6150. {
  6151. return DependencyFlags( bit0 ) | bit1;
  6152. }
  6153. VULKAN_HPP_INLINE DependencyFlags operator~( DependencyFlagBits bits )
  6154. {
  6155. return ~( DependencyFlags( bits ) );
  6156. }
  6157. template <> struct FlagTraits<DependencyFlagBits>
  6158. {
  6159. enum
  6160. {
  6161. allFlags = VkFlags(DependencyFlagBits::eByRegion) | VkFlags(DependencyFlagBits::eDeviceGroup) | VkFlags(DependencyFlagBits::eViewLocal)
  6162. };
  6163. };
  6164. VULKAN_HPP_INLINE std::string to_string( DependencyFlags value )
  6165. {
  6166. if ( !value ) return "{}";
  6167. std::string result;
  6168. if ( value & DependencyFlagBits::eByRegion ) result += "ByRegion | ";
  6169. if ( value & DependencyFlagBits::eDeviceGroup ) result += "DeviceGroup | ";
  6170. if ( value & DependencyFlagBits::eViewLocal ) result += "ViewLocal | ";
  6171. return "{ " + result.substr(0, result.size() - 3) + " }";
  6172. }
  6173. enum class DescriptorBindingFlagBitsEXT
  6174. {
  6175. eUpdateAfterBind = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT,
  6176. eUpdateUnusedWhilePending = VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT,
  6177. ePartiallyBound = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT,
  6178. eVariableDescriptorCount = VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT
  6179. };
  6180. VULKAN_HPP_INLINE std::string to_string( DescriptorBindingFlagBitsEXT value )
  6181. {
  6182. switch ( value )
  6183. {
  6184. case DescriptorBindingFlagBitsEXT::eUpdateAfterBind : return "UpdateAfterBind";
  6185. case DescriptorBindingFlagBitsEXT::eUpdateUnusedWhilePending : return "UpdateUnusedWhilePending";
  6186. case DescriptorBindingFlagBitsEXT::ePartiallyBound : return "PartiallyBound";
  6187. case DescriptorBindingFlagBitsEXT::eVariableDescriptorCount : return "VariableDescriptorCount";
  6188. default: return "invalid";
  6189. }
  6190. }
  6191. using DescriptorBindingFlagsEXT = Flags<DescriptorBindingFlagBitsEXT, VkDescriptorBindingFlagsEXT>;
  6192. VULKAN_HPP_INLINE DescriptorBindingFlagsEXT operator|( DescriptorBindingFlagBitsEXT bit0, DescriptorBindingFlagBitsEXT bit1 )
  6193. {
  6194. return DescriptorBindingFlagsEXT( bit0 ) | bit1;
  6195. }
  6196. VULKAN_HPP_INLINE DescriptorBindingFlagsEXT operator~( DescriptorBindingFlagBitsEXT bits )
  6197. {
  6198. return ~( DescriptorBindingFlagsEXT( bits ) );
  6199. }
  6200. template <> struct FlagTraits<DescriptorBindingFlagBitsEXT>
  6201. {
  6202. enum
  6203. {
  6204. allFlags = VkFlags(DescriptorBindingFlagBitsEXT::eUpdateAfterBind) | VkFlags(DescriptorBindingFlagBitsEXT::eUpdateUnusedWhilePending) | VkFlags(DescriptorBindingFlagBitsEXT::ePartiallyBound) | VkFlags(DescriptorBindingFlagBitsEXT::eVariableDescriptorCount)
  6205. };
  6206. };
  6207. VULKAN_HPP_INLINE std::string to_string( DescriptorBindingFlagsEXT value )
  6208. {
  6209. if ( !value ) return "{}";
  6210. std::string result;
  6211. if ( value & DescriptorBindingFlagBitsEXT::eUpdateAfterBind ) result += "UpdateAfterBind | ";
  6212. if ( value & DescriptorBindingFlagBitsEXT::eUpdateUnusedWhilePending ) result += "UpdateUnusedWhilePending | ";
  6213. if ( value & DescriptorBindingFlagBitsEXT::ePartiallyBound ) result += "PartiallyBound | ";
  6214. if ( value & DescriptorBindingFlagBitsEXT::eVariableDescriptorCount ) result += "VariableDescriptorCount | ";
  6215. return "{ " + result.substr(0, result.size() - 3) + " }";
  6216. }
  6217. enum class DescriptorPoolCreateFlagBits
  6218. {
  6219. eFreeDescriptorSet = VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT,
  6220. eUpdateAfterBindEXT = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT
  6221. };
  6222. VULKAN_HPP_INLINE std::string to_string( DescriptorPoolCreateFlagBits value )
  6223. {
  6224. switch ( value )
  6225. {
  6226. case DescriptorPoolCreateFlagBits::eFreeDescriptorSet : return "FreeDescriptorSet";
  6227. case DescriptorPoolCreateFlagBits::eUpdateAfterBindEXT : return "UpdateAfterBindEXT";
  6228. default: return "invalid";
  6229. }
  6230. }
  6231. using DescriptorPoolCreateFlags = Flags<DescriptorPoolCreateFlagBits, VkDescriptorPoolCreateFlags>;
  6232. VULKAN_HPP_INLINE DescriptorPoolCreateFlags operator|( DescriptorPoolCreateFlagBits bit0, DescriptorPoolCreateFlagBits bit1 )
  6233. {
  6234. return DescriptorPoolCreateFlags( bit0 ) | bit1;
  6235. }
  6236. VULKAN_HPP_INLINE DescriptorPoolCreateFlags operator~( DescriptorPoolCreateFlagBits bits )
  6237. {
  6238. return ~( DescriptorPoolCreateFlags( bits ) );
  6239. }
  6240. template <> struct FlagTraits<DescriptorPoolCreateFlagBits>
  6241. {
  6242. enum
  6243. {
  6244. allFlags = VkFlags(DescriptorPoolCreateFlagBits::eFreeDescriptorSet) | VkFlags(DescriptorPoolCreateFlagBits::eUpdateAfterBindEXT)
  6245. };
  6246. };
  6247. VULKAN_HPP_INLINE std::string to_string( DescriptorPoolCreateFlags value )
  6248. {
  6249. if ( !value ) return "{}";
  6250. std::string result;
  6251. if ( value & DescriptorPoolCreateFlagBits::eFreeDescriptorSet ) result += "FreeDescriptorSet | ";
  6252. if ( value & DescriptorPoolCreateFlagBits::eUpdateAfterBindEXT ) result += "UpdateAfterBindEXT | ";
  6253. return "{ " + result.substr(0, result.size() - 3) + " }";
  6254. }
  6255. enum class DescriptorPoolResetFlagBits
  6256. {};
  6257. VULKAN_HPP_INLINE std::string to_string( DescriptorPoolResetFlagBits )
  6258. {
  6259. return "(void)";
  6260. }
  6261. using DescriptorPoolResetFlags = Flags<DescriptorPoolResetFlagBits, VkDescriptorPoolResetFlags>;
  6262. VULKAN_HPP_INLINE std::string to_string( DescriptorPoolResetFlags )
  6263. {
  6264. return "{}";
  6265. }
  6266. enum class DescriptorSetLayoutCreateFlagBits
  6267. {
  6268. ePushDescriptorKHR = VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR,
  6269. eUpdateAfterBindPoolEXT = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT
  6270. };
  6271. VULKAN_HPP_INLINE std::string to_string( DescriptorSetLayoutCreateFlagBits value )
  6272. {
  6273. switch ( value )
  6274. {
  6275. case DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR : return "PushDescriptorKHR";
  6276. case DescriptorSetLayoutCreateFlagBits::eUpdateAfterBindPoolEXT : return "UpdateAfterBindPoolEXT";
  6277. default: return "invalid";
  6278. }
  6279. }
  6280. using DescriptorSetLayoutCreateFlags = Flags<DescriptorSetLayoutCreateFlagBits, VkDescriptorSetLayoutCreateFlags>;
  6281. VULKAN_HPP_INLINE DescriptorSetLayoutCreateFlags operator|( DescriptorSetLayoutCreateFlagBits bit0, DescriptorSetLayoutCreateFlagBits bit1 )
  6282. {
  6283. return DescriptorSetLayoutCreateFlags( bit0 ) | bit1;
  6284. }
  6285. VULKAN_HPP_INLINE DescriptorSetLayoutCreateFlags operator~( DescriptorSetLayoutCreateFlagBits bits )
  6286. {
  6287. return ~( DescriptorSetLayoutCreateFlags( bits ) );
  6288. }
  6289. template <> struct FlagTraits<DescriptorSetLayoutCreateFlagBits>
  6290. {
  6291. enum
  6292. {
  6293. allFlags = VkFlags(DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR) | VkFlags(DescriptorSetLayoutCreateFlagBits::eUpdateAfterBindPoolEXT)
  6294. };
  6295. };
  6296. VULKAN_HPP_INLINE std::string to_string( DescriptorSetLayoutCreateFlags value )
  6297. {
  6298. if ( !value ) return "{}";
  6299. std::string result;
  6300. if ( value & DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR ) result += "PushDescriptorKHR | ";
  6301. if ( value & DescriptorSetLayoutCreateFlagBits::eUpdateAfterBindPoolEXT ) result += "UpdateAfterBindPoolEXT | ";
  6302. return "{ " + result.substr(0, result.size() - 3) + " }";
  6303. }
  6304. enum class DescriptorUpdateTemplateCreateFlagBits
  6305. {};
  6306. VULKAN_HPP_INLINE std::string to_string( DescriptorUpdateTemplateCreateFlagBits )
  6307. {
  6308. return "(void)";
  6309. }
  6310. using DescriptorUpdateTemplateCreateFlags = Flags<DescriptorUpdateTemplateCreateFlagBits, VkDescriptorUpdateTemplateCreateFlags>;
  6311. using DescriptorUpdateTemplateCreateFlagsKHR = DescriptorUpdateTemplateCreateFlags;
  6312. VULKAN_HPP_INLINE std::string to_string( DescriptorUpdateTemplateCreateFlags )
  6313. {
  6314. return "{}";
  6315. }
  6316. enum class DeviceCreateFlagBits
  6317. {};
  6318. VULKAN_HPP_INLINE std::string to_string( DeviceCreateFlagBits )
  6319. {
  6320. return "(void)";
  6321. }
  6322. using DeviceCreateFlags = Flags<DeviceCreateFlagBits, VkDeviceCreateFlags>;
  6323. VULKAN_HPP_INLINE std::string to_string( DeviceCreateFlags )
  6324. {
  6325. return "{}";
  6326. }
  6327. enum class DeviceGroupPresentModeFlagBitsKHR
  6328. {
  6329. eLocal = VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR,
  6330. eRemote = VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR,
  6331. eSum = VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR,
  6332. eLocalMultiDevice = VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR
  6333. };
  6334. VULKAN_HPP_INLINE std::string to_string( DeviceGroupPresentModeFlagBitsKHR value )
  6335. {
  6336. switch ( value )
  6337. {
  6338. case DeviceGroupPresentModeFlagBitsKHR::eLocal : return "Local";
  6339. case DeviceGroupPresentModeFlagBitsKHR::eRemote : return "Remote";
  6340. case DeviceGroupPresentModeFlagBitsKHR::eSum : return "Sum";
  6341. case DeviceGroupPresentModeFlagBitsKHR::eLocalMultiDevice : return "LocalMultiDevice";
  6342. default: return "invalid";
  6343. }
  6344. }
  6345. using DeviceGroupPresentModeFlagsKHR = Flags<DeviceGroupPresentModeFlagBitsKHR, VkDeviceGroupPresentModeFlagsKHR>;
  6346. VULKAN_HPP_INLINE DeviceGroupPresentModeFlagsKHR operator|( DeviceGroupPresentModeFlagBitsKHR bit0, DeviceGroupPresentModeFlagBitsKHR bit1 )
  6347. {
  6348. return DeviceGroupPresentModeFlagsKHR( bit0 ) | bit1;
  6349. }
  6350. VULKAN_HPP_INLINE DeviceGroupPresentModeFlagsKHR operator~( DeviceGroupPresentModeFlagBitsKHR bits )
  6351. {
  6352. return ~( DeviceGroupPresentModeFlagsKHR( bits ) );
  6353. }
  6354. template <> struct FlagTraits<DeviceGroupPresentModeFlagBitsKHR>
  6355. {
  6356. enum
  6357. {
  6358. allFlags = VkFlags(DeviceGroupPresentModeFlagBitsKHR::eLocal) | VkFlags(DeviceGroupPresentModeFlagBitsKHR::eRemote) | VkFlags(DeviceGroupPresentModeFlagBitsKHR::eSum) | VkFlags(DeviceGroupPresentModeFlagBitsKHR::eLocalMultiDevice)
  6359. };
  6360. };
  6361. VULKAN_HPP_INLINE std::string to_string( DeviceGroupPresentModeFlagsKHR value )
  6362. {
  6363. if ( !value ) return "{}";
  6364. std::string result;
  6365. if ( value & DeviceGroupPresentModeFlagBitsKHR::eLocal ) result += "Local | ";
  6366. if ( value & DeviceGroupPresentModeFlagBitsKHR::eRemote ) result += "Remote | ";
  6367. if ( value & DeviceGroupPresentModeFlagBitsKHR::eSum ) result += "Sum | ";
  6368. if ( value & DeviceGroupPresentModeFlagBitsKHR::eLocalMultiDevice ) result += "LocalMultiDevice | ";
  6369. return "{ " + result.substr(0, result.size() - 3) + " }";
  6370. }
  6371. enum class DeviceQueueCreateFlagBits
  6372. {
  6373. eProtected = VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT
  6374. };
  6375. VULKAN_HPP_INLINE std::string to_string( DeviceQueueCreateFlagBits value )
  6376. {
  6377. switch ( value )
  6378. {
  6379. case DeviceQueueCreateFlagBits::eProtected : return "Protected";
  6380. default: return "invalid";
  6381. }
  6382. }
  6383. using DeviceQueueCreateFlags = Flags<DeviceQueueCreateFlagBits, VkDeviceQueueCreateFlags>;
  6384. VULKAN_HPP_INLINE DeviceQueueCreateFlags operator|( DeviceQueueCreateFlagBits bit0, DeviceQueueCreateFlagBits bit1 )
  6385. {
  6386. return DeviceQueueCreateFlags( bit0 ) | bit1;
  6387. }
  6388. VULKAN_HPP_INLINE DeviceQueueCreateFlags operator~( DeviceQueueCreateFlagBits bits )
  6389. {
  6390. return ~( DeviceQueueCreateFlags( bits ) );
  6391. }
  6392. template <> struct FlagTraits<DeviceQueueCreateFlagBits>
  6393. {
  6394. enum
  6395. {
  6396. allFlags = VkFlags(DeviceQueueCreateFlagBits::eProtected)
  6397. };
  6398. };
  6399. VULKAN_HPP_INLINE std::string to_string( DeviceQueueCreateFlags value )
  6400. {
  6401. if ( !value ) return "{}";
  6402. std::string result;
  6403. if ( value & DeviceQueueCreateFlagBits::eProtected ) result += "Protected | ";
  6404. return "{ " + result.substr(0, result.size() - 3) + " }";
  6405. }
  6406. enum class DisplayModeCreateFlagBitsKHR
  6407. {};
  6408. VULKAN_HPP_INLINE std::string to_string( DisplayModeCreateFlagBitsKHR )
  6409. {
  6410. return "(void)";
  6411. }
  6412. using DisplayModeCreateFlagsKHR = Flags<DisplayModeCreateFlagBitsKHR, VkDisplayModeCreateFlagsKHR>;
  6413. VULKAN_HPP_INLINE std::string to_string( DisplayModeCreateFlagsKHR )
  6414. {
  6415. return "{}";
  6416. }
  6417. enum class DisplayPlaneAlphaFlagBitsKHR
  6418. {
  6419. eOpaque = VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR,
  6420. eGlobal = VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR,
  6421. ePerPixel = VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR,
  6422. ePerPixelPremultiplied = VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR
  6423. };
  6424. VULKAN_HPP_INLINE std::string to_string( DisplayPlaneAlphaFlagBitsKHR value )
  6425. {
  6426. switch ( value )
  6427. {
  6428. case DisplayPlaneAlphaFlagBitsKHR::eOpaque : return "Opaque";
  6429. case DisplayPlaneAlphaFlagBitsKHR::eGlobal : return "Global";
  6430. case DisplayPlaneAlphaFlagBitsKHR::ePerPixel : return "PerPixel";
  6431. case DisplayPlaneAlphaFlagBitsKHR::ePerPixelPremultiplied : return "PerPixelPremultiplied";
  6432. default: return "invalid";
  6433. }
  6434. }
  6435. using DisplayPlaneAlphaFlagsKHR = Flags<DisplayPlaneAlphaFlagBitsKHR, VkDisplayPlaneAlphaFlagsKHR>;
  6436. VULKAN_HPP_INLINE DisplayPlaneAlphaFlagsKHR operator|( DisplayPlaneAlphaFlagBitsKHR bit0, DisplayPlaneAlphaFlagBitsKHR bit1 )
  6437. {
  6438. return DisplayPlaneAlphaFlagsKHR( bit0 ) | bit1;
  6439. }
  6440. VULKAN_HPP_INLINE DisplayPlaneAlphaFlagsKHR operator~( DisplayPlaneAlphaFlagBitsKHR bits )
  6441. {
  6442. return ~( DisplayPlaneAlphaFlagsKHR( bits ) );
  6443. }
  6444. template <> struct FlagTraits<DisplayPlaneAlphaFlagBitsKHR>
  6445. {
  6446. enum
  6447. {
  6448. allFlags = VkFlags(DisplayPlaneAlphaFlagBitsKHR::eOpaque) | VkFlags(DisplayPlaneAlphaFlagBitsKHR::eGlobal) | VkFlags(DisplayPlaneAlphaFlagBitsKHR::ePerPixel) | VkFlags(DisplayPlaneAlphaFlagBitsKHR::ePerPixelPremultiplied)
  6449. };
  6450. };
  6451. VULKAN_HPP_INLINE std::string to_string( DisplayPlaneAlphaFlagsKHR value )
  6452. {
  6453. if ( !value ) return "{}";
  6454. std::string result;
  6455. if ( value & DisplayPlaneAlphaFlagBitsKHR::eOpaque ) result += "Opaque | ";
  6456. if ( value & DisplayPlaneAlphaFlagBitsKHR::eGlobal ) result += "Global | ";
  6457. if ( value & DisplayPlaneAlphaFlagBitsKHR::ePerPixel ) result += "PerPixel | ";
  6458. if ( value & DisplayPlaneAlphaFlagBitsKHR::ePerPixelPremultiplied ) result += "PerPixelPremultiplied | ";
  6459. return "{ " + result.substr(0, result.size() - 3) + " }";
  6460. }
  6461. enum class DisplaySurfaceCreateFlagBitsKHR
  6462. {};
  6463. VULKAN_HPP_INLINE std::string to_string( DisplaySurfaceCreateFlagBitsKHR )
  6464. {
  6465. return "(void)";
  6466. }
  6467. using DisplaySurfaceCreateFlagsKHR = Flags<DisplaySurfaceCreateFlagBitsKHR, VkDisplaySurfaceCreateFlagsKHR>;
  6468. VULKAN_HPP_INLINE std::string to_string( DisplaySurfaceCreateFlagsKHR )
  6469. {
  6470. return "{}";
  6471. }
  6472. enum class EventCreateFlagBits
  6473. {};
  6474. VULKAN_HPP_INLINE std::string to_string( EventCreateFlagBits )
  6475. {
  6476. return "(void)";
  6477. }
  6478. using EventCreateFlags = Flags<EventCreateFlagBits, VkEventCreateFlags>;
  6479. VULKAN_HPP_INLINE std::string to_string( EventCreateFlags )
  6480. {
  6481. return "{}";
  6482. }
  6483. enum class ExternalFenceFeatureFlagBits
  6484. {
  6485. eExportable = VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,
  6486. eImportable = VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT,
  6487. eExportableKHR = VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR,
  6488. eImportableKHR = VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR
  6489. };
  6490. VULKAN_HPP_INLINE std::string to_string( ExternalFenceFeatureFlagBits value )
  6491. {
  6492. switch ( value )
  6493. {
  6494. case ExternalFenceFeatureFlagBits::eExportable : return "Exportable";
  6495. case ExternalFenceFeatureFlagBits::eImportable : return "Importable";
  6496. default: return "invalid";
  6497. }
  6498. }
  6499. using ExternalFenceFeatureFlags = Flags<ExternalFenceFeatureFlagBits, VkExternalFenceFeatureFlags>;
  6500. VULKAN_HPP_INLINE ExternalFenceFeatureFlags operator|( ExternalFenceFeatureFlagBits bit0, ExternalFenceFeatureFlagBits bit1 )
  6501. {
  6502. return ExternalFenceFeatureFlags( bit0 ) | bit1;
  6503. }
  6504. VULKAN_HPP_INLINE ExternalFenceFeatureFlags operator~( ExternalFenceFeatureFlagBits bits )
  6505. {
  6506. return ~( ExternalFenceFeatureFlags( bits ) );
  6507. }
  6508. template <> struct FlagTraits<ExternalFenceFeatureFlagBits>
  6509. {
  6510. enum
  6511. {
  6512. allFlags = VkFlags(ExternalFenceFeatureFlagBits::eExportable) | VkFlags(ExternalFenceFeatureFlagBits::eImportable)
  6513. };
  6514. };
  6515. using ExternalFenceFeatureFlagsKHR = ExternalFenceFeatureFlags;
  6516. VULKAN_HPP_INLINE std::string to_string( ExternalFenceFeatureFlags value )
  6517. {
  6518. if ( !value ) return "{}";
  6519. std::string result;
  6520. if ( value & ExternalFenceFeatureFlagBits::eExportable ) result += "Exportable | ";
  6521. if ( value & ExternalFenceFeatureFlagBits::eImportable ) result += "Importable | ";
  6522. return "{ " + result.substr(0, result.size() - 3) + " }";
  6523. }
  6524. enum class ExternalFenceHandleTypeFlagBits
  6525. {
  6526. eOpaqueFd = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,
  6527. eOpaqueWin32 = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
  6528. eOpaqueWin32Kmt = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
  6529. eSyncFd = VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT,
  6530. eOpaqueFdKHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR,
  6531. eOpaqueWin32KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR,
  6532. eOpaqueWin32KmtKHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR,
  6533. eSyncFdKHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR
  6534. };
  6535. VULKAN_HPP_INLINE std::string to_string( ExternalFenceHandleTypeFlagBits value )
  6536. {
  6537. switch ( value )
  6538. {
  6539. case ExternalFenceHandleTypeFlagBits::eOpaqueFd : return "OpaqueFd";
  6540. case ExternalFenceHandleTypeFlagBits::eOpaqueWin32 : return "OpaqueWin32";
  6541. case ExternalFenceHandleTypeFlagBits::eOpaqueWin32Kmt : return "OpaqueWin32Kmt";
  6542. case ExternalFenceHandleTypeFlagBits::eSyncFd : return "SyncFd";
  6543. default: return "invalid";
  6544. }
  6545. }
  6546. using ExternalFenceHandleTypeFlags = Flags<ExternalFenceHandleTypeFlagBits, VkExternalFenceHandleTypeFlags>;
  6547. VULKAN_HPP_INLINE ExternalFenceHandleTypeFlags operator|( ExternalFenceHandleTypeFlagBits bit0, ExternalFenceHandleTypeFlagBits bit1 )
  6548. {
  6549. return ExternalFenceHandleTypeFlags( bit0 ) | bit1;
  6550. }
  6551. VULKAN_HPP_INLINE ExternalFenceHandleTypeFlags operator~( ExternalFenceHandleTypeFlagBits bits )
  6552. {
  6553. return ~( ExternalFenceHandleTypeFlags( bits ) );
  6554. }
  6555. template <> struct FlagTraits<ExternalFenceHandleTypeFlagBits>
  6556. {
  6557. enum
  6558. {
  6559. allFlags = VkFlags(ExternalFenceHandleTypeFlagBits::eOpaqueFd) | VkFlags(ExternalFenceHandleTypeFlagBits::eOpaqueWin32) | VkFlags(ExternalFenceHandleTypeFlagBits::eOpaqueWin32Kmt) | VkFlags(ExternalFenceHandleTypeFlagBits::eSyncFd)
  6560. };
  6561. };
  6562. using ExternalFenceHandleTypeFlagsKHR = ExternalFenceHandleTypeFlags;
  6563. VULKAN_HPP_INLINE std::string to_string( ExternalFenceHandleTypeFlags value )
  6564. {
  6565. if ( !value ) return "{}";
  6566. std::string result;
  6567. if ( value & ExternalFenceHandleTypeFlagBits::eOpaqueFd ) result += "OpaqueFd | ";
  6568. if ( value & ExternalFenceHandleTypeFlagBits::eOpaqueWin32 ) result += "OpaqueWin32 | ";
  6569. if ( value & ExternalFenceHandleTypeFlagBits::eOpaqueWin32Kmt ) result += "OpaqueWin32Kmt | ";
  6570. if ( value & ExternalFenceHandleTypeFlagBits::eSyncFd ) result += "SyncFd | ";
  6571. return "{ " + result.substr(0, result.size() - 3) + " }";
  6572. }
  6573. enum class ExternalMemoryFeatureFlagBits
  6574. {
  6575. eDedicatedOnly = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,
  6576. eExportable = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,
  6577. eImportable = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT,
  6578. eDedicatedOnlyKHR = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR,
  6579. eExportableKHR = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR,
  6580. eImportableKHR = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR
  6581. };
  6582. VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlagBits value )
  6583. {
  6584. switch ( value )
  6585. {
  6586. case ExternalMemoryFeatureFlagBits::eDedicatedOnly : return "DedicatedOnly";
  6587. case ExternalMemoryFeatureFlagBits::eExportable : return "Exportable";
  6588. case ExternalMemoryFeatureFlagBits::eImportable : return "Importable";
  6589. default: return "invalid";
  6590. }
  6591. }
  6592. using ExternalMemoryFeatureFlags = Flags<ExternalMemoryFeatureFlagBits, VkExternalMemoryFeatureFlags>;
  6593. VULKAN_HPP_INLINE ExternalMemoryFeatureFlags operator|( ExternalMemoryFeatureFlagBits bit0, ExternalMemoryFeatureFlagBits bit1 )
  6594. {
  6595. return ExternalMemoryFeatureFlags( bit0 ) | bit1;
  6596. }
  6597. VULKAN_HPP_INLINE ExternalMemoryFeatureFlags operator~( ExternalMemoryFeatureFlagBits bits )
  6598. {
  6599. return ~( ExternalMemoryFeatureFlags( bits ) );
  6600. }
  6601. template <> struct FlagTraits<ExternalMemoryFeatureFlagBits>
  6602. {
  6603. enum
  6604. {
  6605. allFlags = VkFlags(ExternalMemoryFeatureFlagBits::eDedicatedOnly) | VkFlags(ExternalMemoryFeatureFlagBits::eExportable) | VkFlags(ExternalMemoryFeatureFlagBits::eImportable)
  6606. };
  6607. };
  6608. using ExternalMemoryFeatureFlagsKHR = ExternalMemoryFeatureFlags;
  6609. VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlags value )
  6610. {
  6611. if ( !value ) return "{}";
  6612. std::string result;
  6613. if ( value & ExternalMemoryFeatureFlagBits::eDedicatedOnly ) result += "DedicatedOnly | ";
  6614. if ( value & ExternalMemoryFeatureFlagBits::eExportable ) result += "Exportable | ";
  6615. if ( value & ExternalMemoryFeatureFlagBits::eImportable ) result += "Importable | ";
  6616. return "{ " + result.substr(0, result.size() - 3) + " }";
  6617. }
  6618. enum class ExternalMemoryFeatureFlagBitsNV
  6619. {
  6620. eDedicatedOnly = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV,
  6621. eExportable = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV,
  6622. eImportable = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV
  6623. };
  6624. VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlagBitsNV value )
  6625. {
  6626. switch ( value )
  6627. {
  6628. case ExternalMemoryFeatureFlagBitsNV::eDedicatedOnly : return "DedicatedOnly";
  6629. case ExternalMemoryFeatureFlagBitsNV::eExportable : return "Exportable";
  6630. case ExternalMemoryFeatureFlagBitsNV::eImportable : return "Importable";
  6631. default: return "invalid";
  6632. }
  6633. }
  6634. using ExternalMemoryFeatureFlagsNV = Flags<ExternalMemoryFeatureFlagBitsNV, VkExternalMemoryFeatureFlagsNV>;
  6635. VULKAN_HPP_INLINE ExternalMemoryFeatureFlagsNV operator|( ExternalMemoryFeatureFlagBitsNV bit0, ExternalMemoryFeatureFlagBitsNV bit1 )
  6636. {
  6637. return ExternalMemoryFeatureFlagsNV( bit0 ) | bit1;
  6638. }
  6639. VULKAN_HPP_INLINE ExternalMemoryFeatureFlagsNV operator~( ExternalMemoryFeatureFlagBitsNV bits )
  6640. {
  6641. return ~( ExternalMemoryFeatureFlagsNV( bits ) );
  6642. }
  6643. template <> struct FlagTraits<ExternalMemoryFeatureFlagBitsNV>
  6644. {
  6645. enum
  6646. {
  6647. allFlags = VkFlags(ExternalMemoryFeatureFlagBitsNV::eDedicatedOnly) | VkFlags(ExternalMemoryFeatureFlagBitsNV::eExportable) | VkFlags(ExternalMemoryFeatureFlagBitsNV::eImportable)
  6648. };
  6649. };
  6650. VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlagsNV value )
  6651. {
  6652. if ( !value ) return "{}";
  6653. std::string result;
  6654. if ( value & ExternalMemoryFeatureFlagBitsNV::eDedicatedOnly ) result += "DedicatedOnly | ";
  6655. if ( value & ExternalMemoryFeatureFlagBitsNV::eExportable ) result += "Exportable | ";
  6656. if ( value & ExternalMemoryFeatureFlagBitsNV::eImportable ) result += "Importable | ";
  6657. return "{ " + result.substr(0, result.size() - 3) + " }";
  6658. }
  6659. enum class ExternalMemoryHandleTypeFlagBits
  6660. {
  6661. eOpaqueFd = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
  6662. eOpaqueWin32 = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,
  6663. eOpaqueWin32Kmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
  6664. eD3D11Texture = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,
  6665. eD3D11TextureKmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,
  6666. eD3D12Heap = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,
  6667. eD3D12Resource = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,
  6668. eDmaBufEXT = VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT,
  6669. eAndroidHardwareBufferANDROID = VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID,
  6670. eHostAllocationEXT = VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT,
  6671. eHostMappedForeignMemoryEXT = VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT,
  6672. eOpaqueFdKHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR,
  6673. eOpaqueWin32KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR,
  6674. eOpaqueWin32KmtKHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR,
  6675. eD3D11TextureKHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR,
  6676. eD3D11TextureKmtKHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR,
  6677. eD3D12HeapKHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR,
  6678. eD3D12ResourceKHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR
  6679. };
  6680. VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlagBits value )
  6681. {
  6682. switch ( value )
  6683. {
  6684. case ExternalMemoryHandleTypeFlagBits::eOpaqueFd : return "OpaqueFd";
  6685. case ExternalMemoryHandleTypeFlagBits::eOpaqueWin32 : return "OpaqueWin32";
  6686. case ExternalMemoryHandleTypeFlagBits::eOpaqueWin32Kmt : return "OpaqueWin32Kmt";
  6687. case ExternalMemoryHandleTypeFlagBits::eD3D11Texture : return "D3D11Texture";
  6688. case ExternalMemoryHandleTypeFlagBits::eD3D11TextureKmt : return "D3D11TextureKmt";
  6689. case ExternalMemoryHandleTypeFlagBits::eD3D12Heap : return "D3D12Heap";
  6690. case ExternalMemoryHandleTypeFlagBits::eD3D12Resource : return "D3D12Resource";
  6691. case ExternalMemoryHandleTypeFlagBits::eDmaBufEXT : return "DmaBufEXT";
  6692. case ExternalMemoryHandleTypeFlagBits::eAndroidHardwareBufferANDROID : return "AndroidHardwareBufferANDROID";
  6693. case ExternalMemoryHandleTypeFlagBits::eHostAllocationEXT : return "HostAllocationEXT";
  6694. case ExternalMemoryHandleTypeFlagBits::eHostMappedForeignMemoryEXT : return "HostMappedForeignMemoryEXT";
  6695. default: return "invalid";
  6696. }
  6697. }
  6698. using ExternalMemoryHandleTypeFlags = Flags<ExternalMemoryHandleTypeFlagBits, VkExternalMemoryHandleTypeFlags>;
  6699. VULKAN_HPP_INLINE ExternalMemoryHandleTypeFlags operator|( ExternalMemoryHandleTypeFlagBits bit0, ExternalMemoryHandleTypeFlagBits bit1 )
  6700. {
  6701. return ExternalMemoryHandleTypeFlags( bit0 ) | bit1;
  6702. }
  6703. VULKAN_HPP_INLINE ExternalMemoryHandleTypeFlags operator~( ExternalMemoryHandleTypeFlagBits bits )
  6704. {
  6705. return ~( ExternalMemoryHandleTypeFlags( bits ) );
  6706. }
  6707. template <> struct FlagTraits<ExternalMemoryHandleTypeFlagBits>
  6708. {
  6709. enum
  6710. {
  6711. allFlags = VkFlags(ExternalMemoryHandleTypeFlagBits::eOpaqueFd) | VkFlags(ExternalMemoryHandleTypeFlagBits::eOpaqueWin32) | VkFlags(ExternalMemoryHandleTypeFlagBits::eOpaqueWin32Kmt) | VkFlags(ExternalMemoryHandleTypeFlagBits::eD3D11Texture) | VkFlags(ExternalMemoryHandleTypeFlagBits::eD3D11TextureKmt) | VkFlags(ExternalMemoryHandleTypeFlagBits::eD3D12Heap) | VkFlags(ExternalMemoryHandleTypeFlagBits::eD3D12Resource) | VkFlags(ExternalMemoryHandleTypeFlagBits::eDmaBufEXT) | VkFlags(ExternalMemoryHandleTypeFlagBits::eAndroidHardwareBufferANDROID) | VkFlags(ExternalMemoryHandleTypeFlagBits::eHostAllocationEXT) | VkFlags(ExternalMemoryHandleTypeFlagBits::eHostMappedForeignMemoryEXT)
  6712. };
  6713. };
  6714. using ExternalMemoryHandleTypeFlagsKHR = ExternalMemoryHandleTypeFlags;
  6715. VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlags value )
  6716. {
  6717. if ( !value ) return "{}";
  6718. std::string result;
  6719. if ( value & ExternalMemoryHandleTypeFlagBits::eOpaqueFd ) result += "OpaqueFd | ";
  6720. if ( value & ExternalMemoryHandleTypeFlagBits::eOpaqueWin32 ) result += "OpaqueWin32 | ";
  6721. if ( value & ExternalMemoryHandleTypeFlagBits::eOpaqueWin32Kmt ) result += "OpaqueWin32Kmt | ";
  6722. if ( value & ExternalMemoryHandleTypeFlagBits::eD3D11Texture ) result += "D3D11Texture | ";
  6723. if ( value & ExternalMemoryHandleTypeFlagBits::eD3D11TextureKmt ) result += "D3D11TextureKmt | ";
  6724. if ( value & ExternalMemoryHandleTypeFlagBits::eD3D12Heap ) result += "D3D12Heap | ";
  6725. if ( value & ExternalMemoryHandleTypeFlagBits::eD3D12Resource ) result += "D3D12Resource | ";
  6726. if ( value & ExternalMemoryHandleTypeFlagBits::eDmaBufEXT ) result += "DmaBufEXT | ";
  6727. if ( value & ExternalMemoryHandleTypeFlagBits::eAndroidHardwareBufferANDROID ) result += "AndroidHardwareBufferANDROID | ";
  6728. if ( value & ExternalMemoryHandleTypeFlagBits::eHostAllocationEXT ) result += "HostAllocationEXT | ";
  6729. if ( value & ExternalMemoryHandleTypeFlagBits::eHostMappedForeignMemoryEXT ) result += "HostMappedForeignMemoryEXT | ";
  6730. return "{ " + result.substr(0, result.size() - 3) + " }";
  6731. }
  6732. enum class ExternalMemoryHandleTypeFlagBitsNV
  6733. {
  6734. eOpaqueWin32 = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV,
  6735. eOpaqueWin32Kmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV,
  6736. eD3D11Image = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV,
  6737. eD3D11ImageKmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV
  6738. };
  6739. VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlagBitsNV value )
  6740. {
  6741. switch ( value )
  6742. {
  6743. case ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32 : return "OpaqueWin32";
  6744. case ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32Kmt : return "OpaqueWin32Kmt";
  6745. case ExternalMemoryHandleTypeFlagBitsNV::eD3D11Image : return "D3D11Image";
  6746. case ExternalMemoryHandleTypeFlagBitsNV::eD3D11ImageKmt : return "D3D11ImageKmt";
  6747. default: return "invalid";
  6748. }
  6749. }
  6750. using ExternalMemoryHandleTypeFlagsNV = Flags<ExternalMemoryHandleTypeFlagBitsNV, VkExternalMemoryHandleTypeFlagsNV>;
  6751. VULKAN_HPP_INLINE ExternalMemoryHandleTypeFlagsNV operator|( ExternalMemoryHandleTypeFlagBitsNV bit0, ExternalMemoryHandleTypeFlagBitsNV bit1 )
  6752. {
  6753. return ExternalMemoryHandleTypeFlagsNV( bit0 ) | bit1;
  6754. }
  6755. VULKAN_HPP_INLINE ExternalMemoryHandleTypeFlagsNV operator~( ExternalMemoryHandleTypeFlagBitsNV bits )
  6756. {
  6757. return ~( ExternalMemoryHandleTypeFlagsNV( bits ) );
  6758. }
  6759. template <> struct FlagTraits<ExternalMemoryHandleTypeFlagBitsNV>
  6760. {
  6761. enum
  6762. {
  6763. allFlags = VkFlags(ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32) | VkFlags(ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32Kmt) | VkFlags(ExternalMemoryHandleTypeFlagBitsNV::eD3D11Image) | VkFlags(ExternalMemoryHandleTypeFlagBitsNV::eD3D11ImageKmt)
  6764. };
  6765. };
  6766. VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlagsNV value )
  6767. {
  6768. if ( !value ) return "{}";
  6769. std::string result;
  6770. if ( value & ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32 ) result += "OpaqueWin32 | ";
  6771. if ( value & ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32Kmt ) result += "OpaqueWin32Kmt | ";
  6772. if ( value & ExternalMemoryHandleTypeFlagBitsNV::eD3D11Image ) result += "D3D11Image | ";
  6773. if ( value & ExternalMemoryHandleTypeFlagBitsNV::eD3D11ImageKmt ) result += "D3D11ImageKmt | ";
  6774. return "{ " + result.substr(0, result.size() - 3) + " }";
  6775. }
  6776. enum class ExternalSemaphoreFeatureFlagBits
  6777. {
  6778. eExportable = VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,
  6779. eImportable = VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT,
  6780. eExportableKHR = VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR,
  6781. eImportableKHR = VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR
  6782. };
  6783. VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreFeatureFlagBits value )
  6784. {
  6785. switch ( value )
  6786. {
  6787. case ExternalSemaphoreFeatureFlagBits::eExportable : return "Exportable";
  6788. case ExternalSemaphoreFeatureFlagBits::eImportable : return "Importable";
  6789. default: return "invalid";
  6790. }
  6791. }
  6792. using ExternalSemaphoreFeatureFlags = Flags<ExternalSemaphoreFeatureFlagBits, VkExternalSemaphoreFeatureFlags>;
  6793. VULKAN_HPP_INLINE ExternalSemaphoreFeatureFlags operator|( ExternalSemaphoreFeatureFlagBits bit0, ExternalSemaphoreFeatureFlagBits bit1 )
  6794. {
  6795. return ExternalSemaphoreFeatureFlags( bit0 ) | bit1;
  6796. }
  6797. VULKAN_HPP_INLINE ExternalSemaphoreFeatureFlags operator~( ExternalSemaphoreFeatureFlagBits bits )
  6798. {
  6799. return ~( ExternalSemaphoreFeatureFlags( bits ) );
  6800. }
  6801. template <> struct FlagTraits<ExternalSemaphoreFeatureFlagBits>
  6802. {
  6803. enum
  6804. {
  6805. allFlags = VkFlags(ExternalSemaphoreFeatureFlagBits::eExportable) | VkFlags(ExternalSemaphoreFeatureFlagBits::eImportable)
  6806. };
  6807. };
  6808. using ExternalSemaphoreFeatureFlagsKHR = ExternalSemaphoreFeatureFlags;
  6809. VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreFeatureFlags value )
  6810. {
  6811. if ( !value ) return "{}";
  6812. std::string result;
  6813. if ( value & ExternalSemaphoreFeatureFlagBits::eExportable ) result += "Exportable | ";
  6814. if ( value & ExternalSemaphoreFeatureFlagBits::eImportable ) result += "Importable | ";
  6815. return "{ " + result.substr(0, result.size() - 3) + " }";
  6816. }
  6817. enum class ExternalSemaphoreHandleTypeFlagBits
  6818. {
  6819. eOpaqueFd = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,
  6820. eOpaqueWin32 = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
  6821. eOpaqueWin32Kmt = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
  6822. eD3D12Fence = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
  6823. eSyncFd = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT,
  6824. eOpaqueFdKHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR,
  6825. eOpaqueWin32KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR,
  6826. eOpaqueWin32KmtKHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR,
  6827. eD3D12FenceKHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR,
  6828. eSyncFdKHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR
  6829. };
  6830. VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreHandleTypeFlagBits value )
  6831. {
  6832. switch ( value )
  6833. {
  6834. case ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd : return "OpaqueFd";
  6835. case ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32 : return "OpaqueWin32";
  6836. case ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32Kmt : return "OpaqueWin32Kmt";
  6837. case ExternalSemaphoreHandleTypeFlagBits::eD3D12Fence : return "D3D12Fence";
  6838. case ExternalSemaphoreHandleTypeFlagBits::eSyncFd : return "SyncFd";
  6839. default: return "invalid";
  6840. }
  6841. }
  6842. using ExternalSemaphoreHandleTypeFlags = Flags<ExternalSemaphoreHandleTypeFlagBits, VkExternalSemaphoreHandleTypeFlags>;
  6843. VULKAN_HPP_INLINE ExternalSemaphoreHandleTypeFlags operator|( ExternalSemaphoreHandleTypeFlagBits bit0, ExternalSemaphoreHandleTypeFlagBits bit1 )
  6844. {
  6845. return ExternalSemaphoreHandleTypeFlags( bit0 ) | bit1;
  6846. }
  6847. VULKAN_HPP_INLINE ExternalSemaphoreHandleTypeFlags operator~( ExternalSemaphoreHandleTypeFlagBits bits )
  6848. {
  6849. return ~( ExternalSemaphoreHandleTypeFlags( bits ) );
  6850. }
  6851. template <> struct FlagTraits<ExternalSemaphoreHandleTypeFlagBits>
  6852. {
  6853. enum
  6854. {
  6855. allFlags = VkFlags(ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd) | VkFlags(ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32) | VkFlags(ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32Kmt) | VkFlags(ExternalSemaphoreHandleTypeFlagBits::eD3D12Fence) | VkFlags(ExternalSemaphoreHandleTypeFlagBits::eSyncFd)
  6856. };
  6857. };
  6858. using ExternalSemaphoreHandleTypeFlagsKHR = ExternalSemaphoreHandleTypeFlags;
  6859. VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreHandleTypeFlags value )
  6860. {
  6861. if ( !value ) return "{}";
  6862. std::string result;
  6863. if ( value & ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd ) result += "OpaqueFd | ";
  6864. if ( value & ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32 ) result += "OpaqueWin32 | ";
  6865. if ( value & ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32Kmt ) result += "OpaqueWin32Kmt | ";
  6866. if ( value & ExternalSemaphoreHandleTypeFlagBits::eD3D12Fence ) result += "D3D12Fence | ";
  6867. if ( value & ExternalSemaphoreHandleTypeFlagBits::eSyncFd ) result += "SyncFd | ";
  6868. return "{ " + result.substr(0, result.size() - 3) + " }";
  6869. }
  6870. enum class FenceCreateFlagBits
  6871. {
  6872. eSignaled = VK_FENCE_CREATE_SIGNALED_BIT
  6873. };
  6874. VULKAN_HPP_INLINE std::string to_string( FenceCreateFlagBits value )
  6875. {
  6876. switch ( value )
  6877. {
  6878. case FenceCreateFlagBits::eSignaled : return "Signaled";
  6879. default: return "invalid";
  6880. }
  6881. }
  6882. using FenceCreateFlags = Flags<FenceCreateFlagBits, VkFenceCreateFlags>;
  6883. VULKAN_HPP_INLINE FenceCreateFlags operator|( FenceCreateFlagBits bit0, FenceCreateFlagBits bit1 )
  6884. {
  6885. return FenceCreateFlags( bit0 ) | bit1;
  6886. }
  6887. VULKAN_HPP_INLINE FenceCreateFlags operator~( FenceCreateFlagBits bits )
  6888. {
  6889. return ~( FenceCreateFlags( bits ) );
  6890. }
  6891. template <> struct FlagTraits<FenceCreateFlagBits>
  6892. {
  6893. enum
  6894. {
  6895. allFlags = VkFlags(FenceCreateFlagBits::eSignaled)
  6896. };
  6897. };
  6898. VULKAN_HPP_INLINE std::string to_string( FenceCreateFlags value )
  6899. {
  6900. if ( !value ) return "{}";
  6901. std::string result;
  6902. if ( value & FenceCreateFlagBits::eSignaled ) result += "Signaled | ";
  6903. return "{ " + result.substr(0, result.size() - 3) + " }";
  6904. }
  6905. enum class FenceImportFlagBits
  6906. {
  6907. eTemporary = VK_FENCE_IMPORT_TEMPORARY_BIT,
  6908. eTemporaryKHR = VK_FENCE_IMPORT_TEMPORARY_BIT_KHR
  6909. };
  6910. VULKAN_HPP_INLINE std::string to_string( FenceImportFlagBits value )
  6911. {
  6912. switch ( value )
  6913. {
  6914. case FenceImportFlagBits::eTemporary : return "Temporary";
  6915. default: return "invalid";
  6916. }
  6917. }
  6918. using FenceImportFlags = Flags<FenceImportFlagBits, VkFenceImportFlags>;
  6919. VULKAN_HPP_INLINE FenceImportFlags operator|( FenceImportFlagBits bit0, FenceImportFlagBits bit1 )
  6920. {
  6921. return FenceImportFlags( bit0 ) | bit1;
  6922. }
  6923. VULKAN_HPP_INLINE FenceImportFlags operator~( FenceImportFlagBits bits )
  6924. {
  6925. return ~( FenceImportFlags( bits ) );
  6926. }
  6927. template <> struct FlagTraits<FenceImportFlagBits>
  6928. {
  6929. enum
  6930. {
  6931. allFlags = VkFlags(FenceImportFlagBits::eTemporary)
  6932. };
  6933. };
  6934. using FenceImportFlagsKHR = FenceImportFlags;
  6935. VULKAN_HPP_INLINE std::string to_string( FenceImportFlags value )
  6936. {
  6937. if ( !value ) return "{}";
  6938. std::string result;
  6939. if ( value & FenceImportFlagBits::eTemporary ) result += "Temporary | ";
  6940. return "{ " + result.substr(0, result.size() - 3) + " }";
  6941. }
  6942. enum class FormatFeatureFlagBits
  6943. {
  6944. eSampledImage = VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT,
  6945. eStorageImage = VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT,
  6946. eStorageImageAtomic = VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT,
  6947. eUniformTexelBuffer = VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT,
  6948. eStorageTexelBuffer = VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT,
  6949. eStorageTexelBufferAtomic = VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT,
  6950. eVertexBuffer = VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT,
  6951. eColorAttachment = VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT,
  6952. eColorAttachmentBlend = VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT,
  6953. eDepthStencilAttachment = VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT,
  6954. eBlitSrc = VK_FORMAT_FEATURE_BLIT_SRC_BIT,
  6955. eBlitDst = VK_FORMAT_FEATURE_BLIT_DST_BIT,
  6956. eSampledImageFilterLinear = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT,
  6957. eTransferSrc = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,
  6958. eTransferDst = VK_FORMAT_FEATURE_TRANSFER_DST_BIT,
  6959. eMidpointChromaSamples = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,
  6960. eSampledImageYcbcrConversionLinearFilter = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,
  6961. eSampledImageYcbcrConversionSeparateReconstructionFilter = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,
  6962. eSampledImageYcbcrConversionChromaReconstructionExplicit = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
  6963. eSampledImageYcbcrConversionChromaReconstructionExplicitForceable = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT,
  6964. eDisjoint = VK_FORMAT_FEATURE_DISJOINT_BIT,
  6965. eCositedChromaSamples = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,
  6966. eSampledImageFilterCubicIMG = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG,
  6967. eSampledImageFilterMinmaxEXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT,
  6968. eFragmentDensityMapEXT = VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT,
  6969. eTransferSrcKHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR,
  6970. eTransferDstKHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR,
  6971. eMidpointChromaSamplesKHR = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR,
  6972. eSampledImageYcbcrConversionLinearFilterKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR,
  6973. eSampledImageYcbcrConversionSeparateReconstructionFilterKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR,
  6974. eSampledImageYcbcrConversionChromaReconstructionExplicitKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR,
  6975. eSampledImageYcbcrConversionChromaReconstructionExplicitForceableKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR,
  6976. eDisjointKHR = VK_FORMAT_FEATURE_DISJOINT_BIT_KHR,
  6977. eCositedChromaSamplesKHR = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR,
  6978. eSampledImageFilterCubicEXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
  6979. };
  6980. VULKAN_HPP_INLINE std::string to_string( FormatFeatureFlagBits value )
  6981. {
  6982. switch ( value )
  6983. {
  6984. case FormatFeatureFlagBits::eSampledImage : return "SampledImage";
  6985. case FormatFeatureFlagBits::eStorageImage : return "StorageImage";
  6986. case FormatFeatureFlagBits::eStorageImageAtomic : return "StorageImageAtomic";
  6987. case FormatFeatureFlagBits::eUniformTexelBuffer : return "UniformTexelBuffer";
  6988. case FormatFeatureFlagBits::eStorageTexelBuffer : return "StorageTexelBuffer";
  6989. case FormatFeatureFlagBits::eStorageTexelBufferAtomic : return "StorageTexelBufferAtomic";
  6990. case FormatFeatureFlagBits::eVertexBuffer : return "VertexBuffer";
  6991. case FormatFeatureFlagBits::eColorAttachment : return "ColorAttachment";
  6992. case FormatFeatureFlagBits::eColorAttachmentBlend : return "ColorAttachmentBlend";
  6993. case FormatFeatureFlagBits::eDepthStencilAttachment : return "DepthStencilAttachment";
  6994. case FormatFeatureFlagBits::eBlitSrc : return "BlitSrc";
  6995. case FormatFeatureFlagBits::eBlitDst : return "BlitDst";
  6996. case FormatFeatureFlagBits::eSampledImageFilterLinear : return "SampledImageFilterLinear";
  6997. case FormatFeatureFlagBits::eTransferSrc : return "TransferSrc";
  6998. case FormatFeatureFlagBits::eTransferDst : return "TransferDst";
  6999. case FormatFeatureFlagBits::eMidpointChromaSamples : return "MidpointChromaSamples";
  7000. case FormatFeatureFlagBits::eSampledImageYcbcrConversionLinearFilter : return "SampledImageYcbcrConversionLinearFilter";
  7001. case FormatFeatureFlagBits::eSampledImageYcbcrConversionSeparateReconstructionFilter : return "SampledImageYcbcrConversionSeparateReconstructionFilter";
  7002. case FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicit : return "SampledImageYcbcrConversionChromaReconstructionExplicit";
  7003. case FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable : return "SampledImageYcbcrConversionChromaReconstructionExplicitForceable";
  7004. case FormatFeatureFlagBits::eDisjoint : return "Disjoint";
  7005. case FormatFeatureFlagBits::eCositedChromaSamples : return "CositedChromaSamples";
  7006. case FormatFeatureFlagBits::eSampledImageFilterCubicIMG : return "SampledImageFilterCubicIMG";
  7007. case FormatFeatureFlagBits::eSampledImageFilterMinmaxEXT : return "SampledImageFilterMinmaxEXT";
  7008. case FormatFeatureFlagBits::eFragmentDensityMapEXT : return "FragmentDensityMapEXT";
  7009. default: return "invalid";
  7010. }
  7011. }
  7012. using FormatFeatureFlags = Flags<FormatFeatureFlagBits, VkFormatFeatureFlags>;
  7013. VULKAN_HPP_INLINE FormatFeatureFlags operator|( FormatFeatureFlagBits bit0, FormatFeatureFlagBits bit1 )
  7014. {
  7015. return FormatFeatureFlags( bit0 ) | bit1;
  7016. }
  7017. VULKAN_HPP_INLINE FormatFeatureFlags operator~( FormatFeatureFlagBits bits )
  7018. {
  7019. return ~( FormatFeatureFlags( bits ) );
  7020. }
  7021. template <> struct FlagTraits<FormatFeatureFlagBits>
  7022. {
  7023. enum
  7024. {
  7025. allFlags = VkFlags(FormatFeatureFlagBits::eSampledImage) | VkFlags(FormatFeatureFlagBits::eStorageImage) | VkFlags(FormatFeatureFlagBits::eStorageImageAtomic) | VkFlags(FormatFeatureFlagBits::eUniformTexelBuffer) | VkFlags(FormatFeatureFlagBits::eStorageTexelBuffer) | VkFlags(FormatFeatureFlagBits::eStorageTexelBufferAtomic) | VkFlags(FormatFeatureFlagBits::eVertexBuffer) | VkFlags(FormatFeatureFlagBits::eColorAttachment) | VkFlags(FormatFeatureFlagBits::eColorAttachmentBlend) | VkFlags(FormatFeatureFlagBits::eDepthStencilAttachment) | VkFlags(FormatFeatureFlagBits::eBlitSrc) | VkFlags(FormatFeatureFlagBits::eBlitDst) | VkFlags(FormatFeatureFlagBits::eSampledImageFilterLinear) | VkFlags(FormatFeatureFlagBits::eTransferSrc) | VkFlags(FormatFeatureFlagBits::eTransferDst) | VkFlags(FormatFeatureFlagBits::eMidpointChromaSamples) | VkFlags(FormatFeatureFlagBits::eSampledImageYcbcrConversionLinearFilter) | VkFlags(FormatFeatureFlagBits::eSampledImageYcbcrConversionSeparateReconstructionFilter) | VkFlags(FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicit) | VkFlags(FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable) | VkFlags(FormatFeatureFlagBits::eDisjoint) | VkFlags(FormatFeatureFlagBits::eCositedChromaSamples) | VkFlags(FormatFeatureFlagBits::eSampledImageFilterCubicIMG) | VkFlags(FormatFeatureFlagBits::eSampledImageFilterMinmaxEXT) | VkFlags(FormatFeatureFlagBits::eFragmentDensityMapEXT)
  7026. };
  7027. };
  7028. VULKAN_HPP_INLINE std::string to_string( FormatFeatureFlags value )
  7029. {
  7030. if ( !value ) return "{}";
  7031. std::string result;
  7032. if ( value & FormatFeatureFlagBits::eSampledImage ) result += "SampledImage | ";
  7033. if ( value & FormatFeatureFlagBits::eStorageImage ) result += "StorageImage | ";
  7034. if ( value & FormatFeatureFlagBits::eStorageImageAtomic ) result += "StorageImageAtomic | ";
  7035. if ( value & FormatFeatureFlagBits::eUniformTexelBuffer ) result += "UniformTexelBuffer | ";
  7036. if ( value & FormatFeatureFlagBits::eStorageTexelBuffer ) result += "StorageTexelBuffer | ";
  7037. if ( value & FormatFeatureFlagBits::eStorageTexelBufferAtomic ) result += "StorageTexelBufferAtomic | ";
  7038. if ( value & FormatFeatureFlagBits::eVertexBuffer ) result += "VertexBuffer | ";
  7039. if ( value & FormatFeatureFlagBits::eColorAttachment ) result += "ColorAttachment | ";
  7040. if ( value & FormatFeatureFlagBits::eColorAttachmentBlend ) result += "ColorAttachmentBlend | ";
  7041. if ( value & FormatFeatureFlagBits::eDepthStencilAttachment ) result += "DepthStencilAttachment | ";
  7042. if ( value & FormatFeatureFlagBits::eBlitSrc ) result += "BlitSrc | ";
  7043. if ( value & FormatFeatureFlagBits::eBlitDst ) result += "BlitDst | ";
  7044. if ( value & FormatFeatureFlagBits::eSampledImageFilterLinear ) result += "SampledImageFilterLinear | ";
  7045. if ( value & FormatFeatureFlagBits::eTransferSrc ) result += "TransferSrc | ";
  7046. if ( value & FormatFeatureFlagBits::eTransferDst ) result += "TransferDst | ";
  7047. if ( value & FormatFeatureFlagBits::eMidpointChromaSamples ) result += "MidpointChromaSamples | ";
  7048. if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionLinearFilter ) result += "SampledImageYcbcrConversionLinearFilter | ";
  7049. if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionSeparateReconstructionFilter ) result += "SampledImageYcbcrConversionSeparateReconstructionFilter | ";
  7050. if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicit ) result += "SampledImageYcbcrConversionChromaReconstructionExplicit | ";
  7051. if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable ) result += "SampledImageYcbcrConversionChromaReconstructionExplicitForceable | ";
  7052. if ( value & FormatFeatureFlagBits::eDisjoint ) result += "Disjoint | ";
  7053. if ( value & FormatFeatureFlagBits::eCositedChromaSamples ) result += "CositedChromaSamples | ";
  7054. if ( value & FormatFeatureFlagBits::eSampledImageFilterCubicIMG ) result += "SampledImageFilterCubicIMG | ";
  7055. if ( value & FormatFeatureFlagBits::eSampledImageFilterMinmaxEXT ) result += "SampledImageFilterMinmaxEXT | ";
  7056. if ( value & FormatFeatureFlagBits::eFragmentDensityMapEXT ) result += "FragmentDensityMapEXT | ";
  7057. return "{ " + result.substr(0, result.size() - 3) + " }";
  7058. }
  7059. enum class FramebufferCreateFlagBits
  7060. {
  7061. eImagelessKHR = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR
  7062. };
  7063. VULKAN_HPP_INLINE std::string to_string( FramebufferCreateFlagBits value )
  7064. {
  7065. switch ( value )
  7066. {
  7067. case FramebufferCreateFlagBits::eImagelessKHR : return "ImagelessKHR";
  7068. default: return "invalid";
  7069. }
  7070. }
  7071. using FramebufferCreateFlags = Flags<FramebufferCreateFlagBits, VkFramebufferCreateFlags>;
  7072. VULKAN_HPP_INLINE FramebufferCreateFlags operator|( FramebufferCreateFlagBits bit0, FramebufferCreateFlagBits bit1 )
  7073. {
  7074. return FramebufferCreateFlags( bit0 ) | bit1;
  7075. }
  7076. VULKAN_HPP_INLINE FramebufferCreateFlags operator~( FramebufferCreateFlagBits bits )
  7077. {
  7078. return ~( FramebufferCreateFlags( bits ) );
  7079. }
  7080. template <> struct FlagTraits<FramebufferCreateFlagBits>
  7081. {
  7082. enum
  7083. {
  7084. allFlags = VkFlags(FramebufferCreateFlagBits::eImagelessKHR)
  7085. };
  7086. };
  7087. VULKAN_HPP_INLINE std::string to_string( FramebufferCreateFlags value )
  7088. {
  7089. if ( !value ) return "{}";
  7090. std::string result;
  7091. if ( value & FramebufferCreateFlagBits::eImagelessKHR ) result += "ImagelessKHR | ";
  7092. return "{ " + result.substr(0, result.size() - 3) + " }";
  7093. }
  7094. enum class GeometryFlagBitsNV
  7095. {
  7096. eOpaque = VK_GEOMETRY_OPAQUE_BIT_NV,
  7097. eNoDuplicateAnyHitInvocation = VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV
  7098. };
  7099. VULKAN_HPP_INLINE std::string to_string( GeometryFlagBitsNV value )
  7100. {
  7101. switch ( value )
  7102. {
  7103. case GeometryFlagBitsNV::eOpaque : return "Opaque";
  7104. case GeometryFlagBitsNV::eNoDuplicateAnyHitInvocation : return "NoDuplicateAnyHitInvocation";
  7105. default: return "invalid";
  7106. }
  7107. }
  7108. using GeometryFlagsNV = Flags<GeometryFlagBitsNV, VkGeometryFlagsNV>;
  7109. VULKAN_HPP_INLINE GeometryFlagsNV operator|( GeometryFlagBitsNV bit0, GeometryFlagBitsNV bit1 )
  7110. {
  7111. return GeometryFlagsNV( bit0 ) | bit1;
  7112. }
  7113. VULKAN_HPP_INLINE GeometryFlagsNV operator~( GeometryFlagBitsNV bits )
  7114. {
  7115. return ~( GeometryFlagsNV( bits ) );
  7116. }
  7117. template <> struct FlagTraits<GeometryFlagBitsNV>
  7118. {
  7119. enum
  7120. {
  7121. allFlags = VkFlags(GeometryFlagBitsNV::eOpaque) | VkFlags(GeometryFlagBitsNV::eNoDuplicateAnyHitInvocation)
  7122. };
  7123. };
  7124. VULKAN_HPP_INLINE std::string to_string( GeometryFlagsNV value )
  7125. {
  7126. if ( !value ) return "{}";
  7127. std::string result;
  7128. if ( value & GeometryFlagBitsNV::eOpaque ) result += "Opaque | ";
  7129. if ( value & GeometryFlagBitsNV::eNoDuplicateAnyHitInvocation ) result += "NoDuplicateAnyHitInvocation | ";
  7130. return "{ " + result.substr(0, result.size() - 3) + " }";
  7131. }
  7132. enum class GeometryInstanceFlagBitsNV
  7133. {
  7134. eTriangleCullDisable = VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV,
  7135. eTriangleFrontCounterclockwise = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV,
  7136. eForceOpaque = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV,
  7137. eForceNoOpaque = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV
  7138. };
  7139. VULKAN_HPP_INLINE std::string to_string( GeometryInstanceFlagBitsNV value )
  7140. {
  7141. switch ( value )
  7142. {
  7143. case GeometryInstanceFlagBitsNV::eTriangleCullDisable : return "TriangleCullDisable";
  7144. case GeometryInstanceFlagBitsNV::eTriangleFrontCounterclockwise : return "TriangleFrontCounterclockwise";
  7145. case GeometryInstanceFlagBitsNV::eForceOpaque : return "ForceOpaque";
  7146. case GeometryInstanceFlagBitsNV::eForceNoOpaque : return "ForceNoOpaque";
  7147. default: return "invalid";
  7148. }
  7149. }
  7150. using GeometryInstanceFlagsNV = Flags<GeometryInstanceFlagBitsNV, VkGeometryInstanceFlagsNV>;
  7151. VULKAN_HPP_INLINE GeometryInstanceFlagsNV operator|( GeometryInstanceFlagBitsNV bit0, GeometryInstanceFlagBitsNV bit1 )
  7152. {
  7153. return GeometryInstanceFlagsNV( bit0 ) | bit1;
  7154. }
  7155. VULKAN_HPP_INLINE GeometryInstanceFlagsNV operator~( GeometryInstanceFlagBitsNV bits )
  7156. {
  7157. return ~( GeometryInstanceFlagsNV( bits ) );
  7158. }
  7159. template <> struct FlagTraits<GeometryInstanceFlagBitsNV>
  7160. {
  7161. enum
  7162. {
  7163. allFlags = VkFlags(GeometryInstanceFlagBitsNV::eTriangleCullDisable) | VkFlags(GeometryInstanceFlagBitsNV::eTriangleFrontCounterclockwise) | VkFlags(GeometryInstanceFlagBitsNV::eForceOpaque) | VkFlags(GeometryInstanceFlagBitsNV::eForceNoOpaque)
  7164. };
  7165. };
  7166. VULKAN_HPP_INLINE std::string to_string( GeometryInstanceFlagsNV value )
  7167. {
  7168. if ( !value ) return "{}";
  7169. std::string result;
  7170. if ( value & GeometryInstanceFlagBitsNV::eTriangleCullDisable ) result += "TriangleCullDisable | ";
  7171. if ( value & GeometryInstanceFlagBitsNV::eTriangleFrontCounterclockwise ) result += "TriangleFrontCounterclockwise | ";
  7172. if ( value & GeometryInstanceFlagBitsNV::eForceOpaque ) result += "ForceOpaque | ";
  7173. if ( value & GeometryInstanceFlagBitsNV::eForceNoOpaque ) result += "ForceNoOpaque | ";
  7174. return "{ " + result.substr(0, result.size() - 3) + " }";
  7175. }
  7176. enum class HeadlessSurfaceCreateFlagBitsEXT
  7177. {};
  7178. VULKAN_HPP_INLINE std::string to_string( HeadlessSurfaceCreateFlagBitsEXT )
  7179. {
  7180. return "(void)";
  7181. }
  7182. using HeadlessSurfaceCreateFlagsEXT = Flags<HeadlessSurfaceCreateFlagBitsEXT, VkHeadlessSurfaceCreateFlagsEXT>;
  7183. VULKAN_HPP_INLINE std::string to_string( HeadlessSurfaceCreateFlagsEXT )
  7184. {
  7185. return "{}";
  7186. }
  7187. #ifdef VK_USE_PLATFORM_IOS_MVK
  7188. enum class IOSSurfaceCreateFlagBitsMVK
  7189. {};
  7190. VULKAN_HPP_INLINE std::string to_string( IOSSurfaceCreateFlagBitsMVK )
  7191. {
  7192. return "(void)";
  7193. }
  7194. using IOSSurfaceCreateFlagsMVK = Flags<IOSSurfaceCreateFlagBitsMVK, VkIOSSurfaceCreateFlagsMVK>;
  7195. VULKAN_HPP_INLINE std::string to_string( IOSSurfaceCreateFlagsMVK )
  7196. {
  7197. return "{}";
  7198. }
  7199. #endif /*VK_USE_PLATFORM_IOS_MVK*/
  7200. enum class ImageAspectFlagBits
  7201. {
  7202. eColor = VK_IMAGE_ASPECT_COLOR_BIT,
  7203. eDepth = VK_IMAGE_ASPECT_DEPTH_BIT,
  7204. eStencil = VK_IMAGE_ASPECT_STENCIL_BIT,
  7205. eMetadata = VK_IMAGE_ASPECT_METADATA_BIT,
  7206. ePlane0 = VK_IMAGE_ASPECT_PLANE_0_BIT,
  7207. ePlane1 = VK_IMAGE_ASPECT_PLANE_1_BIT,
  7208. ePlane2 = VK_IMAGE_ASPECT_PLANE_2_BIT,
  7209. eMemoryPlane0EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT,
  7210. eMemoryPlane1EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT,
  7211. eMemoryPlane2EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT,
  7212. eMemoryPlane3EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT,
  7213. ePlane0KHR = VK_IMAGE_ASPECT_PLANE_0_BIT_KHR,
  7214. ePlane1KHR = VK_IMAGE_ASPECT_PLANE_1_BIT_KHR,
  7215. ePlane2KHR = VK_IMAGE_ASPECT_PLANE_2_BIT_KHR
  7216. };
  7217. VULKAN_HPP_INLINE std::string to_string( ImageAspectFlagBits value )
  7218. {
  7219. switch ( value )
  7220. {
  7221. case ImageAspectFlagBits::eColor : return "Color";
  7222. case ImageAspectFlagBits::eDepth : return "Depth";
  7223. case ImageAspectFlagBits::eStencil : return "Stencil";
  7224. case ImageAspectFlagBits::eMetadata : return "Metadata";
  7225. case ImageAspectFlagBits::ePlane0 : return "Plane0";
  7226. case ImageAspectFlagBits::ePlane1 : return "Plane1";
  7227. case ImageAspectFlagBits::ePlane2 : return "Plane2";
  7228. case ImageAspectFlagBits::eMemoryPlane0EXT : return "MemoryPlane0EXT";
  7229. case ImageAspectFlagBits::eMemoryPlane1EXT : return "MemoryPlane1EXT";
  7230. case ImageAspectFlagBits::eMemoryPlane2EXT : return "MemoryPlane2EXT";
  7231. case ImageAspectFlagBits::eMemoryPlane3EXT : return "MemoryPlane3EXT";
  7232. default: return "invalid";
  7233. }
  7234. }
  7235. using ImageAspectFlags = Flags<ImageAspectFlagBits, VkImageAspectFlags>;
  7236. VULKAN_HPP_INLINE ImageAspectFlags operator|( ImageAspectFlagBits bit0, ImageAspectFlagBits bit1 )
  7237. {
  7238. return ImageAspectFlags( bit0 ) | bit1;
  7239. }
  7240. VULKAN_HPP_INLINE ImageAspectFlags operator~( ImageAspectFlagBits bits )
  7241. {
  7242. return ~( ImageAspectFlags( bits ) );
  7243. }
  7244. template <> struct FlagTraits<ImageAspectFlagBits>
  7245. {
  7246. enum
  7247. {
  7248. allFlags = VkFlags(ImageAspectFlagBits::eColor) | VkFlags(ImageAspectFlagBits::eDepth) | VkFlags(ImageAspectFlagBits::eStencil) | VkFlags(ImageAspectFlagBits::eMetadata) | VkFlags(ImageAspectFlagBits::ePlane0) | VkFlags(ImageAspectFlagBits::ePlane1) | VkFlags(ImageAspectFlagBits::ePlane2) | VkFlags(ImageAspectFlagBits::eMemoryPlane0EXT) | VkFlags(ImageAspectFlagBits::eMemoryPlane1EXT) | VkFlags(ImageAspectFlagBits::eMemoryPlane2EXT) | VkFlags(ImageAspectFlagBits::eMemoryPlane3EXT)
  7249. };
  7250. };
  7251. VULKAN_HPP_INLINE std::string to_string( ImageAspectFlags value )
  7252. {
  7253. if ( !value ) return "{}";
  7254. std::string result;
  7255. if ( value & ImageAspectFlagBits::eColor ) result += "Color | ";
  7256. if ( value & ImageAspectFlagBits::eDepth ) result += "Depth | ";
  7257. if ( value & ImageAspectFlagBits::eStencil ) result += "Stencil | ";
  7258. if ( value & ImageAspectFlagBits::eMetadata ) result += "Metadata | ";
  7259. if ( value & ImageAspectFlagBits::ePlane0 ) result += "Plane0 | ";
  7260. if ( value & ImageAspectFlagBits::ePlane1 ) result += "Plane1 | ";
  7261. if ( value & ImageAspectFlagBits::ePlane2 ) result += "Plane2 | ";
  7262. if ( value & ImageAspectFlagBits::eMemoryPlane0EXT ) result += "MemoryPlane0EXT | ";
  7263. if ( value & ImageAspectFlagBits::eMemoryPlane1EXT ) result += "MemoryPlane1EXT | ";
  7264. if ( value & ImageAspectFlagBits::eMemoryPlane2EXT ) result += "MemoryPlane2EXT | ";
  7265. if ( value & ImageAspectFlagBits::eMemoryPlane3EXT ) result += "MemoryPlane3EXT | ";
  7266. return "{ " + result.substr(0, result.size() - 3) + " }";
  7267. }
  7268. enum class ImageCreateFlagBits
  7269. {
  7270. eSparseBinding = VK_IMAGE_CREATE_SPARSE_BINDING_BIT,
  7271. eSparseResidency = VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT,
  7272. eSparseAliased = VK_IMAGE_CREATE_SPARSE_ALIASED_BIT,
  7273. eMutableFormat = VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT,
  7274. eCubeCompatible = VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT,
  7275. eAlias = VK_IMAGE_CREATE_ALIAS_BIT,
  7276. eSplitInstanceBindRegions = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,
  7277. e2DArrayCompatible = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,
  7278. eBlockTexelViewCompatible = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,
  7279. eExtendedUsage = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,
  7280. eProtected = VK_IMAGE_CREATE_PROTECTED_BIT,
  7281. eDisjoint = VK_IMAGE_CREATE_DISJOINT_BIT,
  7282. eCornerSampledNV = VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV,
  7283. eSampleLocationsCompatibleDepthEXT = VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT,
  7284. eSubsampledEXT = VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT,
  7285. eSplitInstanceBindRegionsKHR = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR,
  7286. e2DArrayCompatibleKHR = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR,
  7287. eBlockTexelViewCompatibleKHR = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR,
  7288. eExtendedUsageKHR = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR,
  7289. eDisjointKHR = VK_IMAGE_CREATE_DISJOINT_BIT_KHR,
  7290. eAliasKHR = VK_IMAGE_CREATE_ALIAS_BIT_KHR
  7291. };
  7292. VULKAN_HPP_INLINE std::string to_string( ImageCreateFlagBits value )
  7293. {
  7294. switch ( value )
  7295. {
  7296. case ImageCreateFlagBits::eSparseBinding : return "SparseBinding";
  7297. case ImageCreateFlagBits::eSparseResidency : return "SparseResidency";
  7298. case ImageCreateFlagBits::eSparseAliased : return "SparseAliased";
  7299. case ImageCreateFlagBits::eMutableFormat : return "MutableFormat";
  7300. case ImageCreateFlagBits::eCubeCompatible : return "CubeCompatible";
  7301. case ImageCreateFlagBits::eAlias : return "Alias";
  7302. case ImageCreateFlagBits::eSplitInstanceBindRegions : return "SplitInstanceBindRegions";
  7303. case ImageCreateFlagBits::e2DArrayCompatible : return "2DArrayCompatible";
  7304. case ImageCreateFlagBits::eBlockTexelViewCompatible : return "BlockTexelViewCompatible";
  7305. case ImageCreateFlagBits::eExtendedUsage : return "ExtendedUsage";
  7306. case ImageCreateFlagBits::eProtected : return "Protected";
  7307. case ImageCreateFlagBits::eDisjoint : return "Disjoint";
  7308. case ImageCreateFlagBits::eCornerSampledNV : return "CornerSampledNV";
  7309. case ImageCreateFlagBits::eSampleLocationsCompatibleDepthEXT : return "SampleLocationsCompatibleDepthEXT";
  7310. case ImageCreateFlagBits::eSubsampledEXT : return "SubsampledEXT";
  7311. default: return "invalid";
  7312. }
  7313. }
  7314. using ImageCreateFlags = Flags<ImageCreateFlagBits, VkImageCreateFlags>;
  7315. VULKAN_HPP_INLINE ImageCreateFlags operator|( ImageCreateFlagBits bit0, ImageCreateFlagBits bit1 )
  7316. {
  7317. return ImageCreateFlags( bit0 ) | bit1;
  7318. }
  7319. VULKAN_HPP_INLINE ImageCreateFlags operator~( ImageCreateFlagBits bits )
  7320. {
  7321. return ~( ImageCreateFlags( bits ) );
  7322. }
  7323. template <> struct FlagTraits<ImageCreateFlagBits>
  7324. {
  7325. enum
  7326. {
  7327. allFlags = VkFlags(ImageCreateFlagBits::eSparseBinding) | VkFlags(ImageCreateFlagBits::eSparseResidency) | VkFlags(ImageCreateFlagBits::eSparseAliased) | VkFlags(ImageCreateFlagBits::eMutableFormat) | VkFlags(ImageCreateFlagBits::eCubeCompatible) | VkFlags(ImageCreateFlagBits::eAlias) | VkFlags(ImageCreateFlagBits::eSplitInstanceBindRegions) | VkFlags(ImageCreateFlagBits::e2DArrayCompatible) | VkFlags(ImageCreateFlagBits::eBlockTexelViewCompatible) | VkFlags(ImageCreateFlagBits::eExtendedUsage) | VkFlags(ImageCreateFlagBits::eProtected) | VkFlags(ImageCreateFlagBits::eDisjoint) | VkFlags(ImageCreateFlagBits::eCornerSampledNV) | VkFlags(ImageCreateFlagBits::eSampleLocationsCompatibleDepthEXT) | VkFlags(ImageCreateFlagBits::eSubsampledEXT)
  7328. };
  7329. };
  7330. VULKAN_HPP_INLINE std::string to_string( ImageCreateFlags value )
  7331. {
  7332. if ( !value ) return "{}";
  7333. std::string result;
  7334. if ( value & ImageCreateFlagBits::eSparseBinding ) result += "SparseBinding | ";
  7335. if ( value & ImageCreateFlagBits::eSparseResidency ) result += "SparseResidency | ";
  7336. if ( value & ImageCreateFlagBits::eSparseAliased ) result += "SparseAliased | ";
  7337. if ( value & ImageCreateFlagBits::eMutableFormat ) result += "MutableFormat | ";
  7338. if ( value & ImageCreateFlagBits::eCubeCompatible ) result += "CubeCompatible | ";
  7339. if ( value & ImageCreateFlagBits::eAlias ) result += "Alias | ";
  7340. if ( value & ImageCreateFlagBits::eSplitInstanceBindRegions ) result += "SplitInstanceBindRegions | ";
  7341. if ( value & ImageCreateFlagBits::e2DArrayCompatible ) result += "2DArrayCompatible | ";
  7342. if ( value & ImageCreateFlagBits::eBlockTexelViewCompatible ) result += "BlockTexelViewCompatible | ";
  7343. if ( value & ImageCreateFlagBits::eExtendedUsage ) result += "ExtendedUsage | ";
  7344. if ( value & ImageCreateFlagBits::eProtected ) result += "Protected | ";
  7345. if ( value & ImageCreateFlagBits::eDisjoint ) result += "Disjoint | ";
  7346. if ( value & ImageCreateFlagBits::eCornerSampledNV ) result += "CornerSampledNV | ";
  7347. if ( value & ImageCreateFlagBits::eSampleLocationsCompatibleDepthEXT ) result += "SampleLocationsCompatibleDepthEXT | ";
  7348. if ( value & ImageCreateFlagBits::eSubsampledEXT ) result += "SubsampledEXT | ";
  7349. return "{ " + result.substr(0, result.size() - 3) + " }";
  7350. }
  7351. #ifdef VK_USE_PLATFORM_FUCHSIA
  7352. enum class ImagePipeSurfaceCreateFlagBitsFUCHSIA
  7353. {};
  7354. VULKAN_HPP_INLINE std::string to_string( ImagePipeSurfaceCreateFlagBitsFUCHSIA )
  7355. {
  7356. return "(void)";
  7357. }
  7358. using ImagePipeSurfaceCreateFlagsFUCHSIA = Flags<ImagePipeSurfaceCreateFlagBitsFUCHSIA, VkImagePipeSurfaceCreateFlagsFUCHSIA>;
  7359. VULKAN_HPP_INLINE std::string to_string( ImagePipeSurfaceCreateFlagsFUCHSIA )
  7360. {
  7361. return "{}";
  7362. }
  7363. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  7364. enum class ImageUsageFlagBits
  7365. {
  7366. eTransferSrc = VK_IMAGE_USAGE_TRANSFER_SRC_BIT,
  7367. eTransferDst = VK_IMAGE_USAGE_TRANSFER_DST_BIT,
  7368. eSampled = VK_IMAGE_USAGE_SAMPLED_BIT,
  7369. eStorage = VK_IMAGE_USAGE_STORAGE_BIT,
  7370. eColorAttachment = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT,
  7371. eDepthStencilAttachment = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,
  7372. eTransientAttachment = VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT,
  7373. eInputAttachment = VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT,
  7374. eShadingRateImageNV = VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV,
  7375. eFragmentDensityMapEXT = VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT
  7376. };
  7377. VULKAN_HPP_INLINE std::string to_string( ImageUsageFlagBits value )
  7378. {
  7379. switch ( value )
  7380. {
  7381. case ImageUsageFlagBits::eTransferSrc : return "TransferSrc";
  7382. case ImageUsageFlagBits::eTransferDst : return "TransferDst";
  7383. case ImageUsageFlagBits::eSampled : return "Sampled";
  7384. case ImageUsageFlagBits::eStorage : return "Storage";
  7385. case ImageUsageFlagBits::eColorAttachment : return "ColorAttachment";
  7386. case ImageUsageFlagBits::eDepthStencilAttachment : return "DepthStencilAttachment";
  7387. case ImageUsageFlagBits::eTransientAttachment : return "TransientAttachment";
  7388. case ImageUsageFlagBits::eInputAttachment : return "InputAttachment";
  7389. case ImageUsageFlagBits::eShadingRateImageNV : return "ShadingRateImageNV";
  7390. case ImageUsageFlagBits::eFragmentDensityMapEXT : return "FragmentDensityMapEXT";
  7391. default: return "invalid";
  7392. }
  7393. }
  7394. using ImageUsageFlags = Flags<ImageUsageFlagBits, VkImageUsageFlags>;
  7395. VULKAN_HPP_INLINE ImageUsageFlags operator|( ImageUsageFlagBits bit0, ImageUsageFlagBits bit1 )
  7396. {
  7397. return ImageUsageFlags( bit0 ) | bit1;
  7398. }
  7399. VULKAN_HPP_INLINE ImageUsageFlags operator~( ImageUsageFlagBits bits )
  7400. {
  7401. return ~( ImageUsageFlags( bits ) );
  7402. }
  7403. template <> struct FlagTraits<ImageUsageFlagBits>
  7404. {
  7405. enum
  7406. {
  7407. allFlags = VkFlags(ImageUsageFlagBits::eTransferSrc) | VkFlags(ImageUsageFlagBits::eTransferDst) | VkFlags(ImageUsageFlagBits::eSampled) | VkFlags(ImageUsageFlagBits::eStorage) | VkFlags(ImageUsageFlagBits::eColorAttachment) | VkFlags(ImageUsageFlagBits::eDepthStencilAttachment) | VkFlags(ImageUsageFlagBits::eTransientAttachment) | VkFlags(ImageUsageFlagBits::eInputAttachment) | VkFlags(ImageUsageFlagBits::eShadingRateImageNV) | VkFlags(ImageUsageFlagBits::eFragmentDensityMapEXT)
  7408. };
  7409. };
  7410. VULKAN_HPP_INLINE std::string to_string( ImageUsageFlags value )
  7411. {
  7412. if ( !value ) return "{}";
  7413. std::string result;
  7414. if ( value & ImageUsageFlagBits::eTransferSrc ) result += "TransferSrc | ";
  7415. if ( value & ImageUsageFlagBits::eTransferDst ) result += "TransferDst | ";
  7416. if ( value & ImageUsageFlagBits::eSampled ) result += "Sampled | ";
  7417. if ( value & ImageUsageFlagBits::eStorage ) result += "Storage | ";
  7418. if ( value & ImageUsageFlagBits::eColorAttachment ) result += "ColorAttachment | ";
  7419. if ( value & ImageUsageFlagBits::eDepthStencilAttachment ) result += "DepthStencilAttachment | ";
  7420. if ( value & ImageUsageFlagBits::eTransientAttachment ) result += "TransientAttachment | ";
  7421. if ( value & ImageUsageFlagBits::eInputAttachment ) result += "InputAttachment | ";
  7422. if ( value & ImageUsageFlagBits::eShadingRateImageNV ) result += "ShadingRateImageNV | ";
  7423. if ( value & ImageUsageFlagBits::eFragmentDensityMapEXT ) result += "FragmentDensityMapEXT | ";
  7424. return "{ " + result.substr(0, result.size() - 3) + " }";
  7425. }
  7426. enum class ImageViewCreateFlagBits
  7427. {
  7428. eFragmentDensityMapDynamicEXT = VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT
  7429. };
  7430. VULKAN_HPP_INLINE std::string to_string( ImageViewCreateFlagBits value )
  7431. {
  7432. switch ( value )
  7433. {
  7434. case ImageViewCreateFlagBits::eFragmentDensityMapDynamicEXT : return "FragmentDensityMapDynamicEXT";
  7435. default: return "invalid";
  7436. }
  7437. }
  7438. using ImageViewCreateFlags = Flags<ImageViewCreateFlagBits, VkImageViewCreateFlags>;
  7439. VULKAN_HPP_INLINE ImageViewCreateFlags operator|( ImageViewCreateFlagBits bit0, ImageViewCreateFlagBits bit1 )
  7440. {
  7441. return ImageViewCreateFlags( bit0 ) | bit1;
  7442. }
  7443. VULKAN_HPP_INLINE ImageViewCreateFlags operator~( ImageViewCreateFlagBits bits )
  7444. {
  7445. return ~( ImageViewCreateFlags( bits ) );
  7446. }
  7447. template <> struct FlagTraits<ImageViewCreateFlagBits>
  7448. {
  7449. enum
  7450. {
  7451. allFlags = VkFlags(ImageViewCreateFlagBits::eFragmentDensityMapDynamicEXT)
  7452. };
  7453. };
  7454. VULKAN_HPP_INLINE std::string to_string( ImageViewCreateFlags value )
  7455. {
  7456. if ( !value ) return "{}";
  7457. std::string result;
  7458. if ( value & ImageViewCreateFlagBits::eFragmentDensityMapDynamicEXT ) result += "FragmentDensityMapDynamicEXT | ";
  7459. return "{ " + result.substr(0, result.size() - 3) + " }";
  7460. }
  7461. enum class IndirectCommandsLayoutUsageFlagBitsNVX
  7462. {
  7463. eUnorderedSequences = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX,
  7464. eSparseSequences = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX,
  7465. eEmptyExecutions = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX,
  7466. eIndexedSequences = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX
  7467. };
  7468. VULKAN_HPP_INLINE std::string to_string( IndirectCommandsLayoutUsageFlagBitsNVX value )
  7469. {
  7470. switch ( value )
  7471. {
  7472. case IndirectCommandsLayoutUsageFlagBitsNVX::eUnorderedSequences : return "UnorderedSequences";
  7473. case IndirectCommandsLayoutUsageFlagBitsNVX::eSparseSequences : return "SparseSequences";
  7474. case IndirectCommandsLayoutUsageFlagBitsNVX::eEmptyExecutions : return "EmptyExecutions";
  7475. case IndirectCommandsLayoutUsageFlagBitsNVX::eIndexedSequences : return "IndexedSequences";
  7476. default: return "invalid";
  7477. }
  7478. }
  7479. using IndirectCommandsLayoutUsageFlagsNVX = Flags<IndirectCommandsLayoutUsageFlagBitsNVX, VkIndirectCommandsLayoutUsageFlagsNVX>;
  7480. VULKAN_HPP_INLINE IndirectCommandsLayoutUsageFlagsNVX operator|( IndirectCommandsLayoutUsageFlagBitsNVX bit0, IndirectCommandsLayoutUsageFlagBitsNVX bit1 )
  7481. {
  7482. return IndirectCommandsLayoutUsageFlagsNVX( bit0 ) | bit1;
  7483. }
  7484. VULKAN_HPP_INLINE IndirectCommandsLayoutUsageFlagsNVX operator~( IndirectCommandsLayoutUsageFlagBitsNVX bits )
  7485. {
  7486. return ~( IndirectCommandsLayoutUsageFlagsNVX( bits ) );
  7487. }
  7488. template <> struct FlagTraits<IndirectCommandsLayoutUsageFlagBitsNVX>
  7489. {
  7490. enum
  7491. {
  7492. allFlags = VkFlags(IndirectCommandsLayoutUsageFlagBitsNVX::eUnorderedSequences) | VkFlags(IndirectCommandsLayoutUsageFlagBitsNVX::eSparseSequences) | VkFlags(IndirectCommandsLayoutUsageFlagBitsNVX::eEmptyExecutions) | VkFlags(IndirectCommandsLayoutUsageFlagBitsNVX::eIndexedSequences)
  7493. };
  7494. };
  7495. VULKAN_HPP_INLINE std::string to_string( IndirectCommandsLayoutUsageFlagsNVX value )
  7496. {
  7497. if ( !value ) return "{}";
  7498. std::string result;
  7499. if ( value & IndirectCommandsLayoutUsageFlagBitsNVX::eUnorderedSequences ) result += "UnorderedSequences | ";
  7500. if ( value & IndirectCommandsLayoutUsageFlagBitsNVX::eSparseSequences ) result += "SparseSequences | ";
  7501. if ( value & IndirectCommandsLayoutUsageFlagBitsNVX::eEmptyExecutions ) result += "EmptyExecutions | ";
  7502. if ( value & IndirectCommandsLayoutUsageFlagBitsNVX::eIndexedSequences ) result += "IndexedSequences | ";
  7503. return "{ " + result.substr(0, result.size() - 3) + " }";
  7504. }
  7505. enum class InstanceCreateFlagBits
  7506. {};
  7507. VULKAN_HPP_INLINE std::string to_string( InstanceCreateFlagBits )
  7508. {
  7509. return "(void)";
  7510. }
  7511. using InstanceCreateFlags = Flags<InstanceCreateFlagBits, VkInstanceCreateFlags>;
  7512. VULKAN_HPP_INLINE std::string to_string( InstanceCreateFlags )
  7513. {
  7514. return "{}";
  7515. }
  7516. #ifdef VK_USE_PLATFORM_MACOS_MVK
  7517. enum class MacOSSurfaceCreateFlagBitsMVK
  7518. {};
  7519. VULKAN_HPP_INLINE std::string to_string( MacOSSurfaceCreateFlagBitsMVK )
  7520. {
  7521. return "(void)";
  7522. }
  7523. using MacOSSurfaceCreateFlagsMVK = Flags<MacOSSurfaceCreateFlagBitsMVK, VkMacOSSurfaceCreateFlagsMVK>;
  7524. VULKAN_HPP_INLINE std::string to_string( MacOSSurfaceCreateFlagsMVK )
  7525. {
  7526. return "{}";
  7527. }
  7528. #endif /*VK_USE_PLATFORM_MACOS_MVK*/
  7529. enum class MemoryAllocateFlagBits
  7530. {
  7531. eDeviceMask = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT,
  7532. eDeviceMaskKHR = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR
  7533. };
  7534. VULKAN_HPP_INLINE std::string to_string( MemoryAllocateFlagBits value )
  7535. {
  7536. switch ( value )
  7537. {
  7538. case MemoryAllocateFlagBits::eDeviceMask : return "DeviceMask";
  7539. default: return "invalid";
  7540. }
  7541. }
  7542. using MemoryAllocateFlags = Flags<MemoryAllocateFlagBits, VkMemoryAllocateFlags>;
  7543. VULKAN_HPP_INLINE MemoryAllocateFlags operator|( MemoryAllocateFlagBits bit0, MemoryAllocateFlagBits bit1 )
  7544. {
  7545. return MemoryAllocateFlags( bit0 ) | bit1;
  7546. }
  7547. VULKAN_HPP_INLINE MemoryAllocateFlags operator~( MemoryAllocateFlagBits bits )
  7548. {
  7549. return ~( MemoryAllocateFlags( bits ) );
  7550. }
  7551. template <> struct FlagTraits<MemoryAllocateFlagBits>
  7552. {
  7553. enum
  7554. {
  7555. allFlags = VkFlags(MemoryAllocateFlagBits::eDeviceMask)
  7556. };
  7557. };
  7558. using MemoryAllocateFlagsKHR = MemoryAllocateFlags;
  7559. VULKAN_HPP_INLINE std::string to_string( MemoryAllocateFlags value )
  7560. {
  7561. if ( !value ) return "{}";
  7562. std::string result;
  7563. if ( value & MemoryAllocateFlagBits::eDeviceMask ) result += "DeviceMask | ";
  7564. return "{ " + result.substr(0, result.size() - 3) + " }";
  7565. }
  7566. enum class MemoryHeapFlagBits
  7567. {
  7568. eDeviceLocal = VK_MEMORY_HEAP_DEVICE_LOCAL_BIT,
  7569. eMultiInstance = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,
  7570. eMultiInstanceKHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR
  7571. };
  7572. VULKAN_HPP_INLINE std::string to_string( MemoryHeapFlagBits value )
  7573. {
  7574. switch ( value )
  7575. {
  7576. case MemoryHeapFlagBits::eDeviceLocal : return "DeviceLocal";
  7577. case MemoryHeapFlagBits::eMultiInstance : return "MultiInstance";
  7578. default: return "invalid";
  7579. }
  7580. }
  7581. using MemoryHeapFlags = Flags<MemoryHeapFlagBits, VkMemoryHeapFlags>;
  7582. VULKAN_HPP_INLINE MemoryHeapFlags operator|( MemoryHeapFlagBits bit0, MemoryHeapFlagBits bit1 )
  7583. {
  7584. return MemoryHeapFlags( bit0 ) | bit1;
  7585. }
  7586. VULKAN_HPP_INLINE MemoryHeapFlags operator~( MemoryHeapFlagBits bits )
  7587. {
  7588. return ~( MemoryHeapFlags( bits ) );
  7589. }
  7590. template <> struct FlagTraits<MemoryHeapFlagBits>
  7591. {
  7592. enum
  7593. {
  7594. allFlags = VkFlags(MemoryHeapFlagBits::eDeviceLocal) | VkFlags(MemoryHeapFlagBits::eMultiInstance)
  7595. };
  7596. };
  7597. VULKAN_HPP_INLINE std::string to_string( MemoryHeapFlags value )
  7598. {
  7599. if ( !value ) return "{}";
  7600. std::string result;
  7601. if ( value & MemoryHeapFlagBits::eDeviceLocal ) result += "DeviceLocal | ";
  7602. if ( value & MemoryHeapFlagBits::eMultiInstance ) result += "MultiInstance | ";
  7603. return "{ " + result.substr(0, result.size() - 3) + " }";
  7604. }
  7605. enum class MemoryMapFlagBits
  7606. {};
  7607. VULKAN_HPP_INLINE std::string to_string( MemoryMapFlagBits )
  7608. {
  7609. return "(void)";
  7610. }
  7611. using MemoryMapFlags = Flags<MemoryMapFlagBits, VkMemoryMapFlags>;
  7612. VULKAN_HPP_INLINE std::string to_string( MemoryMapFlags )
  7613. {
  7614. return "{}";
  7615. }
  7616. enum class MemoryPropertyFlagBits
  7617. {
  7618. eDeviceLocal = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,
  7619. eHostVisible = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT,
  7620. eHostCoherent = VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,
  7621. eHostCached = VK_MEMORY_PROPERTY_HOST_CACHED_BIT,
  7622. eLazilyAllocated = VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT,
  7623. eProtected = VK_MEMORY_PROPERTY_PROTECTED_BIT
  7624. };
  7625. VULKAN_HPP_INLINE std::string to_string( MemoryPropertyFlagBits value )
  7626. {
  7627. switch ( value )
  7628. {
  7629. case MemoryPropertyFlagBits::eDeviceLocal : return "DeviceLocal";
  7630. case MemoryPropertyFlagBits::eHostVisible : return "HostVisible";
  7631. case MemoryPropertyFlagBits::eHostCoherent : return "HostCoherent";
  7632. case MemoryPropertyFlagBits::eHostCached : return "HostCached";
  7633. case MemoryPropertyFlagBits::eLazilyAllocated : return "LazilyAllocated";
  7634. case MemoryPropertyFlagBits::eProtected : return "Protected";
  7635. default: return "invalid";
  7636. }
  7637. }
  7638. using MemoryPropertyFlags = Flags<MemoryPropertyFlagBits, VkMemoryPropertyFlags>;
  7639. VULKAN_HPP_INLINE MemoryPropertyFlags operator|( MemoryPropertyFlagBits bit0, MemoryPropertyFlagBits bit1 )
  7640. {
  7641. return MemoryPropertyFlags( bit0 ) | bit1;
  7642. }
  7643. VULKAN_HPP_INLINE MemoryPropertyFlags operator~( MemoryPropertyFlagBits bits )
  7644. {
  7645. return ~( MemoryPropertyFlags( bits ) );
  7646. }
  7647. template <> struct FlagTraits<MemoryPropertyFlagBits>
  7648. {
  7649. enum
  7650. {
  7651. allFlags = VkFlags(MemoryPropertyFlagBits::eDeviceLocal) | VkFlags(MemoryPropertyFlagBits::eHostVisible) | VkFlags(MemoryPropertyFlagBits::eHostCoherent) | VkFlags(MemoryPropertyFlagBits::eHostCached) | VkFlags(MemoryPropertyFlagBits::eLazilyAllocated) | VkFlags(MemoryPropertyFlagBits::eProtected)
  7652. };
  7653. };
  7654. VULKAN_HPP_INLINE std::string to_string( MemoryPropertyFlags value )
  7655. {
  7656. if ( !value ) return "{}";
  7657. std::string result;
  7658. if ( value & MemoryPropertyFlagBits::eDeviceLocal ) result += "DeviceLocal | ";
  7659. if ( value & MemoryPropertyFlagBits::eHostVisible ) result += "HostVisible | ";
  7660. if ( value & MemoryPropertyFlagBits::eHostCoherent ) result += "HostCoherent | ";
  7661. if ( value & MemoryPropertyFlagBits::eHostCached ) result += "HostCached | ";
  7662. if ( value & MemoryPropertyFlagBits::eLazilyAllocated ) result += "LazilyAllocated | ";
  7663. if ( value & MemoryPropertyFlagBits::eProtected ) result += "Protected | ";
  7664. return "{ " + result.substr(0, result.size() - 3) + " }";
  7665. }
  7666. #ifdef VK_USE_PLATFORM_METAL_EXT
  7667. enum class MetalSurfaceCreateFlagBitsEXT
  7668. {};
  7669. VULKAN_HPP_INLINE std::string to_string( MetalSurfaceCreateFlagBitsEXT )
  7670. {
  7671. return "(void)";
  7672. }
  7673. using MetalSurfaceCreateFlagsEXT = Flags<MetalSurfaceCreateFlagBitsEXT, VkMetalSurfaceCreateFlagsEXT>;
  7674. VULKAN_HPP_INLINE std::string to_string( MetalSurfaceCreateFlagsEXT )
  7675. {
  7676. return "{}";
  7677. }
  7678. #endif /*VK_USE_PLATFORM_METAL_EXT*/
  7679. enum class ObjectEntryUsageFlagBitsNVX
  7680. {
  7681. eGraphics = VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX,
  7682. eCompute = VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX
  7683. };
  7684. VULKAN_HPP_INLINE std::string to_string( ObjectEntryUsageFlagBitsNVX value )
  7685. {
  7686. switch ( value )
  7687. {
  7688. case ObjectEntryUsageFlagBitsNVX::eGraphics : return "Graphics";
  7689. case ObjectEntryUsageFlagBitsNVX::eCompute : return "Compute";
  7690. default: return "invalid";
  7691. }
  7692. }
  7693. using ObjectEntryUsageFlagsNVX = Flags<ObjectEntryUsageFlagBitsNVX, VkObjectEntryUsageFlagsNVX>;
  7694. VULKAN_HPP_INLINE ObjectEntryUsageFlagsNVX operator|( ObjectEntryUsageFlagBitsNVX bit0, ObjectEntryUsageFlagBitsNVX bit1 )
  7695. {
  7696. return ObjectEntryUsageFlagsNVX( bit0 ) | bit1;
  7697. }
  7698. VULKAN_HPP_INLINE ObjectEntryUsageFlagsNVX operator~( ObjectEntryUsageFlagBitsNVX bits )
  7699. {
  7700. return ~( ObjectEntryUsageFlagsNVX( bits ) );
  7701. }
  7702. template <> struct FlagTraits<ObjectEntryUsageFlagBitsNVX>
  7703. {
  7704. enum
  7705. {
  7706. allFlags = VkFlags(ObjectEntryUsageFlagBitsNVX::eGraphics) | VkFlags(ObjectEntryUsageFlagBitsNVX::eCompute)
  7707. };
  7708. };
  7709. VULKAN_HPP_INLINE std::string to_string( ObjectEntryUsageFlagsNVX value )
  7710. {
  7711. if ( !value ) return "{}";
  7712. std::string result;
  7713. if ( value & ObjectEntryUsageFlagBitsNVX::eGraphics ) result += "Graphics | ";
  7714. if ( value & ObjectEntryUsageFlagBitsNVX::eCompute ) result += "Compute | ";
  7715. return "{ " + result.substr(0, result.size() - 3) + " }";
  7716. }
  7717. enum class PeerMemoryFeatureFlagBits
  7718. {
  7719. eCopySrc = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,
  7720. eCopyDst = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,
  7721. eGenericSrc = VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,
  7722. eGenericDst = VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT,
  7723. eCopySrcKHR = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR,
  7724. eCopyDstKHR = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR,
  7725. eGenericSrcKHR = VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR,
  7726. eGenericDstKHR = VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR
  7727. };
  7728. VULKAN_HPP_INLINE std::string to_string( PeerMemoryFeatureFlagBits value )
  7729. {
  7730. switch ( value )
  7731. {
  7732. case PeerMemoryFeatureFlagBits::eCopySrc : return "CopySrc";
  7733. case PeerMemoryFeatureFlagBits::eCopyDst : return "CopyDst";
  7734. case PeerMemoryFeatureFlagBits::eGenericSrc : return "GenericSrc";
  7735. case PeerMemoryFeatureFlagBits::eGenericDst : return "GenericDst";
  7736. default: return "invalid";
  7737. }
  7738. }
  7739. using PeerMemoryFeatureFlags = Flags<PeerMemoryFeatureFlagBits, VkPeerMemoryFeatureFlags>;
  7740. VULKAN_HPP_INLINE PeerMemoryFeatureFlags operator|( PeerMemoryFeatureFlagBits bit0, PeerMemoryFeatureFlagBits bit1 )
  7741. {
  7742. return PeerMemoryFeatureFlags( bit0 ) | bit1;
  7743. }
  7744. VULKAN_HPP_INLINE PeerMemoryFeatureFlags operator~( PeerMemoryFeatureFlagBits bits )
  7745. {
  7746. return ~( PeerMemoryFeatureFlags( bits ) );
  7747. }
  7748. template <> struct FlagTraits<PeerMemoryFeatureFlagBits>
  7749. {
  7750. enum
  7751. {
  7752. allFlags = VkFlags(PeerMemoryFeatureFlagBits::eCopySrc) | VkFlags(PeerMemoryFeatureFlagBits::eCopyDst) | VkFlags(PeerMemoryFeatureFlagBits::eGenericSrc) | VkFlags(PeerMemoryFeatureFlagBits::eGenericDst)
  7753. };
  7754. };
  7755. using PeerMemoryFeatureFlagsKHR = PeerMemoryFeatureFlags;
  7756. VULKAN_HPP_INLINE std::string to_string( PeerMemoryFeatureFlags value )
  7757. {
  7758. if ( !value ) return "{}";
  7759. std::string result;
  7760. if ( value & PeerMemoryFeatureFlagBits::eCopySrc ) result += "CopySrc | ";
  7761. if ( value & PeerMemoryFeatureFlagBits::eCopyDst ) result += "CopyDst | ";
  7762. if ( value & PeerMemoryFeatureFlagBits::eGenericSrc ) result += "GenericSrc | ";
  7763. if ( value & PeerMemoryFeatureFlagBits::eGenericDst ) result += "GenericDst | ";
  7764. return "{ " + result.substr(0, result.size() - 3) + " }";
  7765. }
  7766. enum class PipelineCacheCreateFlagBits
  7767. {};
  7768. VULKAN_HPP_INLINE std::string to_string( PipelineCacheCreateFlagBits )
  7769. {
  7770. return "(void)";
  7771. }
  7772. using PipelineCacheCreateFlags = Flags<PipelineCacheCreateFlagBits, VkPipelineCacheCreateFlags>;
  7773. VULKAN_HPP_INLINE std::string to_string( PipelineCacheCreateFlags )
  7774. {
  7775. return "{}";
  7776. }
  7777. enum class PipelineColorBlendStateCreateFlagBits
  7778. {};
  7779. VULKAN_HPP_INLINE std::string to_string( PipelineColorBlendStateCreateFlagBits )
  7780. {
  7781. return "(void)";
  7782. }
  7783. using PipelineColorBlendStateCreateFlags = Flags<PipelineColorBlendStateCreateFlagBits, VkPipelineColorBlendStateCreateFlags>;
  7784. VULKAN_HPP_INLINE std::string to_string( PipelineColorBlendStateCreateFlags )
  7785. {
  7786. return "{}";
  7787. }
  7788. enum class PipelineCoverageModulationStateCreateFlagBitsNV
  7789. {};
  7790. VULKAN_HPP_INLINE std::string to_string( PipelineCoverageModulationStateCreateFlagBitsNV )
  7791. {
  7792. return "(void)";
  7793. }
  7794. using PipelineCoverageModulationStateCreateFlagsNV = Flags<PipelineCoverageModulationStateCreateFlagBitsNV, VkPipelineCoverageModulationStateCreateFlagsNV>;
  7795. VULKAN_HPP_INLINE std::string to_string( PipelineCoverageModulationStateCreateFlagsNV )
  7796. {
  7797. return "{}";
  7798. }
  7799. enum class PipelineCoverageReductionStateCreateFlagBitsNV
  7800. {};
  7801. VULKAN_HPP_INLINE std::string to_string( PipelineCoverageReductionStateCreateFlagBitsNV )
  7802. {
  7803. return "(void)";
  7804. }
  7805. using PipelineCoverageReductionStateCreateFlagsNV = Flags<PipelineCoverageReductionStateCreateFlagBitsNV, VkPipelineCoverageReductionStateCreateFlagsNV>;
  7806. VULKAN_HPP_INLINE std::string to_string( PipelineCoverageReductionStateCreateFlagsNV )
  7807. {
  7808. return "{}";
  7809. }
  7810. enum class PipelineCoverageToColorStateCreateFlagBitsNV
  7811. {};
  7812. VULKAN_HPP_INLINE std::string to_string( PipelineCoverageToColorStateCreateFlagBitsNV )
  7813. {
  7814. return "(void)";
  7815. }
  7816. using PipelineCoverageToColorStateCreateFlagsNV = Flags<PipelineCoverageToColorStateCreateFlagBitsNV, VkPipelineCoverageToColorStateCreateFlagsNV>;
  7817. VULKAN_HPP_INLINE std::string to_string( PipelineCoverageToColorStateCreateFlagsNV )
  7818. {
  7819. return "{}";
  7820. }
  7821. enum class PipelineCreateFlagBits
  7822. {
  7823. eDisableOptimization = VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT,
  7824. eAllowDerivatives = VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT,
  7825. eDerivative = VK_PIPELINE_CREATE_DERIVATIVE_BIT,
  7826. eViewIndexFromDeviceIndex = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,
  7827. eDispatchBase = VK_PIPELINE_CREATE_DISPATCH_BASE,
  7828. eDeferCompileNV = VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV,
  7829. eViewIndexFromDeviceIndexKHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR,
  7830. eDispatchBaseKHR = VK_PIPELINE_CREATE_DISPATCH_BASE_KHR
  7831. };
  7832. VULKAN_HPP_INLINE std::string to_string( PipelineCreateFlagBits value )
  7833. {
  7834. switch ( value )
  7835. {
  7836. case PipelineCreateFlagBits::eDisableOptimization : return "DisableOptimization";
  7837. case PipelineCreateFlagBits::eAllowDerivatives : return "AllowDerivatives";
  7838. case PipelineCreateFlagBits::eDerivative : return "Derivative";
  7839. case PipelineCreateFlagBits::eViewIndexFromDeviceIndex : return "ViewIndexFromDeviceIndex";
  7840. case PipelineCreateFlagBits::eDispatchBase : return "DispatchBase";
  7841. case PipelineCreateFlagBits::eDeferCompileNV : return "DeferCompileNV";
  7842. default: return "invalid";
  7843. }
  7844. }
  7845. using PipelineCreateFlags = Flags<PipelineCreateFlagBits, VkPipelineCreateFlags>;
  7846. VULKAN_HPP_INLINE PipelineCreateFlags operator|( PipelineCreateFlagBits bit0, PipelineCreateFlagBits bit1 )
  7847. {
  7848. return PipelineCreateFlags( bit0 ) | bit1;
  7849. }
  7850. VULKAN_HPP_INLINE PipelineCreateFlags operator~( PipelineCreateFlagBits bits )
  7851. {
  7852. return ~( PipelineCreateFlags( bits ) );
  7853. }
  7854. template <> struct FlagTraits<PipelineCreateFlagBits>
  7855. {
  7856. enum
  7857. {
  7858. allFlags = VkFlags(PipelineCreateFlagBits::eDisableOptimization) | VkFlags(PipelineCreateFlagBits::eAllowDerivatives) | VkFlags(PipelineCreateFlagBits::eDerivative) | VkFlags(PipelineCreateFlagBits::eViewIndexFromDeviceIndex) | VkFlags(PipelineCreateFlagBits::eDispatchBase) | VkFlags(PipelineCreateFlagBits::eDeferCompileNV)
  7859. };
  7860. };
  7861. VULKAN_HPP_INLINE std::string to_string( PipelineCreateFlags value )
  7862. {
  7863. if ( !value ) return "{}";
  7864. std::string result;
  7865. if ( value & PipelineCreateFlagBits::eDisableOptimization ) result += "DisableOptimization | ";
  7866. if ( value & PipelineCreateFlagBits::eAllowDerivatives ) result += "AllowDerivatives | ";
  7867. if ( value & PipelineCreateFlagBits::eDerivative ) result += "Derivative | ";
  7868. if ( value & PipelineCreateFlagBits::eViewIndexFromDeviceIndex ) result += "ViewIndexFromDeviceIndex | ";
  7869. if ( value & PipelineCreateFlagBits::eDispatchBase ) result += "DispatchBase | ";
  7870. if ( value & PipelineCreateFlagBits::eDeferCompileNV ) result += "DeferCompileNV | ";
  7871. return "{ " + result.substr(0, result.size() - 3) + " }";
  7872. }
  7873. enum class PipelineCreationFeedbackFlagBitsEXT
  7874. {
  7875. eValid = VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT,
  7876. eApplicationPipelineCacheHit = VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT,
  7877. eBasePipelineAcceleration = VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT
  7878. };
  7879. VULKAN_HPP_INLINE std::string to_string( PipelineCreationFeedbackFlagBitsEXT value )
  7880. {
  7881. switch ( value )
  7882. {
  7883. case PipelineCreationFeedbackFlagBitsEXT::eValid : return "Valid";
  7884. case PipelineCreationFeedbackFlagBitsEXT::eApplicationPipelineCacheHit : return "ApplicationPipelineCacheHit";
  7885. case PipelineCreationFeedbackFlagBitsEXT::eBasePipelineAcceleration : return "BasePipelineAcceleration";
  7886. default: return "invalid";
  7887. }
  7888. }
  7889. using PipelineCreationFeedbackFlagsEXT = Flags<PipelineCreationFeedbackFlagBitsEXT, VkPipelineCreationFeedbackFlagsEXT>;
  7890. VULKAN_HPP_INLINE PipelineCreationFeedbackFlagsEXT operator|( PipelineCreationFeedbackFlagBitsEXT bit0, PipelineCreationFeedbackFlagBitsEXT bit1 )
  7891. {
  7892. return PipelineCreationFeedbackFlagsEXT( bit0 ) | bit1;
  7893. }
  7894. VULKAN_HPP_INLINE PipelineCreationFeedbackFlagsEXT operator~( PipelineCreationFeedbackFlagBitsEXT bits )
  7895. {
  7896. return ~( PipelineCreationFeedbackFlagsEXT( bits ) );
  7897. }
  7898. template <> struct FlagTraits<PipelineCreationFeedbackFlagBitsEXT>
  7899. {
  7900. enum
  7901. {
  7902. allFlags = VkFlags(PipelineCreationFeedbackFlagBitsEXT::eValid) | VkFlags(PipelineCreationFeedbackFlagBitsEXT::eApplicationPipelineCacheHit) | VkFlags(PipelineCreationFeedbackFlagBitsEXT::eBasePipelineAcceleration)
  7903. };
  7904. };
  7905. VULKAN_HPP_INLINE std::string to_string( PipelineCreationFeedbackFlagsEXT value )
  7906. {
  7907. if ( !value ) return "{}";
  7908. std::string result;
  7909. if ( value & PipelineCreationFeedbackFlagBitsEXT::eValid ) result += "Valid | ";
  7910. if ( value & PipelineCreationFeedbackFlagBitsEXT::eApplicationPipelineCacheHit ) result += "ApplicationPipelineCacheHit | ";
  7911. if ( value & PipelineCreationFeedbackFlagBitsEXT::eBasePipelineAcceleration ) result += "BasePipelineAcceleration | ";
  7912. return "{ " + result.substr(0, result.size() - 3) + " }";
  7913. }
  7914. enum class PipelineDepthStencilStateCreateFlagBits
  7915. {};
  7916. VULKAN_HPP_INLINE std::string to_string( PipelineDepthStencilStateCreateFlagBits )
  7917. {
  7918. return "(void)";
  7919. }
  7920. using PipelineDepthStencilStateCreateFlags = Flags<PipelineDepthStencilStateCreateFlagBits, VkPipelineDepthStencilStateCreateFlags>;
  7921. VULKAN_HPP_INLINE std::string to_string( PipelineDepthStencilStateCreateFlags )
  7922. {
  7923. return "{}";
  7924. }
  7925. enum class PipelineDiscardRectangleStateCreateFlagBitsEXT
  7926. {};
  7927. VULKAN_HPP_INLINE std::string to_string( PipelineDiscardRectangleStateCreateFlagBitsEXT )
  7928. {
  7929. return "(void)";
  7930. }
  7931. using PipelineDiscardRectangleStateCreateFlagsEXT = Flags<PipelineDiscardRectangleStateCreateFlagBitsEXT, VkPipelineDiscardRectangleStateCreateFlagsEXT>;
  7932. VULKAN_HPP_INLINE std::string to_string( PipelineDiscardRectangleStateCreateFlagsEXT )
  7933. {
  7934. return "{}";
  7935. }
  7936. enum class PipelineDynamicStateCreateFlagBits
  7937. {};
  7938. VULKAN_HPP_INLINE std::string to_string( PipelineDynamicStateCreateFlagBits )
  7939. {
  7940. return "(void)";
  7941. }
  7942. using PipelineDynamicStateCreateFlags = Flags<PipelineDynamicStateCreateFlagBits, VkPipelineDynamicStateCreateFlags>;
  7943. VULKAN_HPP_INLINE std::string to_string( PipelineDynamicStateCreateFlags )
  7944. {
  7945. return "{}";
  7946. }
  7947. enum class PipelineInputAssemblyStateCreateFlagBits
  7948. {};
  7949. VULKAN_HPP_INLINE std::string to_string( PipelineInputAssemblyStateCreateFlagBits )
  7950. {
  7951. return "(void)";
  7952. }
  7953. using PipelineInputAssemblyStateCreateFlags = Flags<PipelineInputAssemblyStateCreateFlagBits, VkPipelineInputAssemblyStateCreateFlags>;
  7954. VULKAN_HPP_INLINE std::string to_string( PipelineInputAssemblyStateCreateFlags )
  7955. {
  7956. return "{}";
  7957. }
  7958. enum class PipelineLayoutCreateFlagBits
  7959. {};
  7960. VULKAN_HPP_INLINE std::string to_string( PipelineLayoutCreateFlagBits )
  7961. {
  7962. return "(void)";
  7963. }
  7964. using PipelineLayoutCreateFlags = Flags<PipelineLayoutCreateFlagBits, VkPipelineLayoutCreateFlags>;
  7965. VULKAN_HPP_INLINE std::string to_string( PipelineLayoutCreateFlags )
  7966. {
  7967. return "{}";
  7968. }
  7969. enum class PipelineMultisampleStateCreateFlagBits
  7970. {};
  7971. VULKAN_HPP_INLINE std::string to_string( PipelineMultisampleStateCreateFlagBits )
  7972. {
  7973. return "(void)";
  7974. }
  7975. using PipelineMultisampleStateCreateFlags = Flags<PipelineMultisampleStateCreateFlagBits, VkPipelineMultisampleStateCreateFlags>;
  7976. VULKAN_HPP_INLINE std::string to_string( PipelineMultisampleStateCreateFlags )
  7977. {
  7978. return "{}";
  7979. }
  7980. enum class PipelineRasterizationConservativeStateCreateFlagBitsEXT
  7981. {};
  7982. VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationConservativeStateCreateFlagBitsEXT )
  7983. {
  7984. return "(void)";
  7985. }
  7986. using PipelineRasterizationConservativeStateCreateFlagsEXT = Flags<PipelineRasterizationConservativeStateCreateFlagBitsEXT, VkPipelineRasterizationConservativeStateCreateFlagsEXT>;
  7987. VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationConservativeStateCreateFlagsEXT )
  7988. {
  7989. return "{}";
  7990. }
  7991. enum class PipelineRasterizationDepthClipStateCreateFlagBitsEXT
  7992. {};
  7993. VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationDepthClipStateCreateFlagBitsEXT )
  7994. {
  7995. return "(void)";
  7996. }
  7997. using PipelineRasterizationDepthClipStateCreateFlagsEXT = Flags<PipelineRasterizationDepthClipStateCreateFlagBitsEXT, VkPipelineRasterizationDepthClipStateCreateFlagsEXT>;
  7998. VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationDepthClipStateCreateFlagsEXT )
  7999. {
  8000. return "{}";
  8001. }
  8002. enum class PipelineRasterizationStateCreateFlagBits
  8003. {};
  8004. VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateCreateFlagBits )
  8005. {
  8006. return "(void)";
  8007. }
  8008. using PipelineRasterizationStateCreateFlags = Flags<PipelineRasterizationStateCreateFlagBits, VkPipelineRasterizationStateCreateFlags>;
  8009. VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateCreateFlags )
  8010. {
  8011. return "{}";
  8012. }
  8013. enum class PipelineRasterizationStateStreamCreateFlagBitsEXT
  8014. {};
  8015. VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateStreamCreateFlagBitsEXT )
  8016. {
  8017. return "(void)";
  8018. }
  8019. using PipelineRasterizationStateStreamCreateFlagsEXT = Flags<PipelineRasterizationStateStreamCreateFlagBitsEXT, VkPipelineRasterizationStateStreamCreateFlagsEXT>;
  8020. VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateStreamCreateFlagsEXT )
  8021. {
  8022. return "{}";
  8023. }
  8024. enum class PipelineShaderStageCreateFlagBits
  8025. {};
  8026. VULKAN_HPP_INLINE std::string to_string( PipelineShaderStageCreateFlagBits )
  8027. {
  8028. return "(void)";
  8029. }
  8030. using PipelineShaderStageCreateFlags = Flags<PipelineShaderStageCreateFlagBits, VkPipelineShaderStageCreateFlags>;
  8031. VULKAN_HPP_INLINE std::string to_string( PipelineShaderStageCreateFlags )
  8032. {
  8033. return "{}";
  8034. }
  8035. enum class PipelineStageFlagBits
  8036. {
  8037. eTopOfPipe = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
  8038. eDrawIndirect = VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT,
  8039. eVertexInput = VK_PIPELINE_STAGE_VERTEX_INPUT_BIT,
  8040. eVertexShader = VK_PIPELINE_STAGE_VERTEX_SHADER_BIT,
  8041. eTessellationControlShader = VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT,
  8042. eTessellationEvaluationShader = VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT,
  8043. eGeometryShader = VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT,
  8044. eFragmentShader = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,
  8045. eEarlyFragmentTests = VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT,
  8046. eLateFragmentTests = VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,
  8047. eColorAttachmentOutput = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
  8048. eComputeShader = VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT,
  8049. eTransfer = VK_PIPELINE_STAGE_TRANSFER_BIT,
  8050. eBottomOfPipe = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT,
  8051. eHost = VK_PIPELINE_STAGE_HOST_BIT,
  8052. eAllGraphics = VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT,
  8053. eAllCommands = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT,
  8054. eTransformFeedbackEXT = VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT,
  8055. eConditionalRenderingEXT = VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT,
  8056. eCommandProcessNVX = VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX,
  8057. eShadingRateImageNV = VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV,
  8058. eRayTracingShaderNV = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV,
  8059. eAccelerationStructureBuildNV = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV,
  8060. eTaskShaderNV = VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV,
  8061. eMeshShaderNV = VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV,
  8062. eFragmentDensityProcessEXT = VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT
  8063. };
  8064. VULKAN_HPP_INLINE std::string to_string( PipelineStageFlagBits value )
  8065. {
  8066. switch ( value )
  8067. {
  8068. case PipelineStageFlagBits::eTopOfPipe : return "TopOfPipe";
  8069. case PipelineStageFlagBits::eDrawIndirect : return "DrawIndirect";
  8070. case PipelineStageFlagBits::eVertexInput : return "VertexInput";
  8071. case PipelineStageFlagBits::eVertexShader : return "VertexShader";
  8072. case PipelineStageFlagBits::eTessellationControlShader : return "TessellationControlShader";
  8073. case PipelineStageFlagBits::eTessellationEvaluationShader : return "TessellationEvaluationShader";
  8074. case PipelineStageFlagBits::eGeometryShader : return "GeometryShader";
  8075. case PipelineStageFlagBits::eFragmentShader : return "FragmentShader";
  8076. case PipelineStageFlagBits::eEarlyFragmentTests : return "EarlyFragmentTests";
  8077. case PipelineStageFlagBits::eLateFragmentTests : return "LateFragmentTests";
  8078. case PipelineStageFlagBits::eColorAttachmentOutput : return "ColorAttachmentOutput";
  8079. case PipelineStageFlagBits::eComputeShader : return "ComputeShader";
  8080. case PipelineStageFlagBits::eTransfer : return "Transfer";
  8081. case PipelineStageFlagBits::eBottomOfPipe : return "BottomOfPipe";
  8082. case PipelineStageFlagBits::eHost : return "Host";
  8083. case PipelineStageFlagBits::eAllGraphics : return "AllGraphics";
  8084. case PipelineStageFlagBits::eAllCommands : return "AllCommands";
  8085. case PipelineStageFlagBits::eTransformFeedbackEXT : return "TransformFeedbackEXT";
  8086. case PipelineStageFlagBits::eConditionalRenderingEXT : return "ConditionalRenderingEXT";
  8087. case PipelineStageFlagBits::eCommandProcessNVX : return "CommandProcessNVX";
  8088. case PipelineStageFlagBits::eShadingRateImageNV : return "ShadingRateImageNV";
  8089. case PipelineStageFlagBits::eRayTracingShaderNV : return "RayTracingShaderNV";
  8090. case PipelineStageFlagBits::eAccelerationStructureBuildNV : return "AccelerationStructureBuildNV";
  8091. case PipelineStageFlagBits::eTaskShaderNV : return "TaskShaderNV";
  8092. case PipelineStageFlagBits::eMeshShaderNV : return "MeshShaderNV";
  8093. case PipelineStageFlagBits::eFragmentDensityProcessEXT : return "FragmentDensityProcessEXT";
  8094. default: return "invalid";
  8095. }
  8096. }
  8097. using PipelineStageFlags = Flags<PipelineStageFlagBits, VkPipelineStageFlags>;
  8098. VULKAN_HPP_INLINE PipelineStageFlags operator|( PipelineStageFlagBits bit0, PipelineStageFlagBits bit1 )
  8099. {
  8100. return PipelineStageFlags( bit0 ) | bit1;
  8101. }
  8102. VULKAN_HPP_INLINE PipelineStageFlags operator~( PipelineStageFlagBits bits )
  8103. {
  8104. return ~( PipelineStageFlags( bits ) );
  8105. }
  8106. template <> struct FlagTraits<PipelineStageFlagBits>
  8107. {
  8108. enum
  8109. {
  8110. allFlags = VkFlags(PipelineStageFlagBits::eTopOfPipe) | VkFlags(PipelineStageFlagBits::eDrawIndirect) | VkFlags(PipelineStageFlagBits::eVertexInput) | VkFlags(PipelineStageFlagBits::eVertexShader) | VkFlags(PipelineStageFlagBits::eTessellationControlShader) | VkFlags(PipelineStageFlagBits::eTessellationEvaluationShader) | VkFlags(PipelineStageFlagBits::eGeometryShader) | VkFlags(PipelineStageFlagBits::eFragmentShader) | VkFlags(PipelineStageFlagBits::eEarlyFragmentTests) | VkFlags(PipelineStageFlagBits::eLateFragmentTests) | VkFlags(PipelineStageFlagBits::eColorAttachmentOutput) | VkFlags(PipelineStageFlagBits::eComputeShader) | VkFlags(PipelineStageFlagBits::eTransfer) | VkFlags(PipelineStageFlagBits::eBottomOfPipe) | VkFlags(PipelineStageFlagBits::eHost) | VkFlags(PipelineStageFlagBits::eAllGraphics) | VkFlags(PipelineStageFlagBits::eAllCommands) | VkFlags(PipelineStageFlagBits::eTransformFeedbackEXT) | VkFlags(PipelineStageFlagBits::eConditionalRenderingEXT) | VkFlags(PipelineStageFlagBits::eCommandProcessNVX) | VkFlags(PipelineStageFlagBits::eShadingRateImageNV) | VkFlags(PipelineStageFlagBits::eRayTracingShaderNV) | VkFlags(PipelineStageFlagBits::eAccelerationStructureBuildNV) | VkFlags(PipelineStageFlagBits::eTaskShaderNV) | VkFlags(PipelineStageFlagBits::eMeshShaderNV) | VkFlags(PipelineStageFlagBits::eFragmentDensityProcessEXT)
  8111. };
  8112. };
  8113. VULKAN_HPP_INLINE std::string to_string( PipelineStageFlags value )
  8114. {
  8115. if ( !value ) return "{}";
  8116. std::string result;
  8117. if ( value & PipelineStageFlagBits::eTopOfPipe ) result += "TopOfPipe | ";
  8118. if ( value & PipelineStageFlagBits::eDrawIndirect ) result += "DrawIndirect | ";
  8119. if ( value & PipelineStageFlagBits::eVertexInput ) result += "VertexInput | ";
  8120. if ( value & PipelineStageFlagBits::eVertexShader ) result += "VertexShader | ";
  8121. if ( value & PipelineStageFlagBits::eTessellationControlShader ) result += "TessellationControlShader | ";
  8122. if ( value & PipelineStageFlagBits::eTessellationEvaluationShader ) result += "TessellationEvaluationShader | ";
  8123. if ( value & PipelineStageFlagBits::eGeometryShader ) result += "GeometryShader | ";
  8124. if ( value & PipelineStageFlagBits::eFragmentShader ) result += "FragmentShader | ";
  8125. if ( value & PipelineStageFlagBits::eEarlyFragmentTests ) result += "EarlyFragmentTests | ";
  8126. if ( value & PipelineStageFlagBits::eLateFragmentTests ) result += "LateFragmentTests | ";
  8127. if ( value & PipelineStageFlagBits::eColorAttachmentOutput ) result += "ColorAttachmentOutput | ";
  8128. if ( value & PipelineStageFlagBits::eComputeShader ) result += "ComputeShader | ";
  8129. if ( value & PipelineStageFlagBits::eTransfer ) result += "Transfer | ";
  8130. if ( value & PipelineStageFlagBits::eBottomOfPipe ) result += "BottomOfPipe | ";
  8131. if ( value & PipelineStageFlagBits::eHost ) result += "Host | ";
  8132. if ( value & PipelineStageFlagBits::eAllGraphics ) result += "AllGraphics | ";
  8133. if ( value & PipelineStageFlagBits::eAllCommands ) result += "AllCommands | ";
  8134. if ( value & PipelineStageFlagBits::eTransformFeedbackEXT ) result += "TransformFeedbackEXT | ";
  8135. if ( value & PipelineStageFlagBits::eConditionalRenderingEXT ) result += "ConditionalRenderingEXT | ";
  8136. if ( value & PipelineStageFlagBits::eCommandProcessNVX ) result += "CommandProcessNVX | ";
  8137. if ( value & PipelineStageFlagBits::eShadingRateImageNV ) result += "ShadingRateImageNV | ";
  8138. if ( value & PipelineStageFlagBits::eRayTracingShaderNV ) result += "RayTracingShaderNV | ";
  8139. if ( value & PipelineStageFlagBits::eAccelerationStructureBuildNV ) result += "AccelerationStructureBuildNV | ";
  8140. if ( value & PipelineStageFlagBits::eTaskShaderNV ) result += "TaskShaderNV | ";
  8141. if ( value & PipelineStageFlagBits::eMeshShaderNV ) result += "MeshShaderNV | ";
  8142. if ( value & PipelineStageFlagBits::eFragmentDensityProcessEXT ) result += "FragmentDensityProcessEXT | ";
  8143. return "{ " + result.substr(0, result.size() - 3) + " }";
  8144. }
  8145. enum class PipelineTessellationStateCreateFlagBits
  8146. {};
  8147. VULKAN_HPP_INLINE std::string to_string( PipelineTessellationStateCreateFlagBits )
  8148. {
  8149. return "(void)";
  8150. }
  8151. using PipelineTessellationStateCreateFlags = Flags<PipelineTessellationStateCreateFlagBits, VkPipelineTessellationStateCreateFlags>;
  8152. VULKAN_HPP_INLINE std::string to_string( PipelineTessellationStateCreateFlags )
  8153. {
  8154. return "{}";
  8155. }
  8156. enum class PipelineVertexInputStateCreateFlagBits
  8157. {};
  8158. VULKAN_HPP_INLINE std::string to_string( PipelineVertexInputStateCreateFlagBits )
  8159. {
  8160. return "(void)";
  8161. }
  8162. using PipelineVertexInputStateCreateFlags = Flags<PipelineVertexInputStateCreateFlagBits, VkPipelineVertexInputStateCreateFlags>;
  8163. VULKAN_HPP_INLINE std::string to_string( PipelineVertexInputStateCreateFlags )
  8164. {
  8165. return "{}";
  8166. }
  8167. enum class PipelineViewportStateCreateFlagBits
  8168. {};
  8169. VULKAN_HPP_INLINE std::string to_string( PipelineViewportStateCreateFlagBits )
  8170. {
  8171. return "(void)";
  8172. }
  8173. using PipelineViewportStateCreateFlags = Flags<PipelineViewportStateCreateFlagBits, VkPipelineViewportStateCreateFlags>;
  8174. VULKAN_HPP_INLINE std::string to_string( PipelineViewportStateCreateFlags )
  8175. {
  8176. return "{}";
  8177. }
  8178. enum class PipelineViewportSwizzleStateCreateFlagBitsNV
  8179. {};
  8180. VULKAN_HPP_INLINE std::string to_string( PipelineViewportSwizzleStateCreateFlagBitsNV )
  8181. {
  8182. return "(void)";
  8183. }
  8184. using PipelineViewportSwizzleStateCreateFlagsNV = Flags<PipelineViewportSwizzleStateCreateFlagBitsNV, VkPipelineViewportSwizzleStateCreateFlagsNV>;
  8185. VULKAN_HPP_INLINE std::string to_string( PipelineViewportSwizzleStateCreateFlagsNV )
  8186. {
  8187. return "{}";
  8188. }
  8189. enum class QueryControlFlagBits
  8190. {
  8191. ePrecise = VK_QUERY_CONTROL_PRECISE_BIT
  8192. };
  8193. VULKAN_HPP_INLINE std::string to_string( QueryControlFlagBits value )
  8194. {
  8195. switch ( value )
  8196. {
  8197. case QueryControlFlagBits::ePrecise : return "Precise";
  8198. default: return "invalid";
  8199. }
  8200. }
  8201. using QueryControlFlags = Flags<QueryControlFlagBits, VkQueryControlFlags>;
  8202. VULKAN_HPP_INLINE QueryControlFlags operator|( QueryControlFlagBits bit0, QueryControlFlagBits bit1 )
  8203. {
  8204. return QueryControlFlags( bit0 ) | bit1;
  8205. }
  8206. VULKAN_HPP_INLINE QueryControlFlags operator~( QueryControlFlagBits bits )
  8207. {
  8208. return ~( QueryControlFlags( bits ) );
  8209. }
  8210. template <> struct FlagTraits<QueryControlFlagBits>
  8211. {
  8212. enum
  8213. {
  8214. allFlags = VkFlags(QueryControlFlagBits::ePrecise)
  8215. };
  8216. };
  8217. VULKAN_HPP_INLINE std::string to_string( QueryControlFlags value )
  8218. {
  8219. if ( !value ) return "{}";
  8220. std::string result;
  8221. if ( value & QueryControlFlagBits::ePrecise ) result += "Precise | ";
  8222. return "{ " + result.substr(0, result.size() - 3) + " }";
  8223. }
  8224. enum class QueryPipelineStatisticFlagBits
  8225. {
  8226. eInputAssemblyVertices = VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT,
  8227. eInputAssemblyPrimitives = VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT,
  8228. eVertexShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT,
  8229. eGeometryShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT,
  8230. eGeometryShaderPrimitives = VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT,
  8231. eClippingInvocations = VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT,
  8232. eClippingPrimitives = VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT,
  8233. eFragmentShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT,
  8234. eTessellationControlShaderPatches = VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT,
  8235. eTessellationEvaluationShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT,
  8236. eComputeShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT
  8237. };
  8238. VULKAN_HPP_INLINE std::string to_string( QueryPipelineStatisticFlagBits value )
  8239. {
  8240. switch ( value )
  8241. {
  8242. case QueryPipelineStatisticFlagBits::eInputAssemblyVertices : return "InputAssemblyVertices";
  8243. case QueryPipelineStatisticFlagBits::eInputAssemblyPrimitives : return "InputAssemblyPrimitives";
  8244. case QueryPipelineStatisticFlagBits::eVertexShaderInvocations : return "VertexShaderInvocations";
  8245. case QueryPipelineStatisticFlagBits::eGeometryShaderInvocations : return "GeometryShaderInvocations";
  8246. case QueryPipelineStatisticFlagBits::eGeometryShaderPrimitives : return "GeometryShaderPrimitives";
  8247. case QueryPipelineStatisticFlagBits::eClippingInvocations : return "ClippingInvocations";
  8248. case QueryPipelineStatisticFlagBits::eClippingPrimitives : return "ClippingPrimitives";
  8249. case QueryPipelineStatisticFlagBits::eFragmentShaderInvocations : return "FragmentShaderInvocations";
  8250. case QueryPipelineStatisticFlagBits::eTessellationControlShaderPatches : return "TessellationControlShaderPatches";
  8251. case QueryPipelineStatisticFlagBits::eTessellationEvaluationShaderInvocations : return "TessellationEvaluationShaderInvocations";
  8252. case QueryPipelineStatisticFlagBits::eComputeShaderInvocations : return "ComputeShaderInvocations";
  8253. default: return "invalid";
  8254. }
  8255. }
  8256. using QueryPipelineStatisticFlags = Flags<QueryPipelineStatisticFlagBits, VkQueryPipelineStatisticFlags>;
  8257. VULKAN_HPP_INLINE QueryPipelineStatisticFlags operator|( QueryPipelineStatisticFlagBits bit0, QueryPipelineStatisticFlagBits bit1 )
  8258. {
  8259. return QueryPipelineStatisticFlags( bit0 ) | bit1;
  8260. }
  8261. VULKAN_HPP_INLINE QueryPipelineStatisticFlags operator~( QueryPipelineStatisticFlagBits bits )
  8262. {
  8263. return ~( QueryPipelineStatisticFlags( bits ) );
  8264. }
  8265. template <> struct FlagTraits<QueryPipelineStatisticFlagBits>
  8266. {
  8267. enum
  8268. {
  8269. allFlags = VkFlags(QueryPipelineStatisticFlagBits::eInputAssemblyVertices) | VkFlags(QueryPipelineStatisticFlagBits::eInputAssemblyPrimitives) | VkFlags(QueryPipelineStatisticFlagBits::eVertexShaderInvocations) | VkFlags(QueryPipelineStatisticFlagBits::eGeometryShaderInvocations) | VkFlags(QueryPipelineStatisticFlagBits::eGeometryShaderPrimitives) | VkFlags(QueryPipelineStatisticFlagBits::eClippingInvocations) | VkFlags(QueryPipelineStatisticFlagBits::eClippingPrimitives) | VkFlags(QueryPipelineStatisticFlagBits::eFragmentShaderInvocations) | VkFlags(QueryPipelineStatisticFlagBits::eTessellationControlShaderPatches) | VkFlags(QueryPipelineStatisticFlagBits::eTessellationEvaluationShaderInvocations) | VkFlags(QueryPipelineStatisticFlagBits::eComputeShaderInvocations)
  8270. };
  8271. };
  8272. VULKAN_HPP_INLINE std::string to_string( QueryPipelineStatisticFlags value )
  8273. {
  8274. if ( !value ) return "{}";
  8275. std::string result;
  8276. if ( value & QueryPipelineStatisticFlagBits::eInputAssemblyVertices ) result += "InputAssemblyVertices | ";
  8277. if ( value & QueryPipelineStatisticFlagBits::eInputAssemblyPrimitives ) result += "InputAssemblyPrimitives | ";
  8278. if ( value & QueryPipelineStatisticFlagBits::eVertexShaderInvocations ) result += "VertexShaderInvocations | ";
  8279. if ( value & QueryPipelineStatisticFlagBits::eGeometryShaderInvocations ) result += "GeometryShaderInvocations | ";
  8280. if ( value & QueryPipelineStatisticFlagBits::eGeometryShaderPrimitives ) result += "GeometryShaderPrimitives | ";
  8281. if ( value & QueryPipelineStatisticFlagBits::eClippingInvocations ) result += "ClippingInvocations | ";
  8282. if ( value & QueryPipelineStatisticFlagBits::eClippingPrimitives ) result += "ClippingPrimitives | ";
  8283. if ( value & QueryPipelineStatisticFlagBits::eFragmentShaderInvocations ) result += "FragmentShaderInvocations | ";
  8284. if ( value & QueryPipelineStatisticFlagBits::eTessellationControlShaderPatches ) result += "TessellationControlShaderPatches | ";
  8285. if ( value & QueryPipelineStatisticFlagBits::eTessellationEvaluationShaderInvocations ) result += "TessellationEvaluationShaderInvocations | ";
  8286. if ( value & QueryPipelineStatisticFlagBits::eComputeShaderInvocations ) result += "ComputeShaderInvocations | ";
  8287. return "{ " + result.substr(0, result.size() - 3) + " }";
  8288. }
  8289. enum class QueryPoolCreateFlagBits
  8290. {};
  8291. VULKAN_HPP_INLINE std::string to_string( QueryPoolCreateFlagBits )
  8292. {
  8293. return "(void)";
  8294. }
  8295. using QueryPoolCreateFlags = Flags<QueryPoolCreateFlagBits, VkQueryPoolCreateFlags>;
  8296. VULKAN_HPP_INLINE std::string to_string( QueryPoolCreateFlags )
  8297. {
  8298. return "{}";
  8299. }
  8300. enum class QueryResultFlagBits
  8301. {
  8302. e64 = VK_QUERY_RESULT_64_BIT,
  8303. eWait = VK_QUERY_RESULT_WAIT_BIT,
  8304. eWithAvailability = VK_QUERY_RESULT_WITH_AVAILABILITY_BIT,
  8305. ePartial = VK_QUERY_RESULT_PARTIAL_BIT
  8306. };
  8307. VULKAN_HPP_INLINE std::string to_string( QueryResultFlagBits value )
  8308. {
  8309. switch ( value )
  8310. {
  8311. case QueryResultFlagBits::e64 : return "64";
  8312. case QueryResultFlagBits::eWait : return "Wait";
  8313. case QueryResultFlagBits::eWithAvailability : return "WithAvailability";
  8314. case QueryResultFlagBits::ePartial : return "Partial";
  8315. default: return "invalid";
  8316. }
  8317. }
  8318. using QueryResultFlags = Flags<QueryResultFlagBits, VkQueryResultFlags>;
  8319. VULKAN_HPP_INLINE QueryResultFlags operator|( QueryResultFlagBits bit0, QueryResultFlagBits bit1 )
  8320. {
  8321. return QueryResultFlags( bit0 ) | bit1;
  8322. }
  8323. VULKAN_HPP_INLINE QueryResultFlags operator~( QueryResultFlagBits bits )
  8324. {
  8325. return ~( QueryResultFlags( bits ) );
  8326. }
  8327. template <> struct FlagTraits<QueryResultFlagBits>
  8328. {
  8329. enum
  8330. {
  8331. allFlags = VkFlags(QueryResultFlagBits::e64) | VkFlags(QueryResultFlagBits::eWait) | VkFlags(QueryResultFlagBits::eWithAvailability) | VkFlags(QueryResultFlagBits::ePartial)
  8332. };
  8333. };
  8334. VULKAN_HPP_INLINE std::string to_string( QueryResultFlags value )
  8335. {
  8336. if ( !value ) return "{}";
  8337. std::string result;
  8338. if ( value & QueryResultFlagBits::e64 ) result += "64 | ";
  8339. if ( value & QueryResultFlagBits::eWait ) result += "Wait | ";
  8340. if ( value & QueryResultFlagBits::eWithAvailability ) result += "WithAvailability | ";
  8341. if ( value & QueryResultFlagBits::ePartial ) result += "Partial | ";
  8342. return "{ " + result.substr(0, result.size() - 3) + " }";
  8343. }
  8344. enum class QueueFlagBits
  8345. {
  8346. eGraphics = VK_QUEUE_GRAPHICS_BIT,
  8347. eCompute = VK_QUEUE_COMPUTE_BIT,
  8348. eTransfer = VK_QUEUE_TRANSFER_BIT,
  8349. eSparseBinding = VK_QUEUE_SPARSE_BINDING_BIT,
  8350. eProtected = VK_QUEUE_PROTECTED_BIT
  8351. };
  8352. VULKAN_HPP_INLINE std::string to_string( QueueFlagBits value )
  8353. {
  8354. switch ( value )
  8355. {
  8356. case QueueFlagBits::eGraphics : return "Graphics";
  8357. case QueueFlagBits::eCompute : return "Compute";
  8358. case QueueFlagBits::eTransfer : return "Transfer";
  8359. case QueueFlagBits::eSparseBinding : return "SparseBinding";
  8360. case QueueFlagBits::eProtected : return "Protected";
  8361. default: return "invalid";
  8362. }
  8363. }
  8364. using QueueFlags = Flags<QueueFlagBits, VkQueueFlags>;
  8365. VULKAN_HPP_INLINE QueueFlags operator|( QueueFlagBits bit0, QueueFlagBits bit1 )
  8366. {
  8367. return QueueFlags( bit0 ) | bit1;
  8368. }
  8369. VULKAN_HPP_INLINE QueueFlags operator~( QueueFlagBits bits )
  8370. {
  8371. return ~( QueueFlags( bits ) );
  8372. }
  8373. template <> struct FlagTraits<QueueFlagBits>
  8374. {
  8375. enum
  8376. {
  8377. allFlags = VkFlags(QueueFlagBits::eGraphics) | VkFlags(QueueFlagBits::eCompute) | VkFlags(QueueFlagBits::eTransfer) | VkFlags(QueueFlagBits::eSparseBinding) | VkFlags(QueueFlagBits::eProtected)
  8378. };
  8379. };
  8380. VULKAN_HPP_INLINE std::string to_string( QueueFlags value )
  8381. {
  8382. if ( !value ) return "{}";
  8383. std::string result;
  8384. if ( value & QueueFlagBits::eGraphics ) result += "Graphics | ";
  8385. if ( value & QueueFlagBits::eCompute ) result += "Compute | ";
  8386. if ( value & QueueFlagBits::eTransfer ) result += "Transfer | ";
  8387. if ( value & QueueFlagBits::eSparseBinding ) result += "SparseBinding | ";
  8388. if ( value & QueueFlagBits::eProtected ) result += "Protected | ";
  8389. return "{ " + result.substr(0, result.size() - 3) + " }";
  8390. }
  8391. enum class RenderPassCreateFlagBits
  8392. {};
  8393. VULKAN_HPP_INLINE std::string to_string( RenderPassCreateFlagBits )
  8394. {
  8395. return "(void)";
  8396. }
  8397. using RenderPassCreateFlags = Flags<RenderPassCreateFlagBits, VkRenderPassCreateFlags>;
  8398. VULKAN_HPP_INLINE std::string to_string( RenderPassCreateFlags )
  8399. {
  8400. return "{}";
  8401. }
  8402. enum class ResolveModeFlagBitsKHR
  8403. {
  8404. eNone = VK_RESOLVE_MODE_NONE_KHR,
  8405. eSampleZero = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR,
  8406. eAverage = VK_RESOLVE_MODE_AVERAGE_BIT_KHR,
  8407. eMin = VK_RESOLVE_MODE_MIN_BIT_KHR,
  8408. eMax = VK_RESOLVE_MODE_MAX_BIT_KHR
  8409. };
  8410. VULKAN_HPP_INLINE std::string to_string( ResolveModeFlagBitsKHR value )
  8411. {
  8412. switch ( value )
  8413. {
  8414. case ResolveModeFlagBitsKHR::eNone : return "None";
  8415. case ResolveModeFlagBitsKHR::eSampleZero : return "SampleZero";
  8416. case ResolveModeFlagBitsKHR::eAverage : return "Average";
  8417. case ResolveModeFlagBitsKHR::eMin : return "Min";
  8418. case ResolveModeFlagBitsKHR::eMax : return "Max";
  8419. default: return "invalid";
  8420. }
  8421. }
  8422. using ResolveModeFlagsKHR = Flags<ResolveModeFlagBitsKHR, VkResolveModeFlagsKHR>;
  8423. VULKAN_HPP_INLINE ResolveModeFlagsKHR operator|( ResolveModeFlagBitsKHR bit0, ResolveModeFlagBitsKHR bit1 )
  8424. {
  8425. return ResolveModeFlagsKHR( bit0 ) | bit1;
  8426. }
  8427. VULKAN_HPP_INLINE ResolveModeFlagsKHR operator~( ResolveModeFlagBitsKHR bits )
  8428. {
  8429. return ~( ResolveModeFlagsKHR( bits ) );
  8430. }
  8431. template <> struct FlagTraits<ResolveModeFlagBitsKHR>
  8432. {
  8433. enum
  8434. {
  8435. allFlags = VkFlags(ResolveModeFlagBitsKHR::eNone) | VkFlags(ResolveModeFlagBitsKHR::eSampleZero) | VkFlags(ResolveModeFlagBitsKHR::eAverage) | VkFlags(ResolveModeFlagBitsKHR::eMin) | VkFlags(ResolveModeFlagBitsKHR::eMax)
  8436. };
  8437. };
  8438. VULKAN_HPP_INLINE std::string to_string( ResolveModeFlagsKHR value )
  8439. {
  8440. if ( !value ) return "{}";
  8441. std::string result;
  8442. if ( value & ResolveModeFlagBitsKHR::eSampleZero ) result += "SampleZero | ";
  8443. if ( value & ResolveModeFlagBitsKHR::eAverage ) result += "Average | ";
  8444. if ( value & ResolveModeFlagBitsKHR::eMin ) result += "Min | ";
  8445. if ( value & ResolveModeFlagBitsKHR::eMax ) result += "Max | ";
  8446. return "{ " + result.substr(0, result.size() - 3) + " }";
  8447. }
  8448. enum class SampleCountFlagBits
  8449. {
  8450. e1 = VK_SAMPLE_COUNT_1_BIT,
  8451. e2 = VK_SAMPLE_COUNT_2_BIT,
  8452. e4 = VK_SAMPLE_COUNT_4_BIT,
  8453. e8 = VK_SAMPLE_COUNT_8_BIT,
  8454. e16 = VK_SAMPLE_COUNT_16_BIT,
  8455. e32 = VK_SAMPLE_COUNT_32_BIT,
  8456. e64 = VK_SAMPLE_COUNT_64_BIT
  8457. };
  8458. VULKAN_HPP_INLINE std::string to_string( SampleCountFlagBits value )
  8459. {
  8460. switch ( value )
  8461. {
  8462. case SampleCountFlagBits::e1 : return "1";
  8463. case SampleCountFlagBits::e2 : return "2";
  8464. case SampleCountFlagBits::e4 : return "4";
  8465. case SampleCountFlagBits::e8 : return "8";
  8466. case SampleCountFlagBits::e16 : return "16";
  8467. case SampleCountFlagBits::e32 : return "32";
  8468. case SampleCountFlagBits::e64 : return "64";
  8469. default: return "invalid";
  8470. }
  8471. }
  8472. using SampleCountFlags = Flags<SampleCountFlagBits, VkSampleCountFlags>;
  8473. VULKAN_HPP_INLINE SampleCountFlags operator|( SampleCountFlagBits bit0, SampleCountFlagBits bit1 )
  8474. {
  8475. return SampleCountFlags( bit0 ) | bit1;
  8476. }
  8477. VULKAN_HPP_INLINE SampleCountFlags operator~( SampleCountFlagBits bits )
  8478. {
  8479. return ~( SampleCountFlags( bits ) );
  8480. }
  8481. template <> struct FlagTraits<SampleCountFlagBits>
  8482. {
  8483. enum
  8484. {
  8485. allFlags = VkFlags(SampleCountFlagBits::e1) | VkFlags(SampleCountFlagBits::e2) | VkFlags(SampleCountFlagBits::e4) | VkFlags(SampleCountFlagBits::e8) | VkFlags(SampleCountFlagBits::e16) | VkFlags(SampleCountFlagBits::e32) | VkFlags(SampleCountFlagBits::e64)
  8486. };
  8487. };
  8488. VULKAN_HPP_INLINE std::string to_string( SampleCountFlags value )
  8489. {
  8490. if ( !value ) return "{}";
  8491. std::string result;
  8492. if ( value & SampleCountFlagBits::e1 ) result += "1 | ";
  8493. if ( value & SampleCountFlagBits::e2 ) result += "2 | ";
  8494. if ( value & SampleCountFlagBits::e4 ) result += "4 | ";
  8495. if ( value & SampleCountFlagBits::e8 ) result += "8 | ";
  8496. if ( value & SampleCountFlagBits::e16 ) result += "16 | ";
  8497. if ( value & SampleCountFlagBits::e32 ) result += "32 | ";
  8498. if ( value & SampleCountFlagBits::e64 ) result += "64 | ";
  8499. return "{ " + result.substr(0, result.size() - 3) + " }";
  8500. }
  8501. enum class SamplerCreateFlagBits
  8502. {
  8503. eSubsampledEXT = VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT,
  8504. eSubsampledCoarseReconstructionEXT = VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT
  8505. };
  8506. VULKAN_HPP_INLINE std::string to_string( SamplerCreateFlagBits value )
  8507. {
  8508. switch ( value )
  8509. {
  8510. case SamplerCreateFlagBits::eSubsampledEXT : return "SubsampledEXT";
  8511. case SamplerCreateFlagBits::eSubsampledCoarseReconstructionEXT : return "SubsampledCoarseReconstructionEXT";
  8512. default: return "invalid";
  8513. }
  8514. }
  8515. using SamplerCreateFlags = Flags<SamplerCreateFlagBits, VkSamplerCreateFlags>;
  8516. VULKAN_HPP_INLINE SamplerCreateFlags operator|( SamplerCreateFlagBits bit0, SamplerCreateFlagBits bit1 )
  8517. {
  8518. return SamplerCreateFlags( bit0 ) | bit1;
  8519. }
  8520. VULKAN_HPP_INLINE SamplerCreateFlags operator~( SamplerCreateFlagBits bits )
  8521. {
  8522. return ~( SamplerCreateFlags( bits ) );
  8523. }
  8524. template <> struct FlagTraits<SamplerCreateFlagBits>
  8525. {
  8526. enum
  8527. {
  8528. allFlags = VkFlags(SamplerCreateFlagBits::eSubsampledEXT) | VkFlags(SamplerCreateFlagBits::eSubsampledCoarseReconstructionEXT)
  8529. };
  8530. };
  8531. VULKAN_HPP_INLINE std::string to_string( SamplerCreateFlags value )
  8532. {
  8533. if ( !value ) return "{}";
  8534. std::string result;
  8535. if ( value & SamplerCreateFlagBits::eSubsampledEXT ) result += "SubsampledEXT | ";
  8536. if ( value & SamplerCreateFlagBits::eSubsampledCoarseReconstructionEXT ) result += "SubsampledCoarseReconstructionEXT | ";
  8537. return "{ " + result.substr(0, result.size() - 3) + " }";
  8538. }
  8539. enum class SemaphoreCreateFlagBits
  8540. {};
  8541. VULKAN_HPP_INLINE std::string to_string( SemaphoreCreateFlagBits )
  8542. {
  8543. return "(void)";
  8544. }
  8545. using SemaphoreCreateFlags = Flags<SemaphoreCreateFlagBits, VkSemaphoreCreateFlags>;
  8546. VULKAN_HPP_INLINE std::string to_string( SemaphoreCreateFlags )
  8547. {
  8548. return "{}";
  8549. }
  8550. enum class SemaphoreImportFlagBits
  8551. {
  8552. eTemporary = VK_SEMAPHORE_IMPORT_TEMPORARY_BIT,
  8553. eTemporaryKHR = VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR
  8554. };
  8555. VULKAN_HPP_INLINE std::string to_string( SemaphoreImportFlagBits value )
  8556. {
  8557. switch ( value )
  8558. {
  8559. case SemaphoreImportFlagBits::eTemporary : return "Temporary";
  8560. default: return "invalid";
  8561. }
  8562. }
  8563. using SemaphoreImportFlags = Flags<SemaphoreImportFlagBits, VkSemaphoreImportFlags>;
  8564. VULKAN_HPP_INLINE SemaphoreImportFlags operator|( SemaphoreImportFlagBits bit0, SemaphoreImportFlagBits bit1 )
  8565. {
  8566. return SemaphoreImportFlags( bit0 ) | bit1;
  8567. }
  8568. VULKAN_HPP_INLINE SemaphoreImportFlags operator~( SemaphoreImportFlagBits bits )
  8569. {
  8570. return ~( SemaphoreImportFlags( bits ) );
  8571. }
  8572. template <> struct FlagTraits<SemaphoreImportFlagBits>
  8573. {
  8574. enum
  8575. {
  8576. allFlags = VkFlags(SemaphoreImportFlagBits::eTemporary)
  8577. };
  8578. };
  8579. using SemaphoreImportFlagsKHR = SemaphoreImportFlags;
  8580. VULKAN_HPP_INLINE std::string to_string( SemaphoreImportFlags value )
  8581. {
  8582. if ( !value ) return "{}";
  8583. std::string result;
  8584. if ( value & SemaphoreImportFlagBits::eTemporary ) result += "Temporary | ";
  8585. return "{ " + result.substr(0, result.size() - 3) + " }";
  8586. }
  8587. enum class ShaderModuleCreateFlagBits
  8588. {};
  8589. VULKAN_HPP_INLINE std::string to_string( ShaderModuleCreateFlagBits )
  8590. {
  8591. return "(void)";
  8592. }
  8593. using ShaderModuleCreateFlags = Flags<ShaderModuleCreateFlagBits, VkShaderModuleCreateFlags>;
  8594. VULKAN_HPP_INLINE std::string to_string( ShaderModuleCreateFlags )
  8595. {
  8596. return "{}";
  8597. }
  8598. enum class ShaderStageFlagBits
  8599. {
  8600. eVertex = VK_SHADER_STAGE_VERTEX_BIT,
  8601. eTessellationControl = VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT,
  8602. eTessellationEvaluation = VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT,
  8603. eGeometry = VK_SHADER_STAGE_GEOMETRY_BIT,
  8604. eFragment = VK_SHADER_STAGE_FRAGMENT_BIT,
  8605. eCompute = VK_SHADER_STAGE_COMPUTE_BIT,
  8606. eAllGraphics = VK_SHADER_STAGE_ALL_GRAPHICS,
  8607. eAll = VK_SHADER_STAGE_ALL,
  8608. eRaygenNV = VK_SHADER_STAGE_RAYGEN_BIT_NV,
  8609. eAnyHitNV = VK_SHADER_STAGE_ANY_HIT_BIT_NV,
  8610. eClosestHitNV = VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV,
  8611. eMissNV = VK_SHADER_STAGE_MISS_BIT_NV,
  8612. eIntersectionNV = VK_SHADER_STAGE_INTERSECTION_BIT_NV,
  8613. eCallableNV = VK_SHADER_STAGE_CALLABLE_BIT_NV,
  8614. eTaskNV = VK_SHADER_STAGE_TASK_BIT_NV,
  8615. eMeshNV = VK_SHADER_STAGE_MESH_BIT_NV
  8616. };
  8617. VULKAN_HPP_INLINE std::string to_string( ShaderStageFlagBits value )
  8618. {
  8619. switch ( value )
  8620. {
  8621. case ShaderStageFlagBits::eVertex : return "Vertex";
  8622. case ShaderStageFlagBits::eTessellationControl : return "TessellationControl";
  8623. case ShaderStageFlagBits::eTessellationEvaluation : return "TessellationEvaluation";
  8624. case ShaderStageFlagBits::eGeometry : return "Geometry";
  8625. case ShaderStageFlagBits::eFragment : return "Fragment";
  8626. case ShaderStageFlagBits::eCompute : return "Compute";
  8627. case ShaderStageFlagBits::eAllGraphics : return "AllGraphics";
  8628. case ShaderStageFlagBits::eAll : return "All";
  8629. case ShaderStageFlagBits::eRaygenNV : return "RaygenNV";
  8630. case ShaderStageFlagBits::eAnyHitNV : return "AnyHitNV";
  8631. case ShaderStageFlagBits::eClosestHitNV : return "ClosestHitNV";
  8632. case ShaderStageFlagBits::eMissNV : return "MissNV";
  8633. case ShaderStageFlagBits::eIntersectionNV : return "IntersectionNV";
  8634. case ShaderStageFlagBits::eCallableNV : return "CallableNV";
  8635. case ShaderStageFlagBits::eTaskNV : return "TaskNV";
  8636. case ShaderStageFlagBits::eMeshNV : return "MeshNV";
  8637. default: return "invalid";
  8638. }
  8639. }
  8640. using ShaderStageFlags = Flags<ShaderStageFlagBits, VkShaderStageFlags>;
  8641. VULKAN_HPP_INLINE ShaderStageFlags operator|( ShaderStageFlagBits bit0, ShaderStageFlagBits bit1 )
  8642. {
  8643. return ShaderStageFlags( bit0 ) | bit1;
  8644. }
  8645. VULKAN_HPP_INLINE ShaderStageFlags operator~( ShaderStageFlagBits bits )
  8646. {
  8647. return ~( ShaderStageFlags( bits ) );
  8648. }
  8649. template <> struct FlagTraits<ShaderStageFlagBits>
  8650. {
  8651. enum
  8652. {
  8653. allFlags = VkFlags(ShaderStageFlagBits::eVertex) | VkFlags(ShaderStageFlagBits::eTessellationControl) | VkFlags(ShaderStageFlagBits::eTessellationEvaluation) | VkFlags(ShaderStageFlagBits::eGeometry) | VkFlags(ShaderStageFlagBits::eFragment) | VkFlags(ShaderStageFlagBits::eCompute) | VkFlags(ShaderStageFlagBits::eAllGraphics) | VkFlags(ShaderStageFlagBits::eAll) | VkFlags(ShaderStageFlagBits::eRaygenNV) | VkFlags(ShaderStageFlagBits::eAnyHitNV) | VkFlags(ShaderStageFlagBits::eClosestHitNV) | VkFlags(ShaderStageFlagBits::eMissNV) | VkFlags(ShaderStageFlagBits::eIntersectionNV) | VkFlags(ShaderStageFlagBits::eCallableNV) | VkFlags(ShaderStageFlagBits::eTaskNV) | VkFlags(ShaderStageFlagBits::eMeshNV)
  8654. };
  8655. };
  8656. VULKAN_HPP_INLINE std::string to_string( ShaderStageFlags value )
  8657. {
  8658. if ( !value ) return "{}";
  8659. std::string result;
  8660. if ( value & ShaderStageFlagBits::eVertex ) result += "Vertex | ";
  8661. if ( value & ShaderStageFlagBits::eTessellationControl ) result += "TessellationControl | ";
  8662. if ( value & ShaderStageFlagBits::eTessellationEvaluation ) result += "TessellationEvaluation | ";
  8663. if ( value & ShaderStageFlagBits::eGeometry ) result += "Geometry | ";
  8664. if ( value & ShaderStageFlagBits::eFragment ) result += "Fragment | ";
  8665. if ( value & ShaderStageFlagBits::eCompute ) result += "Compute | ";
  8666. if ( value & ShaderStageFlagBits::eRaygenNV ) result += "RaygenNV | ";
  8667. if ( value & ShaderStageFlagBits::eAnyHitNV ) result += "AnyHitNV | ";
  8668. if ( value & ShaderStageFlagBits::eClosestHitNV ) result += "ClosestHitNV | ";
  8669. if ( value & ShaderStageFlagBits::eMissNV ) result += "MissNV | ";
  8670. if ( value & ShaderStageFlagBits::eIntersectionNV ) result += "IntersectionNV | ";
  8671. if ( value & ShaderStageFlagBits::eCallableNV ) result += "CallableNV | ";
  8672. if ( value & ShaderStageFlagBits::eTaskNV ) result += "TaskNV | ";
  8673. if ( value & ShaderStageFlagBits::eMeshNV ) result += "MeshNV | ";
  8674. return "{ " + result.substr(0, result.size() - 3) + " }";
  8675. }
  8676. enum class SparseImageFormatFlagBits
  8677. {
  8678. eSingleMiptail = VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT,
  8679. eAlignedMipSize = VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT,
  8680. eNonstandardBlockSize = VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT
  8681. };
  8682. VULKAN_HPP_INLINE std::string to_string( SparseImageFormatFlagBits value )
  8683. {
  8684. switch ( value )
  8685. {
  8686. case SparseImageFormatFlagBits::eSingleMiptail : return "SingleMiptail";
  8687. case SparseImageFormatFlagBits::eAlignedMipSize : return "AlignedMipSize";
  8688. case SparseImageFormatFlagBits::eNonstandardBlockSize : return "NonstandardBlockSize";
  8689. default: return "invalid";
  8690. }
  8691. }
  8692. using SparseImageFormatFlags = Flags<SparseImageFormatFlagBits, VkSparseImageFormatFlags>;
  8693. VULKAN_HPP_INLINE SparseImageFormatFlags operator|( SparseImageFormatFlagBits bit0, SparseImageFormatFlagBits bit1 )
  8694. {
  8695. return SparseImageFormatFlags( bit0 ) | bit1;
  8696. }
  8697. VULKAN_HPP_INLINE SparseImageFormatFlags operator~( SparseImageFormatFlagBits bits )
  8698. {
  8699. return ~( SparseImageFormatFlags( bits ) );
  8700. }
  8701. template <> struct FlagTraits<SparseImageFormatFlagBits>
  8702. {
  8703. enum
  8704. {
  8705. allFlags = VkFlags(SparseImageFormatFlagBits::eSingleMiptail) | VkFlags(SparseImageFormatFlagBits::eAlignedMipSize) | VkFlags(SparseImageFormatFlagBits::eNonstandardBlockSize)
  8706. };
  8707. };
  8708. VULKAN_HPP_INLINE std::string to_string( SparseImageFormatFlags value )
  8709. {
  8710. if ( !value ) return "{}";
  8711. std::string result;
  8712. if ( value & SparseImageFormatFlagBits::eSingleMiptail ) result += "SingleMiptail | ";
  8713. if ( value & SparseImageFormatFlagBits::eAlignedMipSize ) result += "AlignedMipSize | ";
  8714. if ( value & SparseImageFormatFlagBits::eNonstandardBlockSize ) result += "NonstandardBlockSize | ";
  8715. return "{ " + result.substr(0, result.size() - 3) + " }";
  8716. }
  8717. enum class SparseMemoryBindFlagBits
  8718. {
  8719. eMetadata = VK_SPARSE_MEMORY_BIND_METADATA_BIT
  8720. };
  8721. VULKAN_HPP_INLINE std::string to_string( SparseMemoryBindFlagBits value )
  8722. {
  8723. switch ( value )
  8724. {
  8725. case SparseMemoryBindFlagBits::eMetadata : return "Metadata";
  8726. default: return "invalid";
  8727. }
  8728. }
  8729. using SparseMemoryBindFlags = Flags<SparseMemoryBindFlagBits, VkSparseMemoryBindFlags>;
  8730. VULKAN_HPP_INLINE SparseMemoryBindFlags operator|( SparseMemoryBindFlagBits bit0, SparseMemoryBindFlagBits bit1 )
  8731. {
  8732. return SparseMemoryBindFlags( bit0 ) | bit1;
  8733. }
  8734. VULKAN_HPP_INLINE SparseMemoryBindFlags operator~( SparseMemoryBindFlagBits bits )
  8735. {
  8736. return ~( SparseMemoryBindFlags( bits ) );
  8737. }
  8738. template <> struct FlagTraits<SparseMemoryBindFlagBits>
  8739. {
  8740. enum
  8741. {
  8742. allFlags = VkFlags(SparseMemoryBindFlagBits::eMetadata)
  8743. };
  8744. };
  8745. VULKAN_HPP_INLINE std::string to_string( SparseMemoryBindFlags value )
  8746. {
  8747. if ( !value ) return "{}";
  8748. std::string result;
  8749. if ( value & SparseMemoryBindFlagBits::eMetadata ) result += "Metadata | ";
  8750. return "{ " + result.substr(0, result.size() - 3) + " }";
  8751. }
  8752. enum class StencilFaceFlagBits
  8753. {
  8754. eFront = VK_STENCIL_FACE_FRONT_BIT,
  8755. eBack = VK_STENCIL_FACE_BACK_BIT,
  8756. eVkStencilFrontAndBack = VK_STENCIL_FRONT_AND_BACK
  8757. };
  8758. VULKAN_HPP_INLINE std::string to_string( StencilFaceFlagBits value )
  8759. {
  8760. switch ( value )
  8761. {
  8762. case StencilFaceFlagBits::eFront : return "Front";
  8763. case StencilFaceFlagBits::eBack : return "Back";
  8764. case StencilFaceFlagBits::eVkStencilFrontAndBack : return "VkStencilFrontAndBack";
  8765. default: return "invalid";
  8766. }
  8767. }
  8768. using StencilFaceFlags = Flags<StencilFaceFlagBits, VkStencilFaceFlags>;
  8769. VULKAN_HPP_INLINE StencilFaceFlags operator|( StencilFaceFlagBits bit0, StencilFaceFlagBits bit1 )
  8770. {
  8771. return StencilFaceFlags( bit0 ) | bit1;
  8772. }
  8773. VULKAN_HPP_INLINE StencilFaceFlags operator~( StencilFaceFlagBits bits )
  8774. {
  8775. return ~( StencilFaceFlags( bits ) );
  8776. }
  8777. template <> struct FlagTraits<StencilFaceFlagBits>
  8778. {
  8779. enum
  8780. {
  8781. allFlags = VkFlags(StencilFaceFlagBits::eFront) | VkFlags(StencilFaceFlagBits::eBack) | VkFlags(StencilFaceFlagBits::eVkStencilFrontAndBack)
  8782. };
  8783. };
  8784. VULKAN_HPP_INLINE std::string to_string( StencilFaceFlags value )
  8785. {
  8786. if ( !value ) return "{}";
  8787. std::string result;
  8788. if ( value & StencilFaceFlagBits::eFront ) result += "Front | ";
  8789. if ( value & StencilFaceFlagBits::eBack ) result += "Back | ";
  8790. return "{ " + result.substr(0, result.size() - 3) + " }";
  8791. }
  8792. #ifdef VK_USE_PLATFORM_GGP
  8793. enum class StreamDescriptorSurfaceCreateFlagBitsGGP
  8794. {};
  8795. VULKAN_HPP_INLINE std::string to_string( StreamDescriptorSurfaceCreateFlagBitsGGP )
  8796. {
  8797. return "(void)";
  8798. }
  8799. using StreamDescriptorSurfaceCreateFlagsGGP = Flags<StreamDescriptorSurfaceCreateFlagBitsGGP, VkStreamDescriptorSurfaceCreateFlagsGGP>;
  8800. VULKAN_HPP_INLINE std::string to_string( StreamDescriptorSurfaceCreateFlagsGGP )
  8801. {
  8802. return "{}";
  8803. }
  8804. #endif /*VK_USE_PLATFORM_GGP*/
  8805. enum class SubgroupFeatureFlagBits
  8806. {
  8807. eBasic = VK_SUBGROUP_FEATURE_BASIC_BIT,
  8808. eVote = VK_SUBGROUP_FEATURE_VOTE_BIT,
  8809. eArithmetic = VK_SUBGROUP_FEATURE_ARITHMETIC_BIT,
  8810. eBallot = VK_SUBGROUP_FEATURE_BALLOT_BIT,
  8811. eShuffle = VK_SUBGROUP_FEATURE_SHUFFLE_BIT,
  8812. eShuffleRelative = VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT,
  8813. eClustered = VK_SUBGROUP_FEATURE_CLUSTERED_BIT,
  8814. eQuad = VK_SUBGROUP_FEATURE_QUAD_BIT,
  8815. ePartitionedNV = VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV
  8816. };
  8817. VULKAN_HPP_INLINE std::string to_string( SubgroupFeatureFlagBits value )
  8818. {
  8819. switch ( value )
  8820. {
  8821. case SubgroupFeatureFlagBits::eBasic : return "Basic";
  8822. case SubgroupFeatureFlagBits::eVote : return "Vote";
  8823. case SubgroupFeatureFlagBits::eArithmetic : return "Arithmetic";
  8824. case SubgroupFeatureFlagBits::eBallot : return "Ballot";
  8825. case SubgroupFeatureFlagBits::eShuffle : return "Shuffle";
  8826. case SubgroupFeatureFlagBits::eShuffleRelative : return "ShuffleRelative";
  8827. case SubgroupFeatureFlagBits::eClustered : return "Clustered";
  8828. case SubgroupFeatureFlagBits::eQuad : return "Quad";
  8829. case SubgroupFeatureFlagBits::ePartitionedNV : return "PartitionedNV";
  8830. default: return "invalid";
  8831. }
  8832. }
  8833. using SubgroupFeatureFlags = Flags<SubgroupFeatureFlagBits, VkSubgroupFeatureFlags>;
  8834. VULKAN_HPP_INLINE SubgroupFeatureFlags operator|( SubgroupFeatureFlagBits bit0, SubgroupFeatureFlagBits bit1 )
  8835. {
  8836. return SubgroupFeatureFlags( bit0 ) | bit1;
  8837. }
  8838. VULKAN_HPP_INLINE SubgroupFeatureFlags operator~( SubgroupFeatureFlagBits bits )
  8839. {
  8840. return ~( SubgroupFeatureFlags( bits ) );
  8841. }
  8842. template <> struct FlagTraits<SubgroupFeatureFlagBits>
  8843. {
  8844. enum
  8845. {
  8846. allFlags = VkFlags(SubgroupFeatureFlagBits::eBasic) | VkFlags(SubgroupFeatureFlagBits::eVote) | VkFlags(SubgroupFeatureFlagBits::eArithmetic) | VkFlags(SubgroupFeatureFlagBits::eBallot) | VkFlags(SubgroupFeatureFlagBits::eShuffle) | VkFlags(SubgroupFeatureFlagBits::eShuffleRelative) | VkFlags(SubgroupFeatureFlagBits::eClustered) | VkFlags(SubgroupFeatureFlagBits::eQuad) | VkFlags(SubgroupFeatureFlagBits::ePartitionedNV)
  8847. };
  8848. };
  8849. VULKAN_HPP_INLINE std::string to_string( SubgroupFeatureFlags value )
  8850. {
  8851. if ( !value ) return "{}";
  8852. std::string result;
  8853. if ( value & SubgroupFeatureFlagBits::eBasic ) result += "Basic | ";
  8854. if ( value & SubgroupFeatureFlagBits::eVote ) result += "Vote | ";
  8855. if ( value & SubgroupFeatureFlagBits::eArithmetic ) result += "Arithmetic | ";
  8856. if ( value & SubgroupFeatureFlagBits::eBallot ) result += "Ballot | ";
  8857. if ( value & SubgroupFeatureFlagBits::eShuffle ) result += "Shuffle | ";
  8858. if ( value & SubgroupFeatureFlagBits::eShuffleRelative ) result += "ShuffleRelative | ";
  8859. if ( value & SubgroupFeatureFlagBits::eClustered ) result += "Clustered | ";
  8860. if ( value & SubgroupFeatureFlagBits::eQuad ) result += "Quad | ";
  8861. if ( value & SubgroupFeatureFlagBits::ePartitionedNV ) result += "PartitionedNV | ";
  8862. return "{ " + result.substr(0, result.size() - 3) + " }";
  8863. }
  8864. enum class SubpassDescriptionFlagBits
  8865. {
  8866. ePerViewAttributesNVX = VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX,
  8867. ePerViewPositionXOnlyNVX = VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX
  8868. };
  8869. VULKAN_HPP_INLINE std::string to_string( SubpassDescriptionFlagBits value )
  8870. {
  8871. switch ( value )
  8872. {
  8873. case SubpassDescriptionFlagBits::ePerViewAttributesNVX : return "PerViewAttributesNVX";
  8874. case SubpassDescriptionFlagBits::ePerViewPositionXOnlyNVX : return "PerViewPositionXOnlyNVX";
  8875. default: return "invalid";
  8876. }
  8877. }
  8878. using SubpassDescriptionFlags = Flags<SubpassDescriptionFlagBits, VkSubpassDescriptionFlags>;
  8879. VULKAN_HPP_INLINE SubpassDescriptionFlags operator|( SubpassDescriptionFlagBits bit0, SubpassDescriptionFlagBits bit1 )
  8880. {
  8881. return SubpassDescriptionFlags( bit0 ) | bit1;
  8882. }
  8883. VULKAN_HPP_INLINE SubpassDescriptionFlags operator~( SubpassDescriptionFlagBits bits )
  8884. {
  8885. return ~( SubpassDescriptionFlags( bits ) );
  8886. }
  8887. template <> struct FlagTraits<SubpassDescriptionFlagBits>
  8888. {
  8889. enum
  8890. {
  8891. allFlags = VkFlags(SubpassDescriptionFlagBits::ePerViewAttributesNVX) | VkFlags(SubpassDescriptionFlagBits::ePerViewPositionXOnlyNVX)
  8892. };
  8893. };
  8894. VULKAN_HPP_INLINE std::string to_string( SubpassDescriptionFlags value )
  8895. {
  8896. if ( !value ) return "{}";
  8897. std::string result;
  8898. if ( value & SubpassDescriptionFlagBits::ePerViewAttributesNVX ) result += "PerViewAttributesNVX | ";
  8899. if ( value & SubpassDescriptionFlagBits::ePerViewPositionXOnlyNVX ) result += "PerViewPositionXOnlyNVX | ";
  8900. return "{ " + result.substr(0, result.size() - 3) + " }";
  8901. }
  8902. enum class SurfaceCounterFlagBitsEXT
  8903. {
  8904. eVblank = VK_SURFACE_COUNTER_VBLANK_EXT
  8905. };
  8906. VULKAN_HPP_INLINE std::string to_string( SurfaceCounterFlagBitsEXT value )
  8907. {
  8908. switch ( value )
  8909. {
  8910. case SurfaceCounterFlagBitsEXT::eVblank : return "Vblank";
  8911. default: return "invalid";
  8912. }
  8913. }
  8914. using SurfaceCounterFlagsEXT = Flags<SurfaceCounterFlagBitsEXT, VkSurfaceCounterFlagsEXT>;
  8915. VULKAN_HPP_INLINE SurfaceCounterFlagsEXT operator|( SurfaceCounterFlagBitsEXT bit0, SurfaceCounterFlagBitsEXT bit1 )
  8916. {
  8917. return SurfaceCounterFlagsEXT( bit0 ) | bit1;
  8918. }
  8919. VULKAN_HPP_INLINE SurfaceCounterFlagsEXT operator~( SurfaceCounterFlagBitsEXT bits )
  8920. {
  8921. return ~( SurfaceCounterFlagsEXT( bits ) );
  8922. }
  8923. template <> struct FlagTraits<SurfaceCounterFlagBitsEXT>
  8924. {
  8925. enum
  8926. {
  8927. allFlags = VkFlags(SurfaceCounterFlagBitsEXT::eVblank)
  8928. };
  8929. };
  8930. VULKAN_HPP_INLINE std::string to_string( SurfaceCounterFlagsEXT value )
  8931. {
  8932. if ( !value ) return "{}";
  8933. std::string result;
  8934. if ( value & SurfaceCounterFlagBitsEXT::eVblank ) result += "Vblank | ";
  8935. return "{ " + result.substr(0, result.size() - 3) + " }";
  8936. }
  8937. enum class SurfaceTransformFlagBitsKHR
  8938. {
  8939. eIdentity = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR,
  8940. eRotate90 = VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR,
  8941. eRotate180 = VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR,
  8942. eRotate270 = VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR,
  8943. eHorizontalMirror = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR,
  8944. eHorizontalMirrorRotate90 = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR,
  8945. eHorizontalMirrorRotate180 = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR,
  8946. eHorizontalMirrorRotate270 = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR,
  8947. eInherit = VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR
  8948. };
  8949. VULKAN_HPP_INLINE std::string to_string( SurfaceTransformFlagBitsKHR value )
  8950. {
  8951. switch ( value )
  8952. {
  8953. case SurfaceTransformFlagBitsKHR::eIdentity : return "Identity";
  8954. case SurfaceTransformFlagBitsKHR::eRotate90 : return "Rotate90";
  8955. case SurfaceTransformFlagBitsKHR::eRotate180 : return "Rotate180";
  8956. case SurfaceTransformFlagBitsKHR::eRotate270 : return "Rotate270";
  8957. case SurfaceTransformFlagBitsKHR::eHorizontalMirror : return "HorizontalMirror";
  8958. case SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate90 : return "HorizontalMirrorRotate90";
  8959. case SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate180 : return "HorizontalMirrorRotate180";
  8960. case SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate270 : return "HorizontalMirrorRotate270";
  8961. case SurfaceTransformFlagBitsKHR::eInherit : return "Inherit";
  8962. default: return "invalid";
  8963. }
  8964. }
  8965. using SurfaceTransformFlagsKHR = Flags<SurfaceTransformFlagBitsKHR, VkSurfaceTransformFlagsKHR>;
  8966. VULKAN_HPP_INLINE SurfaceTransformFlagsKHR operator|( SurfaceTransformFlagBitsKHR bit0, SurfaceTransformFlagBitsKHR bit1 )
  8967. {
  8968. return SurfaceTransformFlagsKHR( bit0 ) | bit1;
  8969. }
  8970. VULKAN_HPP_INLINE SurfaceTransformFlagsKHR operator~( SurfaceTransformFlagBitsKHR bits )
  8971. {
  8972. return ~( SurfaceTransformFlagsKHR( bits ) );
  8973. }
  8974. template <> struct FlagTraits<SurfaceTransformFlagBitsKHR>
  8975. {
  8976. enum
  8977. {
  8978. allFlags = VkFlags(SurfaceTransformFlagBitsKHR::eIdentity) | VkFlags(SurfaceTransformFlagBitsKHR::eRotate90) | VkFlags(SurfaceTransformFlagBitsKHR::eRotate180) | VkFlags(SurfaceTransformFlagBitsKHR::eRotate270) | VkFlags(SurfaceTransformFlagBitsKHR::eHorizontalMirror) | VkFlags(SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate90) | VkFlags(SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate180) | VkFlags(SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate270) | VkFlags(SurfaceTransformFlagBitsKHR::eInherit)
  8979. };
  8980. };
  8981. VULKAN_HPP_INLINE std::string to_string( SurfaceTransformFlagsKHR value )
  8982. {
  8983. if ( !value ) return "{}";
  8984. std::string result;
  8985. if ( value & SurfaceTransformFlagBitsKHR::eIdentity ) result += "Identity | ";
  8986. if ( value & SurfaceTransformFlagBitsKHR::eRotate90 ) result += "Rotate90 | ";
  8987. if ( value & SurfaceTransformFlagBitsKHR::eRotate180 ) result += "Rotate180 | ";
  8988. if ( value & SurfaceTransformFlagBitsKHR::eRotate270 ) result += "Rotate270 | ";
  8989. if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirror ) result += "HorizontalMirror | ";
  8990. if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate90 ) result += "HorizontalMirrorRotate90 | ";
  8991. if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate180 ) result += "HorizontalMirrorRotate180 | ";
  8992. if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate270 ) result += "HorizontalMirrorRotate270 | ";
  8993. if ( value & SurfaceTransformFlagBitsKHR::eInherit ) result += "Inherit | ";
  8994. return "{ " + result.substr(0, result.size() - 3) + " }";
  8995. }
  8996. enum class SwapchainCreateFlagBitsKHR
  8997. {
  8998. eSplitInstanceBindRegions = VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR,
  8999. eProtected = VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR,
  9000. eMutableFormat = VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR
  9001. };
  9002. VULKAN_HPP_INLINE std::string to_string( SwapchainCreateFlagBitsKHR value )
  9003. {
  9004. switch ( value )
  9005. {
  9006. case SwapchainCreateFlagBitsKHR::eSplitInstanceBindRegions : return "SplitInstanceBindRegions";
  9007. case SwapchainCreateFlagBitsKHR::eProtected : return "Protected";
  9008. case SwapchainCreateFlagBitsKHR::eMutableFormat : return "MutableFormat";
  9009. default: return "invalid";
  9010. }
  9011. }
  9012. using SwapchainCreateFlagsKHR = Flags<SwapchainCreateFlagBitsKHR, VkSwapchainCreateFlagsKHR>;
  9013. VULKAN_HPP_INLINE SwapchainCreateFlagsKHR operator|( SwapchainCreateFlagBitsKHR bit0, SwapchainCreateFlagBitsKHR bit1 )
  9014. {
  9015. return SwapchainCreateFlagsKHR( bit0 ) | bit1;
  9016. }
  9017. VULKAN_HPP_INLINE SwapchainCreateFlagsKHR operator~( SwapchainCreateFlagBitsKHR bits )
  9018. {
  9019. return ~( SwapchainCreateFlagsKHR( bits ) );
  9020. }
  9021. template <> struct FlagTraits<SwapchainCreateFlagBitsKHR>
  9022. {
  9023. enum
  9024. {
  9025. allFlags = VkFlags(SwapchainCreateFlagBitsKHR::eSplitInstanceBindRegions) | VkFlags(SwapchainCreateFlagBitsKHR::eProtected) | VkFlags(SwapchainCreateFlagBitsKHR::eMutableFormat)
  9026. };
  9027. };
  9028. VULKAN_HPP_INLINE std::string to_string( SwapchainCreateFlagsKHR value )
  9029. {
  9030. if ( !value ) return "{}";
  9031. std::string result;
  9032. if ( value & SwapchainCreateFlagBitsKHR::eSplitInstanceBindRegions ) result += "SplitInstanceBindRegions | ";
  9033. if ( value & SwapchainCreateFlagBitsKHR::eProtected ) result += "Protected | ";
  9034. if ( value & SwapchainCreateFlagBitsKHR::eMutableFormat ) result += "MutableFormat | ";
  9035. return "{ " + result.substr(0, result.size() - 3) + " }";
  9036. }
  9037. enum class ValidationCacheCreateFlagBitsEXT
  9038. {};
  9039. VULKAN_HPP_INLINE std::string to_string( ValidationCacheCreateFlagBitsEXT )
  9040. {
  9041. return "(void)";
  9042. }
  9043. using ValidationCacheCreateFlagsEXT = Flags<ValidationCacheCreateFlagBitsEXT, VkValidationCacheCreateFlagsEXT>;
  9044. VULKAN_HPP_INLINE std::string to_string( ValidationCacheCreateFlagsEXT )
  9045. {
  9046. return "{}";
  9047. }
  9048. #ifdef VK_USE_PLATFORM_VI_NN
  9049. enum class ViSurfaceCreateFlagBitsNN
  9050. {};
  9051. VULKAN_HPP_INLINE std::string to_string( ViSurfaceCreateFlagBitsNN )
  9052. {
  9053. return "(void)";
  9054. }
  9055. using ViSurfaceCreateFlagsNN = Flags<ViSurfaceCreateFlagBitsNN, VkViSurfaceCreateFlagsNN>;
  9056. VULKAN_HPP_INLINE std::string to_string( ViSurfaceCreateFlagsNN )
  9057. {
  9058. return "{}";
  9059. }
  9060. #endif /*VK_USE_PLATFORM_VI_NN*/
  9061. #ifdef VK_USE_PLATFORM_WAYLAND_KHR
  9062. enum class WaylandSurfaceCreateFlagBitsKHR
  9063. {};
  9064. VULKAN_HPP_INLINE std::string to_string( WaylandSurfaceCreateFlagBitsKHR )
  9065. {
  9066. return "(void)";
  9067. }
  9068. using WaylandSurfaceCreateFlagsKHR = Flags<WaylandSurfaceCreateFlagBitsKHR, VkWaylandSurfaceCreateFlagsKHR>;
  9069. VULKAN_HPP_INLINE std::string to_string( WaylandSurfaceCreateFlagsKHR )
  9070. {
  9071. return "{}";
  9072. }
  9073. #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
  9074. #ifdef VK_USE_PLATFORM_WIN32_KHR
  9075. enum class Win32SurfaceCreateFlagBitsKHR
  9076. {};
  9077. VULKAN_HPP_INLINE std::string to_string( Win32SurfaceCreateFlagBitsKHR )
  9078. {
  9079. return "(void)";
  9080. }
  9081. using Win32SurfaceCreateFlagsKHR = Flags<Win32SurfaceCreateFlagBitsKHR, VkWin32SurfaceCreateFlagsKHR>;
  9082. VULKAN_HPP_INLINE std::string to_string( Win32SurfaceCreateFlagsKHR )
  9083. {
  9084. return "{}";
  9085. }
  9086. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  9087. #ifdef VK_USE_PLATFORM_XCB_KHR
  9088. enum class XcbSurfaceCreateFlagBitsKHR
  9089. {};
  9090. VULKAN_HPP_INLINE std::string to_string( XcbSurfaceCreateFlagBitsKHR )
  9091. {
  9092. return "(void)";
  9093. }
  9094. using XcbSurfaceCreateFlagsKHR = Flags<XcbSurfaceCreateFlagBitsKHR, VkXcbSurfaceCreateFlagsKHR>;
  9095. VULKAN_HPP_INLINE std::string to_string( XcbSurfaceCreateFlagsKHR )
  9096. {
  9097. return "{}";
  9098. }
  9099. #endif /*VK_USE_PLATFORM_XCB_KHR*/
  9100. #ifdef VK_USE_PLATFORM_XLIB_KHR
  9101. enum class XlibSurfaceCreateFlagBitsKHR
  9102. {};
  9103. VULKAN_HPP_INLINE std::string to_string( XlibSurfaceCreateFlagBitsKHR )
  9104. {
  9105. return "(void)";
  9106. }
  9107. using XlibSurfaceCreateFlagsKHR = Flags<XlibSurfaceCreateFlagBitsKHR, VkXlibSurfaceCreateFlagsKHR>;
  9108. VULKAN_HPP_INLINE std::string to_string( XlibSurfaceCreateFlagsKHR )
  9109. {
  9110. return "{}";
  9111. }
  9112. #endif /*VK_USE_PLATFORM_XLIB_KHR*/
  9113. } // namespace VULKAN_HPP_NAMESPACE
  9114. namespace std
  9115. {
  9116. template <>
  9117. struct is_error_code_enum<VULKAN_HPP_NAMESPACE::Result> : public true_type
  9118. {};
  9119. }
  9120. namespace VULKAN_HPP_NAMESPACE
  9121. {
  9122. #ifndef VULKAN_HPP_NO_EXCEPTIONS
  9123. #if defined(_MSC_VER) && (_MSC_VER == 1800)
  9124. # define noexcept _NOEXCEPT
  9125. #endif
  9126. class ErrorCategoryImpl : public std::error_category
  9127. {
  9128. public:
  9129. virtual const char* name() const noexcept override { return VULKAN_HPP_NAMESPACE_STRING"::Result"; }
  9130. virtual std::string message(int ev) const override { return to_string(static_cast<Result>(ev)); }
  9131. };
  9132. class Error
  9133. {
  9134. public:
  9135. virtual ~Error() = default;
  9136. virtual const char* what() const noexcept = 0;
  9137. };
  9138. class LogicError : public Error, public std::logic_error
  9139. {
  9140. public:
  9141. explicit LogicError( const std::string& what )
  9142. : Error(), std::logic_error(what) {}
  9143. explicit LogicError( char const * what )
  9144. : Error(), std::logic_error(what) {}
  9145. virtual ~LogicError() = default;
  9146. virtual const char* what() const noexcept { return std::logic_error::what(); }
  9147. };
  9148. class SystemError : public Error, public std::system_error
  9149. {
  9150. public:
  9151. SystemError( std::error_code ec )
  9152. : Error(), std::system_error(ec) {}
  9153. SystemError( std::error_code ec, std::string const& what )
  9154. : Error(), std::system_error(ec, what) {}
  9155. SystemError( std::error_code ec, char const * what )
  9156. : Error(), std::system_error(ec, what) {}
  9157. SystemError( int ev, std::error_category const& ecat )
  9158. : Error(), std::system_error(ev, ecat) {}
  9159. SystemError( int ev, std::error_category const& ecat, std::string const& what)
  9160. : Error(), std::system_error(ev, ecat, what) {}
  9161. SystemError( int ev, std::error_category const& ecat, char const * what)
  9162. : Error(), std::system_error(ev, ecat, what) {}
  9163. virtual ~SystemError() = default;
  9164. virtual const char* what() const noexcept { return std::system_error::what(); }
  9165. };
  9166. #if defined(_MSC_VER) && (_MSC_VER == 1800)
  9167. # undef noexcept
  9168. #endif
  9169. VULKAN_HPP_INLINE const std::error_category& errorCategory()
  9170. {
  9171. static ErrorCategoryImpl instance;
  9172. return instance;
  9173. }
  9174. VULKAN_HPP_INLINE std::error_code make_error_code(Result e)
  9175. {
  9176. return std::error_code(static_cast<int>(e), errorCategory());
  9177. }
  9178. VULKAN_HPP_INLINE std::error_condition make_error_condition(Result e)
  9179. {
  9180. return std::error_condition(static_cast<int>(e), errorCategory());
  9181. }
  9182. class OutOfHostMemoryError : public SystemError
  9183. {
  9184. public:
  9185. OutOfHostMemoryError( std::string const& message )
  9186. : SystemError( make_error_code( Result::eErrorOutOfHostMemory ), message ) {}
  9187. OutOfHostMemoryError( char const * message )
  9188. : SystemError( make_error_code( Result::eErrorOutOfHostMemory ), message ) {}
  9189. };
  9190. class OutOfDeviceMemoryError : public SystemError
  9191. {
  9192. public:
  9193. OutOfDeviceMemoryError( std::string const& message )
  9194. : SystemError( make_error_code( Result::eErrorOutOfDeviceMemory ), message ) {}
  9195. OutOfDeviceMemoryError( char const * message )
  9196. : SystemError( make_error_code( Result::eErrorOutOfDeviceMemory ), message ) {}
  9197. };
  9198. class InitializationFailedError : public SystemError
  9199. {
  9200. public:
  9201. InitializationFailedError( std::string const& message )
  9202. : SystemError( make_error_code( Result::eErrorInitializationFailed ), message ) {}
  9203. InitializationFailedError( char const * message )
  9204. : SystemError( make_error_code( Result::eErrorInitializationFailed ), message ) {}
  9205. };
  9206. class DeviceLostError : public SystemError
  9207. {
  9208. public:
  9209. DeviceLostError( std::string const& message )
  9210. : SystemError( make_error_code( Result::eErrorDeviceLost ), message ) {}
  9211. DeviceLostError( char const * message )
  9212. : SystemError( make_error_code( Result::eErrorDeviceLost ), message ) {}
  9213. };
  9214. class MemoryMapFailedError : public SystemError
  9215. {
  9216. public:
  9217. MemoryMapFailedError( std::string const& message )
  9218. : SystemError( make_error_code( Result::eErrorMemoryMapFailed ), message ) {}
  9219. MemoryMapFailedError( char const * message )
  9220. : SystemError( make_error_code( Result::eErrorMemoryMapFailed ), message ) {}
  9221. };
  9222. class LayerNotPresentError : public SystemError
  9223. {
  9224. public:
  9225. LayerNotPresentError( std::string const& message )
  9226. : SystemError( make_error_code( Result::eErrorLayerNotPresent ), message ) {}
  9227. LayerNotPresentError( char const * message )
  9228. : SystemError( make_error_code( Result::eErrorLayerNotPresent ), message ) {}
  9229. };
  9230. class ExtensionNotPresentError : public SystemError
  9231. {
  9232. public:
  9233. ExtensionNotPresentError( std::string const& message )
  9234. : SystemError( make_error_code( Result::eErrorExtensionNotPresent ), message ) {}
  9235. ExtensionNotPresentError( char const * message )
  9236. : SystemError( make_error_code( Result::eErrorExtensionNotPresent ), message ) {}
  9237. };
  9238. class FeatureNotPresentError : public SystemError
  9239. {
  9240. public:
  9241. FeatureNotPresentError( std::string const& message )
  9242. : SystemError( make_error_code( Result::eErrorFeatureNotPresent ), message ) {}
  9243. FeatureNotPresentError( char const * message )
  9244. : SystemError( make_error_code( Result::eErrorFeatureNotPresent ), message ) {}
  9245. };
  9246. class IncompatibleDriverError : public SystemError
  9247. {
  9248. public:
  9249. IncompatibleDriverError( std::string const& message )
  9250. : SystemError( make_error_code( Result::eErrorIncompatibleDriver ), message ) {}
  9251. IncompatibleDriverError( char const * message )
  9252. : SystemError( make_error_code( Result::eErrorIncompatibleDriver ), message ) {}
  9253. };
  9254. class TooManyObjectsError : public SystemError
  9255. {
  9256. public:
  9257. TooManyObjectsError( std::string const& message )
  9258. : SystemError( make_error_code( Result::eErrorTooManyObjects ), message ) {}
  9259. TooManyObjectsError( char const * message )
  9260. : SystemError( make_error_code( Result::eErrorTooManyObjects ), message ) {}
  9261. };
  9262. class FormatNotSupportedError : public SystemError
  9263. {
  9264. public:
  9265. FormatNotSupportedError( std::string const& message )
  9266. : SystemError( make_error_code( Result::eErrorFormatNotSupported ), message ) {}
  9267. FormatNotSupportedError( char const * message )
  9268. : SystemError( make_error_code( Result::eErrorFormatNotSupported ), message ) {}
  9269. };
  9270. class FragmentedPoolError : public SystemError
  9271. {
  9272. public:
  9273. FragmentedPoolError( std::string const& message )
  9274. : SystemError( make_error_code( Result::eErrorFragmentedPool ), message ) {}
  9275. FragmentedPoolError( char const * message )
  9276. : SystemError( make_error_code( Result::eErrorFragmentedPool ), message ) {}
  9277. };
  9278. class OutOfPoolMemoryError : public SystemError
  9279. {
  9280. public:
  9281. OutOfPoolMemoryError( std::string const& message )
  9282. : SystemError( make_error_code( Result::eErrorOutOfPoolMemory ), message ) {}
  9283. OutOfPoolMemoryError( char const * message )
  9284. : SystemError( make_error_code( Result::eErrorOutOfPoolMemory ), message ) {}
  9285. };
  9286. class InvalidExternalHandleError : public SystemError
  9287. {
  9288. public:
  9289. InvalidExternalHandleError( std::string const& message )
  9290. : SystemError( make_error_code( Result::eErrorInvalidExternalHandle ), message ) {}
  9291. InvalidExternalHandleError( char const * message )
  9292. : SystemError( make_error_code( Result::eErrorInvalidExternalHandle ), message ) {}
  9293. };
  9294. class SurfaceLostKHRError : public SystemError
  9295. {
  9296. public:
  9297. SurfaceLostKHRError( std::string const& message )
  9298. : SystemError( make_error_code( Result::eErrorSurfaceLostKHR ), message ) {}
  9299. SurfaceLostKHRError( char const * message )
  9300. : SystemError( make_error_code( Result::eErrorSurfaceLostKHR ), message ) {}
  9301. };
  9302. class NativeWindowInUseKHRError : public SystemError
  9303. {
  9304. public:
  9305. NativeWindowInUseKHRError( std::string const& message )
  9306. : SystemError( make_error_code( Result::eErrorNativeWindowInUseKHR ), message ) {}
  9307. NativeWindowInUseKHRError( char const * message )
  9308. : SystemError( make_error_code( Result::eErrorNativeWindowInUseKHR ), message ) {}
  9309. };
  9310. class OutOfDateKHRError : public SystemError
  9311. {
  9312. public:
  9313. OutOfDateKHRError( std::string const& message )
  9314. : SystemError( make_error_code( Result::eErrorOutOfDateKHR ), message ) {}
  9315. OutOfDateKHRError( char const * message )
  9316. : SystemError( make_error_code( Result::eErrorOutOfDateKHR ), message ) {}
  9317. };
  9318. class IncompatibleDisplayKHRError : public SystemError
  9319. {
  9320. public:
  9321. IncompatibleDisplayKHRError( std::string const& message )
  9322. : SystemError( make_error_code( Result::eErrorIncompatibleDisplayKHR ), message ) {}
  9323. IncompatibleDisplayKHRError( char const * message )
  9324. : SystemError( make_error_code( Result::eErrorIncompatibleDisplayKHR ), message ) {}
  9325. };
  9326. class ValidationFailedEXTError : public SystemError
  9327. {
  9328. public:
  9329. ValidationFailedEXTError( std::string const& message )
  9330. : SystemError( make_error_code( Result::eErrorValidationFailedEXT ), message ) {}
  9331. ValidationFailedEXTError( char const * message )
  9332. : SystemError( make_error_code( Result::eErrorValidationFailedEXT ), message ) {}
  9333. };
  9334. class InvalidShaderNVError : public SystemError
  9335. {
  9336. public:
  9337. InvalidShaderNVError( std::string const& message )
  9338. : SystemError( make_error_code( Result::eErrorInvalidShaderNV ), message ) {}
  9339. InvalidShaderNVError( char const * message )
  9340. : SystemError( make_error_code( Result::eErrorInvalidShaderNV ), message ) {}
  9341. };
  9342. class InvalidDrmFormatModifierPlaneLayoutEXTError : public SystemError
  9343. {
  9344. public:
  9345. InvalidDrmFormatModifierPlaneLayoutEXTError( std::string const& message )
  9346. : SystemError( make_error_code( Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT ), message ) {}
  9347. InvalidDrmFormatModifierPlaneLayoutEXTError( char const * message )
  9348. : SystemError( make_error_code( Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT ), message ) {}
  9349. };
  9350. class FragmentationEXTError : public SystemError
  9351. {
  9352. public:
  9353. FragmentationEXTError( std::string const& message )
  9354. : SystemError( make_error_code( Result::eErrorFragmentationEXT ), message ) {}
  9355. FragmentationEXTError( char const * message )
  9356. : SystemError( make_error_code( Result::eErrorFragmentationEXT ), message ) {}
  9357. };
  9358. class NotPermittedEXTError : public SystemError
  9359. {
  9360. public:
  9361. NotPermittedEXTError( std::string const& message )
  9362. : SystemError( make_error_code( Result::eErrorNotPermittedEXT ), message ) {}
  9363. NotPermittedEXTError( char const * message )
  9364. : SystemError( make_error_code( Result::eErrorNotPermittedEXT ), message ) {}
  9365. };
  9366. class InvalidDeviceAddressEXTError : public SystemError
  9367. {
  9368. public:
  9369. InvalidDeviceAddressEXTError( std::string const& message )
  9370. : SystemError( make_error_code( Result::eErrorInvalidDeviceAddressEXT ), message ) {}
  9371. InvalidDeviceAddressEXTError( char const * message )
  9372. : SystemError( make_error_code( Result::eErrorInvalidDeviceAddressEXT ), message ) {}
  9373. };
  9374. class FullScreenExclusiveModeLostEXTError : public SystemError
  9375. {
  9376. public:
  9377. FullScreenExclusiveModeLostEXTError( std::string const& message )
  9378. : SystemError( make_error_code( Result::eErrorFullScreenExclusiveModeLostEXT ), message ) {}
  9379. FullScreenExclusiveModeLostEXTError( char const * message )
  9380. : SystemError( make_error_code( Result::eErrorFullScreenExclusiveModeLostEXT ), message ) {}
  9381. };
  9382. VULKAN_HPP_INLINE void throwResultException( Result result, char const * message )
  9383. {
  9384. switch ( result )
  9385. {
  9386. case Result::eErrorOutOfHostMemory: throw OutOfHostMemoryError( message );
  9387. case Result::eErrorOutOfDeviceMemory: throw OutOfDeviceMemoryError( message );
  9388. case Result::eErrorInitializationFailed: throw InitializationFailedError( message );
  9389. case Result::eErrorDeviceLost: throw DeviceLostError( message );
  9390. case Result::eErrorMemoryMapFailed: throw MemoryMapFailedError( message );
  9391. case Result::eErrorLayerNotPresent: throw LayerNotPresentError( message );
  9392. case Result::eErrorExtensionNotPresent: throw ExtensionNotPresentError( message );
  9393. case Result::eErrorFeatureNotPresent: throw FeatureNotPresentError( message );
  9394. case Result::eErrorIncompatibleDriver: throw IncompatibleDriverError( message );
  9395. case Result::eErrorTooManyObjects: throw TooManyObjectsError( message );
  9396. case Result::eErrorFormatNotSupported: throw FormatNotSupportedError( message );
  9397. case Result::eErrorFragmentedPool: throw FragmentedPoolError( message );
  9398. case Result::eErrorOutOfPoolMemory: throw OutOfPoolMemoryError( message );
  9399. case Result::eErrorInvalidExternalHandle: throw InvalidExternalHandleError( message );
  9400. case Result::eErrorSurfaceLostKHR: throw SurfaceLostKHRError( message );
  9401. case Result::eErrorNativeWindowInUseKHR: throw NativeWindowInUseKHRError( message );
  9402. case Result::eErrorOutOfDateKHR: throw OutOfDateKHRError( message );
  9403. case Result::eErrorIncompatibleDisplayKHR: throw IncompatibleDisplayKHRError( message );
  9404. case Result::eErrorValidationFailedEXT: throw ValidationFailedEXTError( message );
  9405. case Result::eErrorInvalidShaderNV: throw InvalidShaderNVError( message );
  9406. case Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT: throw InvalidDrmFormatModifierPlaneLayoutEXTError( message );
  9407. case Result::eErrorFragmentationEXT: throw FragmentationEXTError( message );
  9408. case Result::eErrorNotPermittedEXT: throw NotPermittedEXTError( message );
  9409. case Result::eErrorInvalidDeviceAddressEXT: throw InvalidDeviceAddressEXTError( message );
  9410. case Result::eErrorFullScreenExclusiveModeLostEXT: throw FullScreenExclusiveModeLostEXTError( message );
  9411. default: throw SystemError( make_error_code( result ) );
  9412. }
  9413. }
  9414. #endif
  9415. template <typename T> void ignore(T const&) {}
  9416. template <typename T>
  9417. struct ResultValue
  9418. {
  9419. ResultValue( Result r, T & v )
  9420. : result( r )
  9421. , value( v )
  9422. {}
  9423. ResultValue( Result r, T && v )
  9424. : result( r )
  9425. , value( std::move( v ) )
  9426. {}
  9427. Result result;
  9428. T value;
  9429. operator std::tuple<Result&, T&>() { return std::tuple<Result&, T&>(result, value); }
  9430. };
  9431. template <typename T>
  9432. struct ResultValueType
  9433. {
  9434. #ifdef VULKAN_HPP_NO_EXCEPTIONS
  9435. typedef ResultValue<T> type;
  9436. #else
  9437. typedef T type;
  9438. #endif
  9439. };
  9440. template <>
  9441. struct ResultValueType<void>
  9442. {
  9443. #ifdef VULKAN_HPP_NO_EXCEPTIONS
  9444. typedef Result type;
  9445. #else
  9446. typedef void type;
  9447. #endif
  9448. };
  9449. VULKAN_HPP_INLINE ResultValueType<void>::type createResultValue( Result result, char const * message )
  9450. {
  9451. #ifdef VULKAN_HPP_NO_EXCEPTIONS
  9452. ignore(message);
  9453. VULKAN_HPP_ASSERT( result == Result::eSuccess );
  9454. return result;
  9455. #else
  9456. if ( result != Result::eSuccess )
  9457. {
  9458. throwResultException( result, message );
  9459. }
  9460. #endif
  9461. }
  9462. template <typename T>
  9463. VULKAN_HPP_INLINE typename ResultValueType<T>::type createResultValue( Result result, T & data, char const * message )
  9464. {
  9465. #ifdef VULKAN_HPP_NO_EXCEPTIONS
  9466. ignore(message);
  9467. VULKAN_HPP_ASSERT( result == Result::eSuccess );
  9468. return ResultValue<T>( result, std::move( data ) );
  9469. #else
  9470. if ( result != Result::eSuccess )
  9471. {
  9472. throwResultException( result, message );
  9473. }
  9474. return std::move( data );
  9475. #endif
  9476. }
  9477. VULKAN_HPP_INLINE Result createResultValue( Result result, char const * message, std::initializer_list<Result> successCodes )
  9478. {
  9479. #ifdef VULKAN_HPP_NO_EXCEPTIONS
  9480. ignore(message);
  9481. VULKAN_HPP_ASSERT( std::find( successCodes.begin(), successCodes.end(), result ) != successCodes.end() );
  9482. #else
  9483. if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() )
  9484. {
  9485. throwResultException( result, message );
  9486. }
  9487. #endif
  9488. return result;
  9489. }
  9490. template <typename T>
  9491. VULKAN_HPP_INLINE ResultValue<T> createResultValue( Result result, T & data, char const * message, std::initializer_list<Result> successCodes )
  9492. {
  9493. #ifdef VULKAN_HPP_NO_EXCEPTIONS
  9494. ignore(message);
  9495. VULKAN_HPP_ASSERT( std::find( successCodes.begin(), successCodes.end(), result ) != successCodes.end() );
  9496. #else
  9497. if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() )
  9498. {
  9499. throwResultException( result, message );
  9500. }
  9501. #endif
  9502. return ResultValue<T>( result, data );
  9503. }
  9504. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  9505. template <typename T, typename D>
  9506. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<T,D>>::type createResultValue( Result result, T & data, char const * message, typename UniqueHandleTraits<T,D>::deleter const& deleter )
  9507. {
  9508. #ifdef VULKAN_HPP_NO_EXCEPTIONS
  9509. ignore(message);
  9510. VULKAN_HPP_ASSERT( result == Result::eSuccess );
  9511. return ResultValue<UniqueHandle<T,D>>( result, UniqueHandle<T,D>(data, deleter) );
  9512. #else
  9513. if ( result != Result::eSuccess )
  9514. {
  9515. throwResultException( result, message );
  9516. }
  9517. return UniqueHandle<T,D>(data, deleter);
  9518. #endif
  9519. }
  9520. #endif
  9521. struct AccelerationStructureCreateInfoNV;
  9522. struct AccelerationStructureInfoNV;
  9523. struct AccelerationStructureMemoryRequirementsInfoNV;
  9524. struct AcquireNextImageInfoKHR;
  9525. struct AllocationCallbacks;
  9526. #ifdef VK_USE_PLATFORM_ANDROID_KHR
  9527. struct AndroidHardwareBufferFormatPropertiesANDROID;
  9528. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  9529. #ifdef VK_USE_PLATFORM_ANDROID_KHR
  9530. struct AndroidHardwareBufferPropertiesANDROID;
  9531. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  9532. #ifdef VK_USE_PLATFORM_ANDROID_KHR
  9533. struct AndroidHardwareBufferUsageANDROID;
  9534. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  9535. #ifdef VK_USE_PLATFORM_ANDROID_KHR
  9536. struct AndroidSurfaceCreateInfoKHR;
  9537. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  9538. struct ApplicationInfo;
  9539. struct AttachmentDescription;
  9540. struct AttachmentDescription2KHR;
  9541. struct AttachmentReference;
  9542. struct AttachmentReference2KHR;
  9543. struct AttachmentSampleLocationsEXT;
  9544. struct BaseInStructure;
  9545. struct BaseOutStructure;
  9546. struct BindAccelerationStructureMemoryInfoNV;
  9547. struct BindBufferMemoryDeviceGroupInfo;
  9548. using BindBufferMemoryDeviceGroupInfoKHR = BindBufferMemoryDeviceGroupInfo;
  9549. struct BindBufferMemoryInfo;
  9550. using BindBufferMemoryInfoKHR = BindBufferMemoryInfo;
  9551. struct BindImageMemoryDeviceGroupInfo;
  9552. using BindImageMemoryDeviceGroupInfoKHR = BindImageMemoryDeviceGroupInfo;
  9553. struct BindImageMemoryInfo;
  9554. using BindImageMemoryInfoKHR = BindImageMemoryInfo;
  9555. struct BindImageMemorySwapchainInfoKHR;
  9556. struct BindImagePlaneMemoryInfo;
  9557. using BindImagePlaneMemoryInfoKHR = BindImagePlaneMemoryInfo;
  9558. struct BindSparseInfo;
  9559. struct BufferCopy;
  9560. struct BufferCreateInfo;
  9561. struct BufferDeviceAddressCreateInfoEXT;
  9562. struct BufferDeviceAddressInfoEXT;
  9563. struct BufferImageCopy;
  9564. struct BufferMemoryBarrier;
  9565. struct BufferMemoryRequirementsInfo2;
  9566. using BufferMemoryRequirementsInfo2KHR = BufferMemoryRequirementsInfo2;
  9567. struct BufferViewCreateInfo;
  9568. struct CalibratedTimestampInfoEXT;
  9569. struct CheckpointDataNV;
  9570. struct ClearAttachment;
  9571. union ClearColorValue;
  9572. struct ClearDepthStencilValue;
  9573. struct ClearRect;
  9574. union ClearValue;
  9575. struct CmdProcessCommandsInfoNVX;
  9576. struct CmdReserveSpaceForCommandsInfoNVX;
  9577. struct CoarseSampleLocationNV;
  9578. struct CoarseSampleOrderCustomNV;
  9579. struct CommandBufferAllocateInfo;
  9580. struct CommandBufferBeginInfo;
  9581. struct CommandBufferInheritanceConditionalRenderingInfoEXT;
  9582. struct CommandBufferInheritanceInfo;
  9583. struct CommandPoolCreateInfo;
  9584. struct ComponentMapping;
  9585. struct ComputePipelineCreateInfo;
  9586. struct ConditionalRenderingBeginInfoEXT;
  9587. struct ConformanceVersionKHR;
  9588. struct CooperativeMatrixPropertiesNV;
  9589. struct CopyDescriptorSet;
  9590. #ifdef VK_USE_PLATFORM_WIN32_KHR
  9591. struct D3D12FenceSubmitInfoKHR;
  9592. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  9593. struct DebugMarkerMarkerInfoEXT;
  9594. struct DebugMarkerObjectNameInfoEXT;
  9595. struct DebugMarkerObjectTagInfoEXT;
  9596. struct DebugReportCallbackCreateInfoEXT;
  9597. struct DebugUtilsLabelEXT;
  9598. struct DebugUtilsMessengerCallbackDataEXT;
  9599. struct DebugUtilsMessengerCreateInfoEXT;
  9600. struct DebugUtilsObjectNameInfoEXT;
  9601. struct DebugUtilsObjectTagInfoEXT;
  9602. struct DedicatedAllocationBufferCreateInfoNV;
  9603. struct DedicatedAllocationImageCreateInfoNV;
  9604. struct DedicatedAllocationMemoryAllocateInfoNV;
  9605. struct DescriptorBufferInfo;
  9606. struct DescriptorImageInfo;
  9607. struct DescriptorPoolCreateInfo;
  9608. struct DescriptorPoolInlineUniformBlockCreateInfoEXT;
  9609. struct DescriptorPoolSize;
  9610. struct DescriptorSetAllocateInfo;
  9611. struct DescriptorSetLayoutBinding;
  9612. struct DescriptorSetLayoutBindingFlagsCreateInfoEXT;
  9613. struct DescriptorSetLayoutCreateInfo;
  9614. struct DescriptorSetLayoutSupport;
  9615. using DescriptorSetLayoutSupportKHR = DescriptorSetLayoutSupport;
  9616. struct DescriptorSetVariableDescriptorCountAllocateInfoEXT;
  9617. struct DescriptorSetVariableDescriptorCountLayoutSupportEXT;
  9618. struct DescriptorUpdateTemplateCreateInfo;
  9619. using DescriptorUpdateTemplateCreateInfoKHR = DescriptorUpdateTemplateCreateInfo;
  9620. struct DescriptorUpdateTemplateEntry;
  9621. using DescriptorUpdateTemplateEntryKHR = DescriptorUpdateTemplateEntry;
  9622. struct DeviceCreateInfo;
  9623. struct DeviceEventInfoEXT;
  9624. struct DeviceGeneratedCommandsFeaturesNVX;
  9625. struct DeviceGeneratedCommandsLimitsNVX;
  9626. struct DeviceGroupBindSparseInfo;
  9627. using DeviceGroupBindSparseInfoKHR = DeviceGroupBindSparseInfo;
  9628. struct DeviceGroupCommandBufferBeginInfo;
  9629. using DeviceGroupCommandBufferBeginInfoKHR = DeviceGroupCommandBufferBeginInfo;
  9630. struct DeviceGroupDeviceCreateInfo;
  9631. using DeviceGroupDeviceCreateInfoKHR = DeviceGroupDeviceCreateInfo;
  9632. struct DeviceGroupPresentCapabilitiesKHR;
  9633. struct DeviceGroupPresentInfoKHR;
  9634. struct DeviceGroupRenderPassBeginInfo;
  9635. using DeviceGroupRenderPassBeginInfoKHR = DeviceGroupRenderPassBeginInfo;
  9636. struct DeviceGroupSubmitInfo;
  9637. using DeviceGroupSubmitInfoKHR = DeviceGroupSubmitInfo;
  9638. struct DeviceGroupSwapchainCreateInfoKHR;
  9639. struct DeviceMemoryOverallocationCreateInfoAMD;
  9640. struct DeviceQueueCreateInfo;
  9641. struct DeviceQueueGlobalPriorityCreateInfoEXT;
  9642. struct DeviceQueueInfo2;
  9643. struct DispatchIndirectCommand;
  9644. struct DisplayEventInfoEXT;
  9645. struct DisplayModeCreateInfoKHR;
  9646. struct DisplayModeParametersKHR;
  9647. struct DisplayModeProperties2KHR;
  9648. struct DisplayModePropertiesKHR;
  9649. struct DisplayNativeHdrSurfaceCapabilitiesAMD;
  9650. struct DisplayPlaneCapabilities2KHR;
  9651. struct DisplayPlaneCapabilitiesKHR;
  9652. struct DisplayPlaneInfo2KHR;
  9653. struct DisplayPlaneProperties2KHR;
  9654. struct DisplayPlanePropertiesKHR;
  9655. struct DisplayPowerInfoEXT;
  9656. struct DisplayPresentInfoKHR;
  9657. struct DisplayProperties2KHR;
  9658. struct DisplayPropertiesKHR;
  9659. struct DisplaySurfaceCreateInfoKHR;
  9660. struct DrawIndexedIndirectCommand;
  9661. struct DrawIndirectCommand;
  9662. struct DrawMeshTasksIndirectCommandNV;
  9663. struct DrmFormatModifierPropertiesEXT;
  9664. struct DrmFormatModifierPropertiesListEXT;
  9665. struct EventCreateInfo;
  9666. struct ExportFenceCreateInfo;
  9667. using ExportFenceCreateInfoKHR = ExportFenceCreateInfo;
  9668. #ifdef VK_USE_PLATFORM_WIN32_KHR
  9669. struct ExportFenceWin32HandleInfoKHR;
  9670. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  9671. struct ExportMemoryAllocateInfo;
  9672. using ExportMemoryAllocateInfoKHR = ExportMemoryAllocateInfo;
  9673. struct ExportMemoryAllocateInfoNV;
  9674. #ifdef VK_USE_PLATFORM_WIN32_KHR
  9675. struct ExportMemoryWin32HandleInfoKHR;
  9676. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  9677. #ifdef VK_USE_PLATFORM_WIN32_KHR
  9678. struct ExportMemoryWin32HandleInfoNV;
  9679. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  9680. struct ExportSemaphoreCreateInfo;
  9681. using ExportSemaphoreCreateInfoKHR = ExportSemaphoreCreateInfo;
  9682. #ifdef VK_USE_PLATFORM_WIN32_KHR
  9683. struct ExportSemaphoreWin32HandleInfoKHR;
  9684. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  9685. struct ExtensionProperties;
  9686. struct Extent2D;
  9687. struct Extent3D;
  9688. struct ExternalBufferProperties;
  9689. using ExternalBufferPropertiesKHR = ExternalBufferProperties;
  9690. struct ExternalFenceProperties;
  9691. using ExternalFencePropertiesKHR = ExternalFenceProperties;
  9692. #ifdef VK_USE_PLATFORM_ANDROID_KHR
  9693. struct ExternalFormatANDROID;
  9694. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  9695. struct ExternalImageFormatProperties;
  9696. using ExternalImageFormatPropertiesKHR = ExternalImageFormatProperties;
  9697. struct ExternalImageFormatPropertiesNV;
  9698. struct ExternalMemoryBufferCreateInfo;
  9699. using ExternalMemoryBufferCreateInfoKHR = ExternalMemoryBufferCreateInfo;
  9700. struct ExternalMemoryImageCreateInfo;
  9701. using ExternalMemoryImageCreateInfoKHR = ExternalMemoryImageCreateInfo;
  9702. struct ExternalMemoryImageCreateInfoNV;
  9703. struct ExternalMemoryProperties;
  9704. using ExternalMemoryPropertiesKHR = ExternalMemoryProperties;
  9705. struct ExternalSemaphoreProperties;
  9706. using ExternalSemaphorePropertiesKHR = ExternalSemaphoreProperties;
  9707. struct FenceCreateInfo;
  9708. struct FenceGetFdInfoKHR;
  9709. #ifdef VK_USE_PLATFORM_WIN32_KHR
  9710. struct FenceGetWin32HandleInfoKHR;
  9711. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  9712. struct FilterCubicImageViewImageFormatPropertiesEXT;
  9713. struct FormatProperties;
  9714. struct FormatProperties2;
  9715. using FormatProperties2KHR = FormatProperties2;
  9716. struct FramebufferAttachmentImageInfoKHR;
  9717. struct FramebufferAttachmentsCreateInfoKHR;
  9718. struct FramebufferCreateInfo;
  9719. struct FramebufferMixedSamplesCombinationNV;
  9720. struct GeometryAABBNV;
  9721. struct GeometryDataNV;
  9722. struct GeometryNV;
  9723. struct GeometryTrianglesNV;
  9724. struct GraphicsPipelineCreateInfo;
  9725. struct HdrMetadataEXT;
  9726. struct HeadlessSurfaceCreateInfoEXT;
  9727. #ifdef VK_USE_PLATFORM_IOS_MVK
  9728. struct IOSSurfaceCreateInfoMVK;
  9729. #endif /*VK_USE_PLATFORM_IOS_MVK*/
  9730. struct ImageBlit;
  9731. struct ImageCopy;
  9732. struct ImageCreateInfo;
  9733. struct ImageDrmFormatModifierExplicitCreateInfoEXT;
  9734. struct ImageDrmFormatModifierListCreateInfoEXT;
  9735. struct ImageDrmFormatModifierPropertiesEXT;
  9736. struct ImageFormatListCreateInfoKHR;
  9737. struct ImageFormatProperties;
  9738. struct ImageFormatProperties2;
  9739. using ImageFormatProperties2KHR = ImageFormatProperties2;
  9740. struct ImageMemoryBarrier;
  9741. struct ImageMemoryRequirementsInfo2;
  9742. using ImageMemoryRequirementsInfo2KHR = ImageMemoryRequirementsInfo2;
  9743. #ifdef VK_USE_PLATFORM_FUCHSIA
  9744. struct ImagePipeSurfaceCreateInfoFUCHSIA;
  9745. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  9746. struct ImagePlaneMemoryRequirementsInfo;
  9747. using ImagePlaneMemoryRequirementsInfoKHR = ImagePlaneMemoryRequirementsInfo;
  9748. struct ImageResolve;
  9749. struct ImageSparseMemoryRequirementsInfo2;
  9750. using ImageSparseMemoryRequirementsInfo2KHR = ImageSparseMemoryRequirementsInfo2;
  9751. struct ImageStencilUsageCreateInfoEXT;
  9752. struct ImageSubresource;
  9753. struct ImageSubresourceLayers;
  9754. struct ImageSubresourceRange;
  9755. struct ImageSwapchainCreateInfoKHR;
  9756. struct ImageViewASTCDecodeModeEXT;
  9757. struct ImageViewCreateInfo;
  9758. struct ImageViewHandleInfoNVX;
  9759. struct ImageViewUsageCreateInfo;
  9760. using ImageViewUsageCreateInfoKHR = ImageViewUsageCreateInfo;
  9761. #ifdef VK_USE_PLATFORM_ANDROID_KHR
  9762. struct ImportAndroidHardwareBufferInfoANDROID;
  9763. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  9764. struct ImportFenceFdInfoKHR;
  9765. #ifdef VK_USE_PLATFORM_WIN32_KHR
  9766. struct ImportFenceWin32HandleInfoKHR;
  9767. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  9768. struct ImportMemoryFdInfoKHR;
  9769. struct ImportMemoryHostPointerInfoEXT;
  9770. #ifdef VK_USE_PLATFORM_WIN32_KHR
  9771. struct ImportMemoryWin32HandleInfoKHR;
  9772. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  9773. #ifdef VK_USE_PLATFORM_WIN32_KHR
  9774. struct ImportMemoryWin32HandleInfoNV;
  9775. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  9776. struct ImportSemaphoreFdInfoKHR;
  9777. #ifdef VK_USE_PLATFORM_WIN32_KHR
  9778. struct ImportSemaphoreWin32HandleInfoKHR;
  9779. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  9780. struct IndirectCommandsLayoutCreateInfoNVX;
  9781. struct IndirectCommandsLayoutTokenNVX;
  9782. struct IndirectCommandsTokenNVX;
  9783. struct InitializePerformanceApiInfoINTEL;
  9784. struct InputAttachmentAspectReference;
  9785. using InputAttachmentAspectReferenceKHR = InputAttachmentAspectReference;
  9786. struct InstanceCreateInfo;
  9787. struct LayerProperties;
  9788. #ifdef VK_USE_PLATFORM_MACOS_MVK
  9789. struct MacOSSurfaceCreateInfoMVK;
  9790. #endif /*VK_USE_PLATFORM_MACOS_MVK*/
  9791. struct MappedMemoryRange;
  9792. struct MemoryAllocateFlagsInfo;
  9793. using MemoryAllocateFlagsInfoKHR = MemoryAllocateFlagsInfo;
  9794. struct MemoryAllocateInfo;
  9795. struct MemoryBarrier;
  9796. struct MemoryDedicatedAllocateInfo;
  9797. using MemoryDedicatedAllocateInfoKHR = MemoryDedicatedAllocateInfo;
  9798. struct MemoryDedicatedRequirements;
  9799. using MemoryDedicatedRequirementsKHR = MemoryDedicatedRequirements;
  9800. struct MemoryFdPropertiesKHR;
  9801. #ifdef VK_USE_PLATFORM_ANDROID_KHR
  9802. struct MemoryGetAndroidHardwareBufferInfoANDROID;
  9803. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  9804. struct MemoryGetFdInfoKHR;
  9805. #ifdef VK_USE_PLATFORM_WIN32_KHR
  9806. struct MemoryGetWin32HandleInfoKHR;
  9807. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  9808. struct MemoryHeap;
  9809. struct MemoryHostPointerPropertiesEXT;
  9810. struct MemoryPriorityAllocateInfoEXT;
  9811. struct MemoryRequirements;
  9812. struct MemoryRequirements2;
  9813. using MemoryRequirements2KHR = MemoryRequirements2;
  9814. struct MemoryType;
  9815. #ifdef VK_USE_PLATFORM_WIN32_KHR
  9816. struct MemoryWin32HandlePropertiesKHR;
  9817. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  9818. #ifdef VK_USE_PLATFORM_METAL_EXT
  9819. struct MetalSurfaceCreateInfoEXT;
  9820. #endif /*VK_USE_PLATFORM_METAL_EXT*/
  9821. struct MultisamplePropertiesEXT;
  9822. struct ObjectTableCreateInfoNVX;
  9823. struct ObjectTableDescriptorSetEntryNVX;
  9824. struct ObjectTableEntryNVX;
  9825. struct ObjectTableIndexBufferEntryNVX;
  9826. struct ObjectTablePipelineEntryNVX;
  9827. struct ObjectTablePushConstantEntryNVX;
  9828. struct ObjectTableVertexBufferEntryNVX;
  9829. struct Offset2D;
  9830. struct Offset3D;
  9831. struct PastPresentationTimingGOOGLE;
  9832. struct PerformanceConfigurationAcquireInfoINTEL;
  9833. struct PerformanceMarkerInfoINTEL;
  9834. struct PerformanceOverrideInfoINTEL;
  9835. struct PerformanceStreamMarkerInfoINTEL;
  9836. union PerformanceValueDataINTEL;
  9837. struct PerformanceValueINTEL;
  9838. struct PhysicalDevice16BitStorageFeatures;
  9839. using PhysicalDevice16BitStorageFeaturesKHR = PhysicalDevice16BitStorageFeatures;
  9840. struct PhysicalDevice8BitStorageFeaturesKHR;
  9841. struct PhysicalDeviceASTCDecodeFeaturesEXT;
  9842. struct PhysicalDeviceBlendOperationAdvancedFeaturesEXT;
  9843. struct PhysicalDeviceBlendOperationAdvancedPropertiesEXT;
  9844. struct PhysicalDeviceBufferDeviceAddressFeaturesEXT;
  9845. using PhysicalDeviceBufferAddressFeaturesEXT = PhysicalDeviceBufferDeviceAddressFeaturesEXT;
  9846. struct PhysicalDeviceComputeShaderDerivativesFeaturesNV;
  9847. struct PhysicalDeviceConditionalRenderingFeaturesEXT;
  9848. struct PhysicalDeviceConservativeRasterizationPropertiesEXT;
  9849. struct PhysicalDeviceCooperativeMatrixFeaturesNV;
  9850. struct PhysicalDeviceCooperativeMatrixPropertiesNV;
  9851. struct PhysicalDeviceCornerSampledImageFeaturesNV;
  9852. struct PhysicalDeviceCoverageReductionModeFeaturesNV;
  9853. struct PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
  9854. struct PhysicalDeviceDepthClipEnableFeaturesEXT;
  9855. struct PhysicalDeviceDepthStencilResolvePropertiesKHR;
  9856. struct PhysicalDeviceDescriptorIndexingFeaturesEXT;
  9857. struct PhysicalDeviceDescriptorIndexingPropertiesEXT;
  9858. struct PhysicalDeviceDiscardRectanglePropertiesEXT;
  9859. struct PhysicalDeviceDriverPropertiesKHR;
  9860. struct PhysicalDeviceExclusiveScissorFeaturesNV;
  9861. struct PhysicalDeviceExternalBufferInfo;
  9862. using PhysicalDeviceExternalBufferInfoKHR = PhysicalDeviceExternalBufferInfo;
  9863. struct PhysicalDeviceExternalFenceInfo;
  9864. using PhysicalDeviceExternalFenceInfoKHR = PhysicalDeviceExternalFenceInfo;
  9865. struct PhysicalDeviceExternalImageFormatInfo;
  9866. using PhysicalDeviceExternalImageFormatInfoKHR = PhysicalDeviceExternalImageFormatInfo;
  9867. struct PhysicalDeviceExternalMemoryHostPropertiesEXT;
  9868. struct PhysicalDeviceExternalSemaphoreInfo;
  9869. using PhysicalDeviceExternalSemaphoreInfoKHR = PhysicalDeviceExternalSemaphoreInfo;
  9870. struct PhysicalDeviceFeatures;
  9871. struct PhysicalDeviceFeatures2;
  9872. using PhysicalDeviceFeatures2KHR = PhysicalDeviceFeatures2;
  9873. struct PhysicalDeviceFloat16Int8FeaturesKHR;
  9874. struct PhysicalDeviceFloatControlsPropertiesKHR;
  9875. struct PhysicalDeviceFragmentDensityMapFeaturesEXT;
  9876. struct PhysicalDeviceFragmentDensityMapPropertiesEXT;
  9877. struct PhysicalDeviceFragmentShaderBarycentricFeaturesNV;
  9878. struct PhysicalDeviceFragmentShaderInterlockFeaturesEXT;
  9879. struct PhysicalDeviceGroupProperties;
  9880. using PhysicalDeviceGroupPropertiesKHR = PhysicalDeviceGroupProperties;
  9881. struct PhysicalDeviceHostQueryResetFeaturesEXT;
  9882. struct PhysicalDeviceIDProperties;
  9883. using PhysicalDeviceIDPropertiesKHR = PhysicalDeviceIDProperties;
  9884. struct PhysicalDeviceImageDrmFormatModifierInfoEXT;
  9885. struct PhysicalDeviceImageFormatInfo2;
  9886. using PhysicalDeviceImageFormatInfo2KHR = PhysicalDeviceImageFormatInfo2;
  9887. struct PhysicalDeviceImageViewImageFormatInfoEXT;
  9888. struct PhysicalDeviceImagelessFramebufferFeaturesKHR;
  9889. struct PhysicalDeviceInlineUniformBlockFeaturesEXT;
  9890. struct PhysicalDeviceInlineUniformBlockPropertiesEXT;
  9891. struct PhysicalDeviceLimits;
  9892. struct PhysicalDeviceMaintenance3Properties;
  9893. using PhysicalDeviceMaintenance3PropertiesKHR = PhysicalDeviceMaintenance3Properties;
  9894. struct PhysicalDeviceMemoryBudgetPropertiesEXT;
  9895. struct PhysicalDeviceMemoryPriorityFeaturesEXT;
  9896. struct PhysicalDeviceMemoryProperties;
  9897. struct PhysicalDeviceMemoryProperties2;
  9898. using PhysicalDeviceMemoryProperties2KHR = PhysicalDeviceMemoryProperties2;
  9899. struct PhysicalDeviceMeshShaderFeaturesNV;
  9900. struct PhysicalDeviceMeshShaderPropertiesNV;
  9901. struct PhysicalDeviceMultiviewFeatures;
  9902. using PhysicalDeviceMultiviewFeaturesKHR = PhysicalDeviceMultiviewFeatures;
  9903. struct PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
  9904. struct PhysicalDeviceMultiviewProperties;
  9905. using PhysicalDeviceMultiviewPropertiesKHR = PhysicalDeviceMultiviewProperties;
  9906. struct PhysicalDevicePCIBusInfoPropertiesEXT;
  9907. struct PhysicalDevicePointClippingProperties;
  9908. using PhysicalDevicePointClippingPropertiesKHR = PhysicalDevicePointClippingProperties;
  9909. struct PhysicalDeviceProperties;
  9910. struct PhysicalDeviceProperties2;
  9911. using PhysicalDeviceProperties2KHR = PhysicalDeviceProperties2;
  9912. struct PhysicalDeviceProtectedMemoryFeatures;
  9913. struct PhysicalDeviceProtectedMemoryProperties;
  9914. struct PhysicalDevicePushDescriptorPropertiesKHR;
  9915. struct PhysicalDeviceRayTracingPropertiesNV;
  9916. struct PhysicalDeviceRepresentativeFragmentTestFeaturesNV;
  9917. struct PhysicalDeviceSampleLocationsPropertiesEXT;
  9918. struct PhysicalDeviceSamplerFilterMinmaxPropertiesEXT;
  9919. struct PhysicalDeviceSamplerYcbcrConversionFeatures;
  9920. using PhysicalDeviceSamplerYcbcrConversionFeaturesKHR = PhysicalDeviceSamplerYcbcrConversionFeatures;
  9921. struct PhysicalDeviceScalarBlockLayoutFeaturesEXT;
  9922. struct PhysicalDeviceShaderAtomicInt64FeaturesKHR;
  9923. struct PhysicalDeviceShaderCorePropertiesAMD;
  9924. struct PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
  9925. struct PhysicalDeviceShaderDrawParametersFeatures;
  9926. using PhysicalDeviceShaderDrawParameterFeatures = PhysicalDeviceShaderDrawParametersFeatures;
  9927. struct PhysicalDeviceShaderImageFootprintFeaturesNV;
  9928. struct PhysicalDeviceShaderIntegerFunctions2INTEL;
  9929. struct PhysicalDeviceShaderSMBuiltinsFeaturesNV;
  9930. struct PhysicalDeviceShaderSMBuiltinsPropertiesNV;
  9931. struct PhysicalDeviceShadingRateImageFeaturesNV;
  9932. struct PhysicalDeviceShadingRateImagePropertiesNV;
  9933. struct PhysicalDeviceSparseImageFormatInfo2;
  9934. using PhysicalDeviceSparseImageFormatInfo2KHR = PhysicalDeviceSparseImageFormatInfo2;
  9935. struct PhysicalDeviceSparseProperties;
  9936. struct PhysicalDeviceSubgroupProperties;
  9937. struct PhysicalDeviceSurfaceInfo2KHR;
  9938. struct PhysicalDeviceTexelBufferAlignmentFeaturesEXT;
  9939. struct PhysicalDeviceTexelBufferAlignmentPropertiesEXT;
  9940. struct PhysicalDeviceTransformFeedbackFeaturesEXT;
  9941. struct PhysicalDeviceTransformFeedbackPropertiesEXT;
  9942. struct PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR;
  9943. struct PhysicalDeviceVariablePointersFeatures;
  9944. using PhysicalDeviceVariablePointersFeaturesKHR = PhysicalDeviceVariablePointersFeatures;
  9945. using PhysicalDeviceVariablePointerFeaturesKHR = PhysicalDeviceVariablePointersFeatures;
  9946. using PhysicalDeviceVariablePointerFeatures = PhysicalDeviceVariablePointersFeatures;
  9947. struct PhysicalDeviceVertexAttributeDivisorFeaturesEXT;
  9948. struct PhysicalDeviceVertexAttributeDivisorPropertiesEXT;
  9949. struct PhysicalDeviceVulkanMemoryModelFeaturesKHR;
  9950. struct PhysicalDeviceYcbcrImageArraysFeaturesEXT;
  9951. struct PipelineCacheCreateInfo;
  9952. struct PipelineColorBlendAdvancedStateCreateInfoEXT;
  9953. struct PipelineColorBlendAttachmentState;
  9954. struct PipelineColorBlendStateCreateInfo;
  9955. struct PipelineCoverageModulationStateCreateInfoNV;
  9956. struct PipelineCoverageReductionStateCreateInfoNV;
  9957. struct PipelineCoverageToColorStateCreateInfoNV;
  9958. struct PipelineCreationFeedbackCreateInfoEXT;
  9959. struct PipelineCreationFeedbackEXT;
  9960. struct PipelineDepthStencilStateCreateInfo;
  9961. struct PipelineDiscardRectangleStateCreateInfoEXT;
  9962. struct PipelineDynamicStateCreateInfo;
  9963. struct PipelineInputAssemblyStateCreateInfo;
  9964. struct PipelineLayoutCreateInfo;
  9965. struct PipelineMultisampleStateCreateInfo;
  9966. struct PipelineRasterizationConservativeStateCreateInfoEXT;
  9967. struct PipelineRasterizationDepthClipStateCreateInfoEXT;
  9968. struct PipelineRasterizationStateCreateInfo;
  9969. struct PipelineRasterizationStateRasterizationOrderAMD;
  9970. struct PipelineRasterizationStateStreamCreateInfoEXT;
  9971. struct PipelineRepresentativeFragmentTestStateCreateInfoNV;
  9972. struct PipelineSampleLocationsStateCreateInfoEXT;
  9973. struct PipelineShaderStageCreateInfo;
  9974. struct PipelineTessellationDomainOriginStateCreateInfo;
  9975. using PipelineTessellationDomainOriginStateCreateInfoKHR = PipelineTessellationDomainOriginStateCreateInfo;
  9976. struct PipelineTessellationStateCreateInfo;
  9977. struct PipelineVertexInputDivisorStateCreateInfoEXT;
  9978. struct PipelineVertexInputStateCreateInfo;
  9979. struct PipelineViewportCoarseSampleOrderStateCreateInfoNV;
  9980. struct PipelineViewportExclusiveScissorStateCreateInfoNV;
  9981. struct PipelineViewportShadingRateImageStateCreateInfoNV;
  9982. struct PipelineViewportStateCreateInfo;
  9983. struct PipelineViewportSwizzleStateCreateInfoNV;
  9984. struct PipelineViewportWScalingStateCreateInfoNV;
  9985. #ifdef VK_USE_PLATFORM_GGP
  9986. struct PresentFrameTokenGGP;
  9987. #endif /*VK_USE_PLATFORM_GGP*/
  9988. struct PresentInfoKHR;
  9989. struct PresentRegionKHR;
  9990. struct PresentRegionsKHR;
  9991. struct PresentTimeGOOGLE;
  9992. struct PresentTimesInfoGOOGLE;
  9993. struct ProtectedSubmitInfo;
  9994. struct PushConstantRange;
  9995. struct QueryPoolCreateInfo;
  9996. struct QueryPoolCreateInfoINTEL;
  9997. struct QueueFamilyCheckpointPropertiesNV;
  9998. struct QueueFamilyProperties;
  9999. struct QueueFamilyProperties2;
  10000. using QueueFamilyProperties2KHR = QueueFamilyProperties2;
  10001. struct RayTracingPipelineCreateInfoNV;
  10002. struct RayTracingShaderGroupCreateInfoNV;
  10003. struct Rect2D;
  10004. struct RectLayerKHR;
  10005. struct RefreshCycleDurationGOOGLE;
  10006. struct RenderPassAttachmentBeginInfoKHR;
  10007. struct RenderPassBeginInfo;
  10008. struct RenderPassCreateInfo;
  10009. struct RenderPassCreateInfo2KHR;
  10010. struct RenderPassFragmentDensityMapCreateInfoEXT;
  10011. struct RenderPassInputAttachmentAspectCreateInfo;
  10012. using RenderPassInputAttachmentAspectCreateInfoKHR = RenderPassInputAttachmentAspectCreateInfo;
  10013. struct RenderPassMultiviewCreateInfo;
  10014. using RenderPassMultiviewCreateInfoKHR = RenderPassMultiviewCreateInfo;
  10015. struct RenderPassSampleLocationsBeginInfoEXT;
  10016. struct SampleLocationEXT;
  10017. struct SampleLocationsInfoEXT;
  10018. struct SamplerCreateInfo;
  10019. struct SamplerReductionModeCreateInfoEXT;
  10020. struct SamplerYcbcrConversionCreateInfo;
  10021. using SamplerYcbcrConversionCreateInfoKHR = SamplerYcbcrConversionCreateInfo;
  10022. struct SamplerYcbcrConversionImageFormatProperties;
  10023. using SamplerYcbcrConversionImageFormatPropertiesKHR = SamplerYcbcrConversionImageFormatProperties;
  10024. struct SamplerYcbcrConversionInfo;
  10025. using SamplerYcbcrConversionInfoKHR = SamplerYcbcrConversionInfo;
  10026. struct SemaphoreCreateInfo;
  10027. struct SemaphoreGetFdInfoKHR;
  10028. #ifdef VK_USE_PLATFORM_WIN32_KHR
  10029. struct SemaphoreGetWin32HandleInfoKHR;
  10030. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  10031. struct ShaderModuleCreateInfo;
  10032. struct ShaderModuleValidationCacheCreateInfoEXT;
  10033. struct ShaderResourceUsageAMD;
  10034. struct ShaderStatisticsInfoAMD;
  10035. struct ShadingRatePaletteNV;
  10036. struct SharedPresentSurfaceCapabilitiesKHR;
  10037. struct SparseBufferMemoryBindInfo;
  10038. struct SparseImageFormatProperties;
  10039. struct SparseImageFormatProperties2;
  10040. using SparseImageFormatProperties2KHR = SparseImageFormatProperties2;
  10041. struct SparseImageMemoryBind;
  10042. struct SparseImageMemoryBindInfo;
  10043. struct SparseImageMemoryRequirements;
  10044. struct SparseImageMemoryRequirements2;
  10045. using SparseImageMemoryRequirements2KHR = SparseImageMemoryRequirements2;
  10046. struct SparseImageOpaqueMemoryBindInfo;
  10047. struct SparseMemoryBind;
  10048. struct SpecializationInfo;
  10049. struct SpecializationMapEntry;
  10050. struct StencilOpState;
  10051. #ifdef VK_USE_PLATFORM_GGP
  10052. struct StreamDescriptorSurfaceCreateInfoGGP;
  10053. #endif /*VK_USE_PLATFORM_GGP*/
  10054. struct SubmitInfo;
  10055. struct SubpassBeginInfoKHR;
  10056. struct SubpassDependency;
  10057. struct SubpassDependency2KHR;
  10058. struct SubpassDescription;
  10059. struct SubpassDescription2KHR;
  10060. struct SubpassDescriptionDepthStencilResolveKHR;
  10061. struct SubpassEndInfoKHR;
  10062. struct SubpassSampleLocationsEXT;
  10063. struct SubresourceLayout;
  10064. struct SurfaceCapabilities2EXT;
  10065. struct SurfaceCapabilities2KHR;
  10066. #ifdef VK_USE_PLATFORM_WIN32_KHR
  10067. struct SurfaceCapabilitiesFullScreenExclusiveEXT;
  10068. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  10069. struct SurfaceCapabilitiesKHR;
  10070. struct SurfaceFormat2KHR;
  10071. struct SurfaceFormatKHR;
  10072. #ifdef VK_USE_PLATFORM_WIN32_KHR
  10073. struct SurfaceFullScreenExclusiveInfoEXT;
  10074. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  10075. #ifdef VK_USE_PLATFORM_WIN32_KHR
  10076. struct SurfaceFullScreenExclusiveWin32InfoEXT;
  10077. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  10078. struct SurfaceProtectedCapabilitiesKHR;
  10079. struct SwapchainCounterCreateInfoEXT;
  10080. struct SwapchainCreateInfoKHR;
  10081. struct SwapchainDisplayNativeHdrCreateInfoAMD;
  10082. struct TextureLODGatherFormatPropertiesAMD;
  10083. struct ValidationCacheCreateInfoEXT;
  10084. struct ValidationFeaturesEXT;
  10085. struct ValidationFlagsEXT;
  10086. struct VertexInputAttributeDescription;
  10087. struct VertexInputBindingDescription;
  10088. struct VertexInputBindingDivisorDescriptionEXT;
  10089. #ifdef VK_USE_PLATFORM_VI_NN
  10090. struct ViSurfaceCreateInfoNN;
  10091. #endif /*VK_USE_PLATFORM_VI_NN*/
  10092. struct Viewport;
  10093. struct ViewportSwizzleNV;
  10094. struct ViewportWScalingNV;
  10095. #ifdef VK_USE_PLATFORM_WAYLAND_KHR
  10096. struct WaylandSurfaceCreateInfoKHR;
  10097. #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
  10098. #ifdef VK_USE_PLATFORM_WIN32_KHR
  10099. struct Win32KeyedMutexAcquireReleaseInfoKHR;
  10100. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  10101. #ifdef VK_USE_PLATFORM_WIN32_KHR
  10102. struct Win32KeyedMutexAcquireReleaseInfoNV;
  10103. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  10104. #ifdef VK_USE_PLATFORM_WIN32_KHR
  10105. struct Win32SurfaceCreateInfoKHR;
  10106. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  10107. struct WriteDescriptorSet;
  10108. struct WriteDescriptorSetAccelerationStructureNV;
  10109. struct WriteDescriptorSetInlineUniformBlockEXT;
  10110. struct XYColorEXT;
  10111. #ifdef VK_USE_PLATFORM_XCB_KHR
  10112. struct XcbSurfaceCreateInfoKHR;
  10113. #endif /*VK_USE_PLATFORM_XCB_KHR*/
  10114. #ifdef VK_USE_PLATFORM_XLIB_KHR
  10115. struct XlibSurfaceCreateInfoKHR;
  10116. #endif /*VK_USE_PLATFORM_XLIB_KHR*/
  10117. class SurfaceKHR
  10118. {
  10119. public:
  10120. using CType = VkSurfaceKHR;
  10121. public:
  10122. VULKAN_HPP_CONSTEXPR SurfaceKHR()
  10123. : m_surfaceKHR(VK_NULL_HANDLE)
  10124. {}
  10125. VULKAN_HPP_CONSTEXPR SurfaceKHR( std::nullptr_t )
  10126. : m_surfaceKHR(VK_NULL_HANDLE)
  10127. {}
  10128. VULKAN_HPP_TYPESAFE_EXPLICIT SurfaceKHR( VkSurfaceKHR surfaceKHR )
  10129. : m_surfaceKHR( surfaceKHR )
  10130. {}
  10131. #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
  10132. SurfaceKHR & operator=(VkSurfaceKHR surfaceKHR)
  10133. {
  10134. m_surfaceKHR = surfaceKHR;
  10135. return *this;
  10136. }
  10137. #endif
  10138. SurfaceKHR & operator=( std::nullptr_t )
  10139. {
  10140. m_surfaceKHR = VK_NULL_HANDLE;
  10141. return *this;
  10142. }
  10143. bool operator==( SurfaceKHR const & rhs ) const
  10144. {
  10145. return m_surfaceKHR == rhs.m_surfaceKHR;
  10146. }
  10147. bool operator!=(SurfaceKHR const & rhs ) const
  10148. {
  10149. return m_surfaceKHR != rhs.m_surfaceKHR;
  10150. }
  10151. bool operator<(SurfaceKHR const & rhs ) const
  10152. {
  10153. return m_surfaceKHR < rhs.m_surfaceKHR;
  10154. }
  10155. VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSurfaceKHR() const
  10156. {
  10157. return m_surfaceKHR;
  10158. }
  10159. explicit operator bool() const
  10160. {
  10161. return m_surfaceKHR != VK_NULL_HANDLE;
  10162. }
  10163. bool operator!() const
  10164. {
  10165. return m_surfaceKHR == VK_NULL_HANDLE;
  10166. }
  10167. private:
  10168. VkSurfaceKHR m_surfaceKHR;
  10169. };
  10170. static_assert( sizeof( SurfaceKHR ) == sizeof( VkSurfaceKHR ), "handle and wrapper have different size!" );
  10171. class DebugReportCallbackEXT
  10172. {
  10173. public:
  10174. using CType = VkDebugReportCallbackEXT;
  10175. public:
  10176. VULKAN_HPP_CONSTEXPR DebugReportCallbackEXT()
  10177. : m_debugReportCallbackEXT(VK_NULL_HANDLE)
  10178. {}
  10179. VULKAN_HPP_CONSTEXPR DebugReportCallbackEXT( std::nullptr_t )
  10180. : m_debugReportCallbackEXT(VK_NULL_HANDLE)
  10181. {}
  10182. VULKAN_HPP_TYPESAFE_EXPLICIT DebugReportCallbackEXT( VkDebugReportCallbackEXT debugReportCallbackEXT )
  10183. : m_debugReportCallbackEXT( debugReportCallbackEXT )
  10184. {}
  10185. #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
  10186. DebugReportCallbackEXT & operator=(VkDebugReportCallbackEXT debugReportCallbackEXT)
  10187. {
  10188. m_debugReportCallbackEXT = debugReportCallbackEXT;
  10189. return *this;
  10190. }
  10191. #endif
  10192. DebugReportCallbackEXT & operator=( std::nullptr_t )
  10193. {
  10194. m_debugReportCallbackEXT = VK_NULL_HANDLE;
  10195. return *this;
  10196. }
  10197. bool operator==( DebugReportCallbackEXT const & rhs ) const
  10198. {
  10199. return m_debugReportCallbackEXT == rhs.m_debugReportCallbackEXT;
  10200. }
  10201. bool operator!=(DebugReportCallbackEXT const & rhs ) const
  10202. {
  10203. return m_debugReportCallbackEXT != rhs.m_debugReportCallbackEXT;
  10204. }
  10205. bool operator<(DebugReportCallbackEXT const & rhs ) const
  10206. {
  10207. return m_debugReportCallbackEXT < rhs.m_debugReportCallbackEXT;
  10208. }
  10209. VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDebugReportCallbackEXT() const
  10210. {
  10211. return m_debugReportCallbackEXT;
  10212. }
  10213. explicit operator bool() const
  10214. {
  10215. return m_debugReportCallbackEXT != VK_NULL_HANDLE;
  10216. }
  10217. bool operator!() const
  10218. {
  10219. return m_debugReportCallbackEXT == VK_NULL_HANDLE;
  10220. }
  10221. private:
  10222. VkDebugReportCallbackEXT m_debugReportCallbackEXT;
  10223. };
  10224. static_assert( sizeof( DebugReportCallbackEXT ) == sizeof( VkDebugReportCallbackEXT ), "handle and wrapper have different size!" );
  10225. class DebugUtilsMessengerEXT
  10226. {
  10227. public:
  10228. using CType = VkDebugUtilsMessengerEXT;
  10229. public:
  10230. VULKAN_HPP_CONSTEXPR DebugUtilsMessengerEXT()
  10231. : m_debugUtilsMessengerEXT(VK_NULL_HANDLE)
  10232. {}
  10233. VULKAN_HPP_CONSTEXPR DebugUtilsMessengerEXT( std::nullptr_t )
  10234. : m_debugUtilsMessengerEXT(VK_NULL_HANDLE)
  10235. {}
  10236. VULKAN_HPP_TYPESAFE_EXPLICIT DebugUtilsMessengerEXT( VkDebugUtilsMessengerEXT debugUtilsMessengerEXT )
  10237. : m_debugUtilsMessengerEXT( debugUtilsMessengerEXT )
  10238. {}
  10239. #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
  10240. DebugUtilsMessengerEXT & operator=(VkDebugUtilsMessengerEXT debugUtilsMessengerEXT)
  10241. {
  10242. m_debugUtilsMessengerEXT = debugUtilsMessengerEXT;
  10243. return *this;
  10244. }
  10245. #endif
  10246. DebugUtilsMessengerEXT & operator=( std::nullptr_t )
  10247. {
  10248. m_debugUtilsMessengerEXT = VK_NULL_HANDLE;
  10249. return *this;
  10250. }
  10251. bool operator==( DebugUtilsMessengerEXT const & rhs ) const
  10252. {
  10253. return m_debugUtilsMessengerEXT == rhs.m_debugUtilsMessengerEXT;
  10254. }
  10255. bool operator!=(DebugUtilsMessengerEXT const & rhs ) const
  10256. {
  10257. return m_debugUtilsMessengerEXT != rhs.m_debugUtilsMessengerEXT;
  10258. }
  10259. bool operator<(DebugUtilsMessengerEXT const & rhs ) const
  10260. {
  10261. return m_debugUtilsMessengerEXT < rhs.m_debugUtilsMessengerEXT;
  10262. }
  10263. VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDebugUtilsMessengerEXT() const
  10264. {
  10265. return m_debugUtilsMessengerEXT;
  10266. }
  10267. explicit operator bool() const
  10268. {
  10269. return m_debugUtilsMessengerEXT != VK_NULL_HANDLE;
  10270. }
  10271. bool operator!() const
  10272. {
  10273. return m_debugUtilsMessengerEXT == VK_NULL_HANDLE;
  10274. }
  10275. private:
  10276. VkDebugUtilsMessengerEXT m_debugUtilsMessengerEXT;
  10277. };
  10278. static_assert( sizeof( DebugUtilsMessengerEXT ) == sizeof( VkDebugUtilsMessengerEXT ), "handle and wrapper have different size!" );
  10279. class DisplayKHR
  10280. {
  10281. public:
  10282. using CType = VkDisplayKHR;
  10283. public:
  10284. VULKAN_HPP_CONSTEXPR DisplayKHR()
  10285. : m_displayKHR(VK_NULL_HANDLE)
  10286. {}
  10287. VULKAN_HPP_CONSTEXPR DisplayKHR( std::nullptr_t )
  10288. : m_displayKHR(VK_NULL_HANDLE)
  10289. {}
  10290. VULKAN_HPP_TYPESAFE_EXPLICIT DisplayKHR( VkDisplayKHR displayKHR )
  10291. : m_displayKHR( displayKHR )
  10292. {}
  10293. #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
  10294. DisplayKHR & operator=(VkDisplayKHR displayKHR)
  10295. {
  10296. m_displayKHR = displayKHR;
  10297. return *this;
  10298. }
  10299. #endif
  10300. DisplayKHR & operator=( std::nullptr_t )
  10301. {
  10302. m_displayKHR = VK_NULL_HANDLE;
  10303. return *this;
  10304. }
  10305. bool operator==( DisplayKHR const & rhs ) const
  10306. {
  10307. return m_displayKHR == rhs.m_displayKHR;
  10308. }
  10309. bool operator!=(DisplayKHR const & rhs ) const
  10310. {
  10311. return m_displayKHR != rhs.m_displayKHR;
  10312. }
  10313. bool operator<(DisplayKHR const & rhs ) const
  10314. {
  10315. return m_displayKHR < rhs.m_displayKHR;
  10316. }
  10317. VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDisplayKHR() const
  10318. {
  10319. return m_displayKHR;
  10320. }
  10321. explicit operator bool() const
  10322. {
  10323. return m_displayKHR != VK_NULL_HANDLE;
  10324. }
  10325. bool operator!() const
  10326. {
  10327. return m_displayKHR == VK_NULL_HANDLE;
  10328. }
  10329. private:
  10330. VkDisplayKHR m_displayKHR;
  10331. };
  10332. static_assert( sizeof( DisplayKHR ) == sizeof( VkDisplayKHR ), "handle and wrapper have different size!" );
  10333. class SwapchainKHR
  10334. {
  10335. public:
  10336. using CType = VkSwapchainKHR;
  10337. public:
  10338. VULKAN_HPP_CONSTEXPR SwapchainKHR()
  10339. : m_swapchainKHR(VK_NULL_HANDLE)
  10340. {}
  10341. VULKAN_HPP_CONSTEXPR SwapchainKHR( std::nullptr_t )
  10342. : m_swapchainKHR(VK_NULL_HANDLE)
  10343. {}
  10344. VULKAN_HPP_TYPESAFE_EXPLICIT SwapchainKHR( VkSwapchainKHR swapchainKHR )
  10345. : m_swapchainKHR( swapchainKHR )
  10346. {}
  10347. #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
  10348. SwapchainKHR & operator=(VkSwapchainKHR swapchainKHR)
  10349. {
  10350. m_swapchainKHR = swapchainKHR;
  10351. return *this;
  10352. }
  10353. #endif
  10354. SwapchainKHR & operator=( std::nullptr_t )
  10355. {
  10356. m_swapchainKHR = VK_NULL_HANDLE;
  10357. return *this;
  10358. }
  10359. bool operator==( SwapchainKHR const & rhs ) const
  10360. {
  10361. return m_swapchainKHR == rhs.m_swapchainKHR;
  10362. }
  10363. bool operator!=(SwapchainKHR const & rhs ) const
  10364. {
  10365. return m_swapchainKHR != rhs.m_swapchainKHR;
  10366. }
  10367. bool operator<(SwapchainKHR const & rhs ) const
  10368. {
  10369. return m_swapchainKHR < rhs.m_swapchainKHR;
  10370. }
  10371. VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSwapchainKHR() const
  10372. {
  10373. return m_swapchainKHR;
  10374. }
  10375. explicit operator bool() const
  10376. {
  10377. return m_swapchainKHR != VK_NULL_HANDLE;
  10378. }
  10379. bool operator!() const
  10380. {
  10381. return m_swapchainKHR == VK_NULL_HANDLE;
  10382. }
  10383. private:
  10384. VkSwapchainKHR m_swapchainKHR;
  10385. };
  10386. static_assert( sizeof( SwapchainKHR ) == sizeof( VkSwapchainKHR ), "handle and wrapper have different size!" );
  10387. class Semaphore
  10388. {
  10389. public:
  10390. using CType = VkSemaphore;
  10391. public:
  10392. VULKAN_HPP_CONSTEXPR Semaphore()
  10393. : m_semaphore(VK_NULL_HANDLE)
  10394. {}
  10395. VULKAN_HPP_CONSTEXPR Semaphore( std::nullptr_t )
  10396. : m_semaphore(VK_NULL_HANDLE)
  10397. {}
  10398. VULKAN_HPP_TYPESAFE_EXPLICIT Semaphore( VkSemaphore semaphore )
  10399. : m_semaphore( semaphore )
  10400. {}
  10401. #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
  10402. Semaphore & operator=(VkSemaphore semaphore)
  10403. {
  10404. m_semaphore = semaphore;
  10405. return *this;
  10406. }
  10407. #endif
  10408. Semaphore & operator=( std::nullptr_t )
  10409. {
  10410. m_semaphore = VK_NULL_HANDLE;
  10411. return *this;
  10412. }
  10413. bool operator==( Semaphore const & rhs ) const
  10414. {
  10415. return m_semaphore == rhs.m_semaphore;
  10416. }
  10417. bool operator!=(Semaphore const & rhs ) const
  10418. {
  10419. return m_semaphore != rhs.m_semaphore;
  10420. }
  10421. bool operator<(Semaphore const & rhs ) const
  10422. {
  10423. return m_semaphore < rhs.m_semaphore;
  10424. }
  10425. VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSemaphore() const
  10426. {
  10427. return m_semaphore;
  10428. }
  10429. explicit operator bool() const
  10430. {
  10431. return m_semaphore != VK_NULL_HANDLE;
  10432. }
  10433. bool operator!() const
  10434. {
  10435. return m_semaphore == VK_NULL_HANDLE;
  10436. }
  10437. private:
  10438. VkSemaphore m_semaphore;
  10439. };
  10440. static_assert( sizeof( Semaphore ) == sizeof( VkSemaphore ), "handle and wrapper have different size!" );
  10441. class Fence
  10442. {
  10443. public:
  10444. using CType = VkFence;
  10445. public:
  10446. VULKAN_HPP_CONSTEXPR Fence()
  10447. : m_fence(VK_NULL_HANDLE)
  10448. {}
  10449. VULKAN_HPP_CONSTEXPR Fence( std::nullptr_t )
  10450. : m_fence(VK_NULL_HANDLE)
  10451. {}
  10452. VULKAN_HPP_TYPESAFE_EXPLICIT Fence( VkFence fence )
  10453. : m_fence( fence )
  10454. {}
  10455. #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
  10456. Fence & operator=(VkFence fence)
  10457. {
  10458. m_fence = fence;
  10459. return *this;
  10460. }
  10461. #endif
  10462. Fence & operator=( std::nullptr_t )
  10463. {
  10464. m_fence = VK_NULL_HANDLE;
  10465. return *this;
  10466. }
  10467. bool operator==( Fence const & rhs ) const
  10468. {
  10469. return m_fence == rhs.m_fence;
  10470. }
  10471. bool operator!=(Fence const & rhs ) const
  10472. {
  10473. return m_fence != rhs.m_fence;
  10474. }
  10475. bool operator<(Fence const & rhs ) const
  10476. {
  10477. return m_fence < rhs.m_fence;
  10478. }
  10479. VULKAN_HPP_TYPESAFE_EXPLICIT operator VkFence() const
  10480. {
  10481. return m_fence;
  10482. }
  10483. explicit operator bool() const
  10484. {
  10485. return m_fence != VK_NULL_HANDLE;
  10486. }
  10487. bool operator!() const
  10488. {
  10489. return m_fence == VK_NULL_HANDLE;
  10490. }
  10491. private:
  10492. VkFence m_fence;
  10493. };
  10494. static_assert( sizeof( Fence ) == sizeof( VkFence ), "handle and wrapper have different size!" );
  10495. class PerformanceConfigurationINTEL
  10496. {
  10497. public:
  10498. using CType = VkPerformanceConfigurationINTEL;
  10499. public:
  10500. VULKAN_HPP_CONSTEXPR PerformanceConfigurationINTEL()
  10501. : m_performanceConfigurationINTEL(VK_NULL_HANDLE)
  10502. {}
  10503. VULKAN_HPP_CONSTEXPR PerformanceConfigurationINTEL( std::nullptr_t )
  10504. : m_performanceConfigurationINTEL(VK_NULL_HANDLE)
  10505. {}
  10506. VULKAN_HPP_TYPESAFE_EXPLICIT PerformanceConfigurationINTEL( VkPerformanceConfigurationINTEL performanceConfigurationINTEL )
  10507. : m_performanceConfigurationINTEL( performanceConfigurationINTEL )
  10508. {}
  10509. #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
  10510. PerformanceConfigurationINTEL & operator=(VkPerformanceConfigurationINTEL performanceConfigurationINTEL)
  10511. {
  10512. m_performanceConfigurationINTEL = performanceConfigurationINTEL;
  10513. return *this;
  10514. }
  10515. #endif
  10516. PerformanceConfigurationINTEL & operator=( std::nullptr_t )
  10517. {
  10518. m_performanceConfigurationINTEL = VK_NULL_HANDLE;
  10519. return *this;
  10520. }
  10521. bool operator==( PerformanceConfigurationINTEL const & rhs ) const
  10522. {
  10523. return m_performanceConfigurationINTEL == rhs.m_performanceConfigurationINTEL;
  10524. }
  10525. bool operator!=(PerformanceConfigurationINTEL const & rhs ) const
  10526. {
  10527. return m_performanceConfigurationINTEL != rhs.m_performanceConfigurationINTEL;
  10528. }
  10529. bool operator<(PerformanceConfigurationINTEL const & rhs ) const
  10530. {
  10531. return m_performanceConfigurationINTEL < rhs.m_performanceConfigurationINTEL;
  10532. }
  10533. VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPerformanceConfigurationINTEL() const
  10534. {
  10535. return m_performanceConfigurationINTEL;
  10536. }
  10537. explicit operator bool() const
  10538. {
  10539. return m_performanceConfigurationINTEL != VK_NULL_HANDLE;
  10540. }
  10541. bool operator!() const
  10542. {
  10543. return m_performanceConfigurationINTEL == VK_NULL_HANDLE;
  10544. }
  10545. private:
  10546. VkPerformanceConfigurationINTEL m_performanceConfigurationINTEL;
  10547. };
  10548. static_assert( sizeof( PerformanceConfigurationINTEL ) == sizeof( VkPerformanceConfigurationINTEL ), "handle and wrapper have different size!" );
  10549. class QueryPool
  10550. {
  10551. public:
  10552. using CType = VkQueryPool;
  10553. public:
  10554. VULKAN_HPP_CONSTEXPR QueryPool()
  10555. : m_queryPool(VK_NULL_HANDLE)
  10556. {}
  10557. VULKAN_HPP_CONSTEXPR QueryPool( std::nullptr_t )
  10558. : m_queryPool(VK_NULL_HANDLE)
  10559. {}
  10560. VULKAN_HPP_TYPESAFE_EXPLICIT QueryPool( VkQueryPool queryPool )
  10561. : m_queryPool( queryPool )
  10562. {}
  10563. #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
  10564. QueryPool & operator=(VkQueryPool queryPool)
  10565. {
  10566. m_queryPool = queryPool;
  10567. return *this;
  10568. }
  10569. #endif
  10570. QueryPool & operator=( std::nullptr_t )
  10571. {
  10572. m_queryPool = VK_NULL_HANDLE;
  10573. return *this;
  10574. }
  10575. bool operator==( QueryPool const & rhs ) const
  10576. {
  10577. return m_queryPool == rhs.m_queryPool;
  10578. }
  10579. bool operator!=(QueryPool const & rhs ) const
  10580. {
  10581. return m_queryPool != rhs.m_queryPool;
  10582. }
  10583. bool operator<(QueryPool const & rhs ) const
  10584. {
  10585. return m_queryPool < rhs.m_queryPool;
  10586. }
  10587. VULKAN_HPP_TYPESAFE_EXPLICIT operator VkQueryPool() const
  10588. {
  10589. return m_queryPool;
  10590. }
  10591. explicit operator bool() const
  10592. {
  10593. return m_queryPool != VK_NULL_HANDLE;
  10594. }
  10595. bool operator!() const
  10596. {
  10597. return m_queryPool == VK_NULL_HANDLE;
  10598. }
  10599. private:
  10600. VkQueryPool m_queryPool;
  10601. };
  10602. static_assert( sizeof( QueryPool ) == sizeof( VkQueryPool ), "handle and wrapper have different size!" );
  10603. class Buffer
  10604. {
  10605. public:
  10606. using CType = VkBuffer;
  10607. public:
  10608. VULKAN_HPP_CONSTEXPR Buffer()
  10609. : m_buffer(VK_NULL_HANDLE)
  10610. {}
  10611. VULKAN_HPP_CONSTEXPR Buffer( std::nullptr_t )
  10612. : m_buffer(VK_NULL_HANDLE)
  10613. {}
  10614. VULKAN_HPP_TYPESAFE_EXPLICIT Buffer( VkBuffer buffer )
  10615. : m_buffer( buffer )
  10616. {}
  10617. #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
  10618. Buffer & operator=(VkBuffer buffer)
  10619. {
  10620. m_buffer = buffer;
  10621. return *this;
  10622. }
  10623. #endif
  10624. Buffer & operator=( std::nullptr_t )
  10625. {
  10626. m_buffer = VK_NULL_HANDLE;
  10627. return *this;
  10628. }
  10629. bool operator==( Buffer const & rhs ) const
  10630. {
  10631. return m_buffer == rhs.m_buffer;
  10632. }
  10633. bool operator!=(Buffer const & rhs ) const
  10634. {
  10635. return m_buffer != rhs.m_buffer;
  10636. }
  10637. bool operator<(Buffer const & rhs ) const
  10638. {
  10639. return m_buffer < rhs.m_buffer;
  10640. }
  10641. VULKAN_HPP_TYPESAFE_EXPLICIT operator VkBuffer() const
  10642. {
  10643. return m_buffer;
  10644. }
  10645. explicit operator bool() const
  10646. {
  10647. return m_buffer != VK_NULL_HANDLE;
  10648. }
  10649. bool operator!() const
  10650. {
  10651. return m_buffer == VK_NULL_HANDLE;
  10652. }
  10653. private:
  10654. VkBuffer m_buffer;
  10655. };
  10656. static_assert( sizeof( Buffer ) == sizeof( VkBuffer ), "handle and wrapper have different size!" );
  10657. class PipelineLayout
  10658. {
  10659. public:
  10660. using CType = VkPipelineLayout;
  10661. public:
  10662. VULKAN_HPP_CONSTEXPR PipelineLayout()
  10663. : m_pipelineLayout(VK_NULL_HANDLE)
  10664. {}
  10665. VULKAN_HPP_CONSTEXPR PipelineLayout( std::nullptr_t )
  10666. : m_pipelineLayout(VK_NULL_HANDLE)
  10667. {}
  10668. VULKAN_HPP_TYPESAFE_EXPLICIT PipelineLayout( VkPipelineLayout pipelineLayout )
  10669. : m_pipelineLayout( pipelineLayout )
  10670. {}
  10671. #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
  10672. PipelineLayout & operator=(VkPipelineLayout pipelineLayout)
  10673. {
  10674. m_pipelineLayout = pipelineLayout;
  10675. return *this;
  10676. }
  10677. #endif
  10678. PipelineLayout & operator=( std::nullptr_t )
  10679. {
  10680. m_pipelineLayout = VK_NULL_HANDLE;
  10681. return *this;
  10682. }
  10683. bool operator==( PipelineLayout const & rhs ) const
  10684. {
  10685. return m_pipelineLayout == rhs.m_pipelineLayout;
  10686. }
  10687. bool operator!=(PipelineLayout const & rhs ) const
  10688. {
  10689. return m_pipelineLayout != rhs.m_pipelineLayout;
  10690. }
  10691. bool operator<(PipelineLayout const & rhs ) const
  10692. {
  10693. return m_pipelineLayout < rhs.m_pipelineLayout;
  10694. }
  10695. VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPipelineLayout() const
  10696. {
  10697. return m_pipelineLayout;
  10698. }
  10699. explicit operator bool() const
  10700. {
  10701. return m_pipelineLayout != VK_NULL_HANDLE;
  10702. }
  10703. bool operator!() const
  10704. {
  10705. return m_pipelineLayout == VK_NULL_HANDLE;
  10706. }
  10707. private:
  10708. VkPipelineLayout m_pipelineLayout;
  10709. };
  10710. static_assert( sizeof( PipelineLayout ) == sizeof( VkPipelineLayout ), "handle and wrapper have different size!" );
  10711. class DescriptorSet
  10712. {
  10713. public:
  10714. using CType = VkDescriptorSet;
  10715. public:
  10716. VULKAN_HPP_CONSTEXPR DescriptorSet()
  10717. : m_descriptorSet(VK_NULL_HANDLE)
  10718. {}
  10719. VULKAN_HPP_CONSTEXPR DescriptorSet( std::nullptr_t )
  10720. : m_descriptorSet(VK_NULL_HANDLE)
  10721. {}
  10722. VULKAN_HPP_TYPESAFE_EXPLICIT DescriptorSet( VkDescriptorSet descriptorSet )
  10723. : m_descriptorSet( descriptorSet )
  10724. {}
  10725. #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
  10726. DescriptorSet & operator=(VkDescriptorSet descriptorSet)
  10727. {
  10728. m_descriptorSet = descriptorSet;
  10729. return *this;
  10730. }
  10731. #endif
  10732. DescriptorSet & operator=( std::nullptr_t )
  10733. {
  10734. m_descriptorSet = VK_NULL_HANDLE;
  10735. return *this;
  10736. }
  10737. bool operator==( DescriptorSet const & rhs ) const
  10738. {
  10739. return m_descriptorSet == rhs.m_descriptorSet;
  10740. }
  10741. bool operator!=(DescriptorSet const & rhs ) const
  10742. {
  10743. return m_descriptorSet != rhs.m_descriptorSet;
  10744. }
  10745. bool operator<(DescriptorSet const & rhs ) const
  10746. {
  10747. return m_descriptorSet < rhs.m_descriptorSet;
  10748. }
  10749. VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDescriptorSet() const
  10750. {
  10751. return m_descriptorSet;
  10752. }
  10753. explicit operator bool() const
  10754. {
  10755. return m_descriptorSet != VK_NULL_HANDLE;
  10756. }
  10757. bool operator!() const
  10758. {
  10759. return m_descriptorSet == VK_NULL_HANDLE;
  10760. }
  10761. private:
  10762. VkDescriptorSet m_descriptorSet;
  10763. };
  10764. static_assert( sizeof( DescriptorSet ) == sizeof( VkDescriptorSet ), "handle and wrapper have different size!" );
  10765. class Pipeline
  10766. {
  10767. public:
  10768. using CType = VkPipeline;
  10769. public:
  10770. VULKAN_HPP_CONSTEXPR Pipeline()
  10771. : m_pipeline(VK_NULL_HANDLE)
  10772. {}
  10773. VULKAN_HPP_CONSTEXPR Pipeline( std::nullptr_t )
  10774. : m_pipeline(VK_NULL_HANDLE)
  10775. {}
  10776. VULKAN_HPP_TYPESAFE_EXPLICIT Pipeline( VkPipeline pipeline )
  10777. : m_pipeline( pipeline )
  10778. {}
  10779. #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
  10780. Pipeline & operator=(VkPipeline pipeline)
  10781. {
  10782. m_pipeline = pipeline;
  10783. return *this;
  10784. }
  10785. #endif
  10786. Pipeline & operator=( std::nullptr_t )
  10787. {
  10788. m_pipeline = VK_NULL_HANDLE;
  10789. return *this;
  10790. }
  10791. bool operator==( Pipeline const & rhs ) const
  10792. {
  10793. return m_pipeline == rhs.m_pipeline;
  10794. }
  10795. bool operator!=(Pipeline const & rhs ) const
  10796. {
  10797. return m_pipeline != rhs.m_pipeline;
  10798. }
  10799. bool operator<(Pipeline const & rhs ) const
  10800. {
  10801. return m_pipeline < rhs.m_pipeline;
  10802. }
  10803. VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPipeline() const
  10804. {
  10805. return m_pipeline;
  10806. }
  10807. explicit operator bool() const
  10808. {
  10809. return m_pipeline != VK_NULL_HANDLE;
  10810. }
  10811. bool operator!() const
  10812. {
  10813. return m_pipeline == VK_NULL_HANDLE;
  10814. }
  10815. private:
  10816. VkPipeline m_pipeline;
  10817. };
  10818. static_assert( sizeof( Pipeline ) == sizeof( VkPipeline ), "handle and wrapper have different size!" );
  10819. class ImageView
  10820. {
  10821. public:
  10822. using CType = VkImageView;
  10823. public:
  10824. VULKAN_HPP_CONSTEXPR ImageView()
  10825. : m_imageView(VK_NULL_HANDLE)
  10826. {}
  10827. VULKAN_HPP_CONSTEXPR ImageView( std::nullptr_t )
  10828. : m_imageView(VK_NULL_HANDLE)
  10829. {}
  10830. VULKAN_HPP_TYPESAFE_EXPLICIT ImageView( VkImageView imageView )
  10831. : m_imageView( imageView )
  10832. {}
  10833. #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
  10834. ImageView & operator=(VkImageView imageView)
  10835. {
  10836. m_imageView = imageView;
  10837. return *this;
  10838. }
  10839. #endif
  10840. ImageView & operator=( std::nullptr_t )
  10841. {
  10842. m_imageView = VK_NULL_HANDLE;
  10843. return *this;
  10844. }
  10845. bool operator==( ImageView const & rhs ) const
  10846. {
  10847. return m_imageView == rhs.m_imageView;
  10848. }
  10849. bool operator!=(ImageView const & rhs ) const
  10850. {
  10851. return m_imageView != rhs.m_imageView;
  10852. }
  10853. bool operator<(ImageView const & rhs ) const
  10854. {
  10855. return m_imageView < rhs.m_imageView;
  10856. }
  10857. VULKAN_HPP_TYPESAFE_EXPLICIT operator VkImageView() const
  10858. {
  10859. return m_imageView;
  10860. }
  10861. explicit operator bool() const
  10862. {
  10863. return m_imageView != VK_NULL_HANDLE;
  10864. }
  10865. bool operator!() const
  10866. {
  10867. return m_imageView == VK_NULL_HANDLE;
  10868. }
  10869. private:
  10870. VkImageView m_imageView;
  10871. };
  10872. static_assert( sizeof( ImageView ) == sizeof( VkImageView ), "handle and wrapper have different size!" );
  10873. class Image
  10874. {
  10875. public:
  10876. using CType = VkImage;
  10877. public:
  10878. VULKAN_HPP_CONSTEXPR Image()
  10879. : m_image(VK_NULL_HANDLE)
  10880. {}
  10881. VULKAN_HPP_CONSTEXPR Image( std::nullptr_t )
  10882. : m_image(VK_NULL_HANDLE)
  10883. {}
  10884. VULKAN_HPP_TYPESAFE_EXPLICIT Image( VkImage image )
  10885. : m_image( image )
  10886. {}
  10887. #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
  10888. Image & operator=(VkImage image)
  10889. {
  10890. m_image = image;
  10891. return *this;
  10892. }
  10893. #endif
  10894. Image & operator=( std::nullptr_t )
  10895. {
  10896. m_image = VK_NULL_HANDLE;
  10897. return *this;
  10898. }
  10899. bool operator==( Image const & rhs ) const
  10900. {
  10901. return m_image == rhs.m_image;
  10902. }
  10903. bool operator!=(Image const & rhs ) const
  10904. {
  10905. return m_image != rhs.m_image;
  10906. }
  10907. bool operator<(Image const & rhs ) const
  10908. {
  10909. return m_image < rhs.m_image;
  10910. }
  10911. VULKAN_HPP_TYPESAFE_EXPLICIT operator VkImage() const
  10912. {
  10913. return m_image;
  10914. }
  10915. explicit operator bool() const
  10916. {
  10917. return m_image != VK_NULL_HANDLE;
  10918. }
  10919. bool operator!() const
  10920. {
  10921. return m_image == VK_NULL_HANDLE;
  10922. }
  10923. private:
  10924. VkImage m_image;
  10925. };
  10926. static_assert( sizeof( Image ) == sizeof( VkImage ), "handle and wrapper have different size!" );
  10927. class AccelerationStructureNV
  10928. {
  10929. public:
  10930. using CType = VkAccelerationStructureNV;
  10931. public:
  10932. VULKAN_HPP_CONSTEXPR AccelerationStructureNV()
  10933. : m_accelerationStructureNV(VK_NULL_HANDLE)
  10934. {}
  10935. VULKAN_HPP_CONSTEXPR AccelerationStructureNV( std::nullptr_t )
  10936. : m_accelerationStructureNV(VK_NULL_HANDLE)
  10937. {}
  10938. VULKAN_HPP_TYPESAFE_EXPLICIT AccelerationStructureNV( VkAccelerationStructureNV accelerationStructureNV )
  10939. : m_accelerationStructureNV( accelerationStructureNV )
  10940. {}
  10941. #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
  10942. AccelerationStructureNV & operator=(VkAccelerationStructureNV accelerationStructureNV)
  10943. {
  10944. m_accelerationStructureNV = accelerationStructureNV;
  10945. return *this;
  10946. }
  10947. #endif
  10948. AccelerationStructureNV & operator=( std::nullptr_t )
  10949. {
  10950. m_accelerationStructureNV = VK_NULL_HANDLE;
  10951. return *this;
  10952. }
  10953. bool operator==( AccelerationStructureNV const & rhs ) const
  10954. {
  10955. return m_accelerationStructureNV == rhs.m_accelerationStructureNV;
  10956. }
  10957. bool operator!=(AccelerationStructureNV const & rhs ) const
  10958. {
  10959. return m_accelerationStructureNV != rhs.m_accelerationStructureNV;
  10960. }
  10961. bool operator<(AccelerationStructureNV const & rhs ) const
  10962. {
  10963. return m_accelerationStructureNV < rhs.m_accelerationStructureNV;
  10964. }
  10965. VULKAN_HPP_TYPESAFE_EXPLICIT operator VkAccelerationStructureNV() const
  10966. {
  10967. return m_accelerationStructureNV;
  10968. }
  10969. explicit operator bool() const
  10970. {
  10971. return m_accelerationStructureNV != VK_NULL_HANDLE;
  10972. }
  10973. bool operator!() const
  10974. {
  10975. return m_accelerationStructureNV == VK_NULL_HANDLE;
  10976. }
  10977. private:
  10978. VkAccelerationStructureNV m_accelerationStructureNV;
  10979. };
  10980. static_assert( sizeof( AccelerationStructureNV ) == sizeof( VkAccelerationStructureNV ), "handle and wrapper have different size!" );
  10981. class DescriptorUpdateTemplate
  10982. {
  10983. public:
  10984. using CType = VkDescriptorUpdateTemplate;
  10985. public:
  10986. VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplate()
  10987. : m_descriptorUpdateTemplate(VK_NULL_HANDLE)
  10988. {}
  10989. VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplate( std::nullptr_t )
  10990. : m_descriptorUpdateTemplate(VK_NULL_HANDLE)
  10991. {}
  10992. VULKAN_HPP_TYPESAFE_EXPLICIT DescriptorUpdateTemplate( VkDescriptorUpdateTemplate descriptorUpdateTemplate )
  10993. : m_descriptorUpdateTemplate( descriptorUpdateTemplate )
  10994. {}
  10995. #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
  10996. DescriptorUpdateTemplate & operator=(VkDescriptorUpdateTemplate descriptorUpdateTemplate)
  10997. {
  10998. m_descriptorUpdateTemplate = descriptorUpdateTemplate;
  10999. return *this;
  11000. }
  11001. #endif
  11002. DescriptorUpdateTemplate & operator=( std::nullptr_t )
  11003. {
  11004. m_descriptorUpdateTemplate = VK_NULL_HANDLE;
  11005. return *this;
  11006. }
  11007. bool operator==( DescriptorUpdateTemplate const & rhs ) const
  11008. {
  11009. return m_descriptorUpdateTemplate == rhs.m_descriptorUpdateTemplate;
  11010. }
  11011. bool operator!=(DescriptorUpdateTemplate const & rhs ) const
  11012. {
  11013. return m_descriptorUpdateTemplate != rhs.m_descriptorUpdateTemplate;
  11014. }
  11015. bool operator<(DescriptorUpdateTemplate const & rhs ) const
  11016. {
  11017. return m_descriptorUpdateTemplate < rhs.m_descriptorUpdateTemplate;
  11018. }
  11019. VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDescriptorUpdateTemplate() const
  11020. {
  11021. return m_descriptorUpdateTemplate;
  11022. }
  11023. explicit operator bool() const
  11024. {
  11025. return m_descriptorUpdateTemplate != VK_NULL_HANDLE;
  11026. }
  11027. bool operator!() const
  11028. {
  11029. return m_descriptorUpdateTemplate == VK_NULL_HANDLE;
  11030. }
  11031. private:
  11032. VkDescriptorUpdateTemplate m_descriptorUpdateTemplate;
  11033. };
  11034. static_assert( sizeof( DescriptorUpdateTemplate ) == sizeof( VkDescriptorUpdateTemplate ), "handle and wrapper have different size!" );
  11035. using DescriptorUpdateTemplateKHR = DescriptorUpdateTemplate;
  11036. class Event
  11037. {
  11038. public:
  11039. using CType = VkEvent;
  11040. public:
  11041. VULKAN_HPP_CONSTEXPR Event()
  11042. : m_event(VK_NULL_HANDLE)
  11043. {}
  11044. VULKAN_HPP_CONSTEXPR Event( std::nullptr_t )
  11045. : m_event(VK_NULL_HANDLE)
  11046. {}
  11047. VULKAN_HPP_TYPESAFE_EXPLICIT Event( VkEvent event )
  11048. : m_event( event )
  11049. {}
  11050. #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
  11051. Event & operator=(VkEvent event)
  11052. {
  11053. m_event = event;
  11054. return *this;
  11055. }
  11056. #endif
  11057. Event & operator=( std::nullptr_t )
  11058. {
  11059. m_event = VK_NULL_HANDLE;
  11060. return *this;
  11061. }
  11062. bool operator==( Event const & rhs ) const
  11063. {
  11064. return m_event == rhs.m_event;
  11065. }
  11066. bool operator!=(Event const & rhs ) const
  11067. {
  11068. return m_event != rhs.m_event;
  11069. }
  11070. bool operator<(Event const & rhs ) const
  11071. {
  11072. return m_event < rhs.m_event;
  11073. }
  11074. VULKAN_HPP_TYPESAFE_EXPLICIT operator VkEvent() const
  11075. {
  11076. return m_event;
  11077. }
  11078. explicit operator bool() const
  11079. {
  11080. return m_event != VK_NULL_HANDLE;
  11081. }
  11082. bool operator!() const
  11083. {
  11084. return m_event == VK_NULL_HANDLE;
  11085. }
  11086. private:
  11087. VkEvent m_event;
  11088. };
  11089. static_assert( sizeof( Event ) == sizeof( VkEvent ), "handle and wrapper have different size!" );
  11090. class CommandBuffer
  11091. {
  11092. public:
  11093. using CType = VkCommandBuffer;
  11094. public:
  11095. VULKAN_HPP_CONSTEXPR CommandBuffer()
  11096. : m_commandBuffer(VK_NULL_HANDLE)
  11097. {}
  11098. VULKAN_HPP_CONSTEXPR CommandBuffer( std::nullptr_t )
  11099. : m_commandBuffer(VK_NULL_HANDLE)
  11100. {}
  11101. VULKAN_HPP_TYPESAFE_EXPLICIT CommandBuffer( VkCommandBuffer commandBuffer )
  11102. : m_commandBuffer( commandBuffer )
  11103. {}
  11104. #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
  11105. CommandBuffer & operator=(VkCommandBuffer commandBuffer)
  11106. {
  11107. m_commandBuffer = commandBuffer;
  11108. return *this;
  11109. }
  11110. #endif
  11111. CommandBuffer & operator=( std::nullptr_t )
  11112. {
  11113. m_commandBuffer = VK_NULL_HANDLE;
  11114. return *this;
  11115. }
  11116. bool operator==( CommandBuffer const & rhs ) const
  11117. {
  11118. return m_commandBuffer == rhs.m_commandBuffer;
  11119. }
  11120. bool operator!=(CommandBuffer const & rhs ) const
  11121. {
  11122. return m_commandBuffer != rhs.m_commandBuffer;
  11123. }
  11124. bool operator<(CommandBuffer const & rhs ) const
  11125. {
  11126. return m_commandBuffer < rhs.m_commandBuffer;
  11127. }
  11128. template<typename Dispatch = DispatchLoaderDefault>
  11129. Result begin( const CommandBufferBeginInfo* pBeginInfo, Dispatch const &d = Dispatch() ) const;
  11130. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  11131. template<typename Dispatch = DispatchLoaderDefault>
  11132. ResultValueType<void>::type begin( const CommandBufferBeginInfo & beginInfo, Dispatch const &d = Dispatch() ) const;
  11133. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11134. template<typename Dispatch = DispatchLoaderDefault>
  11135. void beginConditionalRenderingEXT( const ConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin, Dispatch const &d = Dispatch() ) const;
  11136. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  11137. template<typename Dispatch = DispatchLoaderDefault>
  11138. void beginConditionalRenderingEXT( const ConditionalRenderingBeginInfoEXT & conditionalRenderingBegin, Dispatch const &d = Dispatch() ) const;
  11139. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11140. template<typename Dispatch = DispatchLoaderDefault>
  11141. void beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT* pLabelInfo, Dispatch const &d = Dispatch() ) const;
  11142. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  11143. template<typename Dispatch = DispatchLoaderDefault>
  11144. void beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const &d = Dispatch() ) const;
  11145. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11146. template<typename Dispatch = DispatchLoaderDefault>
  11147. void beginQuery( QueryPool queryPool, uint32_t query, QueryControlFlags flags, Dispatch const &d = Dispatch() ) const;
  11148. template<typename Dispatch = DispatchLoaderDefault>
  11149. void beginQueryIndexedEXT( QueryPool queryPool, uint32_t query, QueryControlFlags flags, uint32_t index, Dispatch const &d = Dispatch() ) const;
  11150. template<typename Dispatch = DispatchLoaderDefault>
  11151. void beginRenderPass( const RenderPassBeginInfo* pRenderPassBegin, SubpassContents contents, Dispatch const &d = Dispatch() ) const;
  11152. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  11153. template<typename Dispatch = DispatchLoaderDefault>
  11154. void beginRenderPass( const RenderPassBeginInfo & renderPassBegin, SubpassContents contents, Dispatch const &d = Dispatch() ) const;
  11155. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11156. template<typename Dispatch = DispatchLoaderDefault>
  11157. void beginRenderPass2KHR( const RenderPassBeginInfo* pRenderPassBegin, const SubpassBeginInfoKHR* pSubpassBeginInfo, Dispatch const &d = Dispatch() ) const;
  11158. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  11159. template<typename Dispatch = DispatchLoaderDefault>
  11160. void beginRenderPass2KHR( const RenderPassBeginInfo & renderPassBegin, const SubpassBeginInfoKHR & subpassBeginInfo, Dispatch const &d = Dispatch() ) const;
  11161. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11162. template<typename Dispatch = DispatchLoaderDefault>
  11163. void beginTransformFeedbackEXT( uint32_t firstCounterBuffer, uint32_t counterBufferCount, const Buffer* pCounterBuffers, const DeviceSize* pCounterBufferOffsets, Dispatch const &d = Dispatch() ) const;
  11164. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  11165. template<typename Dispatch = DispatchLoaderDefault>
  11166. void beginTransformFeedbackEXT( uint32_t firstCounterBuffer, ArrayProxy<const Buffer> counterBuffers, ArrayProxy<const DeviceSize> counterBufferOffsets, Dispatch const &d = Dispatch() ) const;
  11167. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11168. template<typename Dispatch = DispatchLoaderDefault>
  11169. void bindDescriptorSets( PipelineBindPoint pipelineBindPoint, PipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const DescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets, Dispatch const &d = Dispatch() ) const;
  11170. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  11171. template<typename Dispatch = DispatchLoaderDefault>
  11172. void bindDescriptorSets( PipelineBindPoint pipelineBindPoint, PipelineLayout layout, uint32_t firstSet, ArrayProxy<const DescriptorSet> descriptorSets, ArrayProxy<const uint32_t> dynamicOffsets, Dispatch const &d = Dispatch() ) const;
  11173. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11174. template<typename Dispatch = DispatchLoaderDefault>
  11175. void bindIndexBuffer( Buffer buffer, DeviceSize offset, IndexType indexType, Dispatch const &d = Dispatch() ) const;
  11176. template<typename Dispatch = DispatchLoaderDefault>
  11177. void bindPipeline( PipelineBindPoint pipelineBindPoint, Pipeline pipeline, Dispatch const &d = Dispatch() ) const;
  11178. template<typename Dispatch = DispatchLoaderDefault>
  11179. void bindShadingRateImageNV( ImageView imageView, ImageLayout imageLayout, Dispatch const &d = Dispatch() ) const;
  11180. template<typename Dispatch = DispatchLoaderDefault>
  11181. void bindTransformFeedbackBuffersEXT( uint32_t firstBinding, uint32_t bindingCount, const Buffer* pBuffers, const DeviceSize* pOffsets, const DeviceSize* pSizes, Dispatch const &d = Dispatch() ) const;
  11182. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  11183. template<typename Dispatch = DispatchLoaderDefault>
  11184. void bindTransformFeedbackBuffersEXT( uint32_t firstBinding, ArrayProxy<const Buffer> buffers, ArrayProxy<const DeviceSize> offsets, ArrayProxy<const DeviceSize> sizes, Dispatch const &d = Dispatch() ) const;
  11185. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11186. template<typename Dispatch = DispatchLoaderDefault>
  11187. void bindVertexBuffers( uint32_t firstBinding, uint32_t bindingCount, const Buffer* pBuffers, const DeviceSize* pOffsets, Dispatch const &d = Dispatch() ) const;
  11188. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  11189. template<typename Dispatch = DispatchLoaderDefault>
  11190. void bindVertexBuffers( uint32_t firstBinding, ArrayProxy<const Buffer> buffers, ArrayProxy<const DeviceSize> offsets, Dispatch const &d = Dispatch() ) const;
  11191. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11192. template<typename Dispatch = DispatchLoaderDefault>
  11193. void blitImage( Image srcImage, ImageLayout srcImageLayout, Image dstImage, ImageLayout dstImageLayout, uint32_t regionCount, const ImageBlit* pRegions, Filter filter, Dispatch const &d = Dispatch() ) const;
  11194. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  11195. template<typename Dispatch = DispatchLoaderDefault>
  11196. void blitImage( Image srcImage, ImageLayout srcImageLayout, Image dstImage, ImageLayout dstImageLayout, ArrayProxy<const ImageBlit> regions, Filter filter, Dispatch const &d = Dispatch() ) const;
  11197. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11198. template<typename Dispatch = DispatchLoaderDefault>
  11199. void buildAccelerationStructureNV( const AccelerationStructureInfoNV* pInfo, Buffer instanceData, DeviceSize instanceOffset, Bool32 update, AccelerationStructureNV dst, AccelerationStructureNV src, Buffer scratch, DeviceSize scratchOffset, Dispatch const &d = Dispatch() ) const;
  11200. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  11201. template<typename Dispatch = DispatchLoaderDefault>
  11202. void buildAccelerationStructureNV( const AccelerationStructureInfoNV & info, Buffer instanceData, DeviceSize instanceOffset, Bool32 update, AccelerationStructureNV dst, AccelerationStructureNV src, Buffer scratch, DeviceSize scratchOffset, Dispatch const &d = Dispatch() ) const;
  11203. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11204. template<typename Dispatch = DispatchLoaderDefault>
  11205. void clearAttachments( uint32_t attachmentCount, const ClearAttachment* pAttachments, uint32_t rectCount, const ClearRect* pRects, Dispatch const &d = Dispatch() ) const;
  11206. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  11207. template<typename Dispatch = DispatchLoaderDefault>
  11208. void clearAttachments( ArrayProxy<const ClearAttachment> attachments, ArrayProxy<const ClearRect> rects, Dispatch const &d = Dispatch() ) const;
  11209. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11210. template<typename Dispatch = DispatchLoaderDefault>
  11211. void clearColorImage( Image image, ImageLayout imageLayout, const ClearColorValue* pColor, uint32_t rangeCount, const ImageSubresourceRange* pRanges, Dispatch const &d = Dispatch() ) const;
  11212. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  11213. template<typename Dispatch = DispatchLoaderDefault>
  11214. void clearColorImage( Image image, ImageLayout imageLayout, const ClearColorValue & color, ArrayProxy<const ImageSubresourceRange> ranges, Dispatch const &d = Dispatch() ) const;
  11215. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11216. template<typename Dispatch = DispatchLoaderDefault>
  11217. void clearDepthStencilImage( Image image, ImageLayout imageLayout, const ClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const ImageSubresourceRange* pRanges, Dispatch const &d = Dispatch() ) const;
  11218. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  11219. template<typename Dispatch = DispatchLoaderDefault>
  11220. void clearDepthStencilImage( Image image, ImageLayout imageLayout, const ClearDepthStencilValue & depthStencil, ArrayProxy<const ImageSubresourceRange> ranges, Dispatch const &d = Dispatch() ) const;
  11221. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11222. template<typename Dispatch = DispatchLoaderDefault>
  11223. void copyAccelerationStructureNV( AccelerationStructureNV dst, AccelerationStructureNV src, CopyAccelerationStructureModeNV mode, Dispatch const &d = Dispatch() ) const;
  11224. template<typename Dispatch = DispatchLoaderDefault>
  11225. void copyBuffer( Buffer srcBuffer, Buffer dstBuffer, uint32_t regionCount, const BufferCopy* pRegions, Dispatch const &d = Dispatch() ) const;
  11226. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  11227. template<typename Dispatch = DispatchLoaderDefault>
  11228. void copyBuffer( Buffer srcBuffer, Buffer dstBuffer, ArrayProxy<const BufferCopy> regions, Dispatch const &d = Dispatch() ) const;
  11229. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11230. template<typename Dispatch = DispatchLoaderDefault>
  11231. void copyBufferToImage( Buffer srcBuffer, Image dstImage, ImageLayout dstImageLayout, uint32_t regionCount, const BufferImageCopy* pRegions, Dispatch const &d = Dispatch() ) const;
  11232. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  11233. template<typename Dispatch = DispatchLoaderDefault>
  11234. void copyBufferToImage( Buffer srcBuffer, Image dstImage, ImageLayout dstImageLayout, ArrayProxy<const BufferImageCopy> regions, Dispatch const &d = Dispatch() ) const;
  11235. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11236. template<typename Dispatch = DispatchLoaderDefault>
  11237. void copyImage( Image srcImage, ImageLayout srcImageLayout, Image dstImage, ImageLayout dstImageLayout, uint32_t regionCount, const ImageCopy* pRegions, Dispatch const &d = Dispatch() ) const;
  11238. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  11239. template<typename Dispatch = DispatchLoaderDefault>
  11240. void copyImage( Image srcImage, ImageLayout srcImageLayout, Image dstImage, ImageLayout dstImageLayout, ArrayProxy<const ImageCopy> regions, Dispatch const &d = Dispatch() ) const;
  11241. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11242. template<typename Dispatch = DispatchLoaderDefault>
  11243. void copyImageToBuffer( Image srcImage, ImageLayout srcImageLayout, Buffer dstBuffer, uint32_t regionCount, const BufferImageCopy* pRegions, Dispatch const &d = Dispatch() ) const;
  11244. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  11245. template<typename Dispatch = DispatchLoaderDefault>
  11246. void copyImageToBuffer( Image srcImage, ImageLayout srcImageLayout, Buffer dstBuffer, ArrayProxy<const BufferImageCopy> regions, Dispatch const &d = Dispatch() ) const;
  11247. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11248. template<typename Dispatch = DispatchLoaderDefault>
  11249. void copyQueryPoolResults( QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Buffer dstBuffer, DeviceSize dstOffset, DeviceSize stride, QueryResultFlags flags, Dispatch const &d = Dispatch() ) const;
  11250. template<typename Dispatch = DispatchLoaderDefault>
  11251. void debugMarkerBeginEXT( const DebugMarkerMarkerInfoEXT* pMarkerInfo, Dispatch const &d = Dispatch() ) const;
  11252. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  11253. template<typename Dispatch = DispatchLoaderDefault>
  11254. void debugMarkerBeginEXT( const DebugMarkerMarkerInfoEXT & markerInfo, Dispatch const &d = Dispatch() ) const;
  11255. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11256. template<typename Dispatch = DispatchLoaderDefault>
  11257. void debugMarkerEndEXT(Dispatch const &d = Dispatch() ) const;
  11258. template<typename Dispatch = DispatchLoaderDefault>
  11259. void debugMarkerInsertEXT( const DebugMarkerMarkerInfoEXT* pMarkerInfo, Dispatch const &d = Dispatch() ) const;
  11260. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  11261. template<typename Dispatch = DispatchLoaderDefault>
  11262. void debugMarkerInsertEXT( const DebugMarkerMarkerInfoEXT & markerInfo, Dispatch const &d = Dispatch() ) const;
  11263. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11264. template<typename Dispatch = DispatchLoaderDefault>
  11265. void dispatch( uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const &d = Dispatch() ) const;
  11266. template<typename Dispatch = DispatchLoaderDefault>
  11267. void dispatchBase( uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const &d = Dispatch() ) const;
  11268. template<typename Dispatch = DispatchLoaderDefault>
  11269. void dispatchBaseKHR( uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const &d = Dispatch() ) const;
  11270. template<typename Dispatch = DispatchLoaderDefault>
  11271. void dispatchIndirect( Buffer buffer, DeviceSize offset, Dispatch const &d = Dispatch() ) const;
  11272. template<typename Dispatch = DispatchLoaderDefault>
  11273. void draw( uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance, Dispatch const &d = Dispatch() ) const;
  11274. template<typename Dispatch = DispatchLoaderDefault>
  11275. void drawIndexed( uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance, Dispatch const &d = Dispatch() ) const;
  11276. template<typename Dispatch = DispatchLoaderDefault>
  11277. void drawIndexedIndirect( Buffer buffer, DeviceSize offset, uint32_t drawCount, uint32_t stride, Dispatch const &d = Dispatch() ) const;
  11278. template<typename Dispatch = DispatchLoaderDefault>
  11279. void drawIndexedIndirectCountAMD( Buffer buffer, DeviceSize offset, Buffer countBuffer, DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const &d = Dispatch() ) const;
  11280. template<typename Dispatch = DispatchLoaderDefault>
  11281. void drawIndexedIndirectCountKHR( Buffer buffer, DeviceSize offset, Buffer countBuffer, DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const &d = Dispatch() ) const;
  11282. template<typename Dispatch = DispatchLoaderDefault>
  11283. void drawIndirect( Buffer buffer, DeviceSize offset, uint32_t drawCount, uint32_t stride, Dispatch const &d = Dispatch() ) const;
  11284. template<typename Dispatch = DispatchLoaderDefault>
  11285. void drawIndirectByteCountEXT( uint32_t instanceCount, uint32_t firstInstance, Buffer counterBuffer, DeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride, Dispatch const &d = Dispatch() ) const;
  11286. template<typename Dispatch = DispatchLoaderDefault>
  11287. void drawIndirectCountAMD( Buffer buffer, DeviceSize offset, Buffer countBuffer, DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const &d = Dispatch() ) const;
  11288. template<typename Dispatch = DispatchLoaderDefault>
  11289. void drawIndirectCountKHR( Buffer buffer, DeviceSize offset, Buffer countBuffer, DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const &d = Dispatch() ) const;
  11290. template<typename Dispatch = DispatchLoaderDefault>
  11291. void drawMeshTasksIndirectCountNV( Buffer buffer, DeviceSize offset, Buffer countBuffer, DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const &d = Dispatch() ) const;
  11292. template<typename Dispatch = DispatchLoaderDefault>
  11293. void drawMeshTasksIndirectNV( Buffer buffer, DeviceSize offset, uint32_t drawCount, uint32_t stride, Dispatch const &d = Dispatch() ) const;
  11294. template<typename Dispatch = DispatchLoaderDefault>
  11295. void drawMeshTasksNV( uint32_t taskCount, uint32_t firstTask, Dispatch const &d = Dispatch() ) const;
  11296. template<typename Dispatch = DispatchLoaderDefault>
  11297. void endConditionalRenderingEXT(Dispatch const &d = Dispatch() ) const;
  11298. template<typename Dispatch = DispatchLoaderDefault>
  11299. void endDebugUtilsLabelEXT(Dispatch const &d = Dispatch() ) const;
  11300. template<typename Dispatch = DispatchLoaderDefault>
  11301. void endQuery( QueryPool queryPool, uint32_t query, Dispatch const &d = Dispatch() ) const;
  11302. template<typename Dispatch = DispatchLoaderDefault>
  11303. void endQueryIndexedEXT( QueryPool queryPool, uint32_t query, uint32_t index, Dispatch const &d = Dispatch() ) const;
  11304. template<typename Dispatch = DispatchLoaderDefault>
  11305. void endRenderPass(Dispatch const &d = Dispatch() ) const;
  11306. template<typename Dispatch = DispatchLoaderDefault>
  11307. void endRenderPass2KHR( const SubpassEndInfoKHR* pSubpassEndInfo, Dispatch const &d = Dispatch() ) const;
  11308. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  11309. template<typename Dispatch = DispatchLoaderDefault>
  11310. void endRenderPass2KHR( const SubpassEndInfoKHR & subpassEndInfo, Dispatch const &d = Dispatch() ) const;
  11311. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11312. template<typename Dispatch = DispatchLoaderDefault>
  11313. void endTransformFeedbackEXT( uint32_t firstCounterBuffer, uint32_t counterBufferCount, const Buffer* pCounterBuffers, const DeviceSize* pCounterBufferOffsets, Dispatch const &d = Dispatch() ) const;
  11314. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  11315. template<typename Dispatch = DispatchLoaderDefault>
  11316. void endTransformFeedbackEXT( uint32_t firstCounterBuffer, ArrayProxy<const Buffer> counterBuffers, ArrayProxy<const DeviceSize> counterBufferOffsets, Dispatch const &d = Dispatch() ) const;
  11317. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11318. template<typename Dispatch = DispatchLoaderDefault>
  11319. void executeCommands( uint32_t commandBufferCount, const CommandBuffer* pCommandBuffers, Dispatch const &d = Dispatch() ) const;
  11320. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  11321. template<typename Dispatch = DispatchLoaderDefault>
  11322. void executeCommands( ArrayProxy<const CommandBuffer> commandBuffers, Dispatch const &d = Dispatch() ) const;
  11323. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11324. template<typename Dispatch = DispatchLoaderDefault>
  11325. void fillBuffer( Buffer dstBuffer, DeviceSize dstOffset, DeviceSize size, uint32_t data, Dispatch const &d = Dispatch() ) const;
  11326. template<typename Dispatch = DispatchLoaderDefault>
  11327. void insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT* pLabelInfo, Dispatch const &d = Dispatch() ) const;
  11328. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  11329. template<typename Dispatch = DispatchLoaderDefault>
  11330. void insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const &d = Dispatch() ) const;
  11331. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11332. template<typename Dispatch = DispatchLoaderDefault>
  11333. void nextSubpass( SubpassContents contents, Dispatch const &d = Dispatch() ) const;
  11334. template<typename Dispatch = DispatchLoaderDefault>
  11335. void nextSubpass2KHR( const SubpassBeginInfoKHR* pSubpassBeginInfo, const SubpassEndInfoKHR* pSubpassEndInfo, Dispatch const &d = Dispatch() ) const;
  11336. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  11337. template<typename Dispatch = DispatchLoaderDefault>
  11338. void nextSubpass2KHR( const SubpassBeginInfoKHR & subpassBeginInfo, const SubpassEndInfoKHR & subpassEndInfo, Dispatch const &d = Dispatch() ) const;
  11339. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11340. template<typename Dispatch = DispatchLoaderDefault>
  11341. void pipelineBarrier( PipelineStageFlags srcStageMask, PipelineStageFlags dstStageMask, DependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const MemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const BufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const ImageMemoryBarrier* pImageMemoryBarriers, Dispatch const &d = Dispatch() ) const;
  11342. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  11343. template<typename Dispatch = DispatchLoaderDefault>
  11344. void pipelineBarrier( PipelineStageFlags srcStageMask, PipelineStageFlags dstStageMask, DependencyFlags dependencyFlags, ArrayProxy<const MemoryBarrier> memoryBarriers, ArrayProxy<const BufferMemoryBarrier> bufferMemoryBarriers, ArrayProxy<const ImageMemoryBarrier> imageMemoryBarriers, Dispatch const &d = Dispatch() ) const;
  11345. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11346. template<typename Dispatch = DispatchLoaderDefault>
  11347. void processCommandsNVX( const CmdProcessCommandsInfoNVX* pProcessCommandsInfo, Dispatch const &d = Dispatch() ) const;
  11348. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  11349. template<typename Dispatch = DispatchLoaderDefault>
  11350. void processCommandsNVX( const CmdProcessCommandsInfoNVX & processCommandsInfo, Dispatch const &d = Dispatch() ) const;
  11351. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11352. template<typename Dispatch = DispatchLoaderDefault>
  11353. void pushConstants( PipelineLayout layout, ShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues, Dispatch const &d = Dispatch() ) const;
  11354. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  11355. template<typename T, typename Dispatch = DispatchLoaderDefault>
  11356. void pushConstants( PipelineLayout layout, ShaderStageFlags stageFlags, uint32_t offset, ArrayProxy<const T> values, Dispatch const &d = Dispatch() ) const;
  11357. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11358. template<typename Dispatch = DispatchLoaderDefault>
  11359. void pushDescriptorSetKHR( PipelineBindPoint pipelineBindPoint, PipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const WriteDescriptorSet* pDescriptorWrites, Dispatch const &d = Dispatch() ) const;
  11360. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  11361. template<typename Dispatch = DispatchLoaderDefault>
  11362. void pushDescriptorSetKHR( PipelineBindPoint pipelineBindPoint, PipelineLayout layout, uint32_t set, ArrayProxy<const WriteDescriptorSet> descriptorWrites, Dispatch const &d = Dispatch() ) const;
  11363. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11364. template<typename Dispatch = DispatchLoaderDefault>
  11365. void pushDescriptorSetWithTemplateKHR( DescriptorUpdateTemplate descriptorUpdateTemplate, PipelineLayout layout, uint32_t set, const void* pData, Dispatch const &d = Dispatch() ) const;
  11366. template<typename Dispatch = DispatchLoaderDefault>
  11367. void reserveSpaceForCommandsNVX( const CmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo, Dispatch const &d = Dispatch() ) const;
  11368. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  11369. template<typename Dispatch = DispatchLoaderDefault>
  11370. void reserveSpaceForCommandsNVX( const CmdReserveSpaceForCommandsInfoNVX & reserveSpaceInfo, Dispatch const &d = Dispatch() ) const;
  11371. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11372. template<typename Dispatch = DispatchLoaderDefault>
  11373. void resetEvent( Event event, PipelineStageFlags stageMask, Dispatch const &d = Dispatch() ) const;
  11374. template<typename Dispatch = DispatchLoaderDefault>
  11375. void resetQueryPool( QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const &d = Dispatch() ) const;
  11376. template<typename Dispatch = DispatchLoaderDefault>
  11377. void resolveImage( Image srcImage, ImageLayout srcImageLayout, Image dstImage, ImageLayout dstImageLayout, uint32_t regionCount, const ImageResolve* pRegions, Dispatch const &d = Dispatch() ) const;
  11378. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  11379. template<typename Dispatch = DispatchLoaderDefault>
  11380. void resolveImage( Image srcImage, ImageLayout srcImageLayout, Image dstImage, ImageLayout dstImageLayout, ArrayProxy<const ImageResolve> regions, Dispatch const &d = Dispatch() ) const;
  11381. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11382. template<typename Dispatch = DispatchLoaderDefault>
  11383. void setBlendConstants( const float blendConstants[4], Dispatch const &d = Dispatch() ) const;
  11384. template<typename Dispatch = DispatchLoaderDefault>
  11385. void setCheckpointNV( const void* pCheckpointMarker, Dispatch const &d = Dispatch() ) const;
  11386. template<typename Dispatch = DispatchLoaderDefault>
  11387. void setCoarseSampleOrderNV( CoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const CoarseSampleOrderCustomNV* pCustomSampleOrders, Dispatch const &d = Dispatch() ) const;
  11388. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  11389. template<typename Dispatch = DispatchLoaderDefault>
  11390. void setCoarseSampleOrderNV( CoarseSampleOrderTypeNV sampleOrderType, ArrayProxy<const CoarseSampleOrderCustomNV> customSampleOrders, Dispatch const &d = Dispatch() ) const;
  11391. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11392. template<typename Dispatch = DispatchLoaderDefault>
  11393. void setDepthBias( float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor, Dispatch const &d = Dispatch() ) const;
  11394. template<typename Dispatch = DispatchLoaderDefault>
  11395. void setDepthBounds( float minDepthBounds, float maxDepthBounds, Dispatch const &d = Dispatch() ) const;
  11396. template<typename Dispatch = DispatchLoaderDefault>
  11397. void setDeviceMask( uint32_t deviceMask, Dispatch const &d = Dispatch() ) const;
  11398. template<typename Dispatch = DispatchLoaderDefault>
  11399. void setDeviceMaskKHR( uint32_t deviceMask, Dispatch const &d = Dispatch() ) const;
  11400. template<typename Dispatch = DispatchLoaderDefault>
  11401. void setDiscardRectangleEXT( uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const Rect2D* pDiscardRectangles, Dispatch const &d = Dispatch() ) const;
  11402. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  11403. template<typename Dispatch = DispatchLoaderDefault>
  11404. void setDiscardRectangleEXT( uint32_t firstDiscardRectangle, ArrayProxy<const Rect2D> discardRectangles, Dispatch const &d = Dispatch() ) const;
  11405. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11406. template<typename Dispatch = DispatchLoaderDefault>
  11407. void setEvent( Event event, PipelineStageFlags stageMask, Dispatch const &d = Dispatch() ) const;
  11408. template<typename Dispatch = DispatchLoaderDefault>
  11409. void setExclusiveScissorNV( uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const Rect2D* pExclusiveScissors, Dispatch const &d = Dispatch() ) const;
  11410. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  11411. template<typename Dispatch = DispatchLoaderDefault>
  11412. void setExclusiveScissorNV( uint32_t firstExclusiveScissor, ArrayProxy<const Rect2D> exclusiveScissors, Dispatch const &d = Dispatch() ) const;
  11413. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11414. template<typename Dispatch = DispatchLoaderDefault>
  11415. void setLineWidth( float lineWidth, Dispatch const &d = Dispatch() ) const;
  11416. template<typename Dispatch = DispatchLoaderDefault>
  11417. Result setPerformanceMarkerINTEL( const PerformanceMarkerInfoINTEL* pMarkerInfo, Dispatch const &d = Dispatch() ) const;
  11418. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  11419. template<typename Dispatch = DispatchLoaderDefault>
  11420. ResultValueType<void>::type setPerformanceMarkerINTEL( const PerformanceMarkerInfoINTEL & markerInfo, Dispatch const &d = Dispatch() ) const;
  11421. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11422. template<typename Dispatch = DispatchLoaderDefault>
  11423. Result setPerformanceOverrideINTEL( const PerformanceOverrideInfoINTEL* pOverrideInfo, Dispatch const &d = Dispatch() ) const;
  11424. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  11425. template<typename Dispatch = DispatchLoaderDefault>
  11426. ResultValueType<void>::type setPerformanceOverrideINTEL( const PerformanceOverrideInfoINTEL & overrideInfo, Dispatch const &d = Dispatch() ) const;
  11427. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11428. template<typename Dispatch = DispatchLoaderDefault>
  11429. Result setPerformanceStreamMarkerINTEL( const PerformanceStreamMarkerInfoINTEL* pMarkerInfo, Dispatch const &d = Dispatch() ) const;
  11430. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  11431. template<typename Dispatch = DispatchLoaderDefault>
  11432. ResultValueType<void>::type setPerformanceStreamMarkerINTEL( const PerformanceStreamMarkerInfoINTEL & markerInfo, Dispatch const &d = Dispatch() ) const;
  11433. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11434. template<typename Dispatch = DispatchLoaderDefault>
  11435. void setSampleLocationsEXT( const SampleLocationsInfoEXT* pSampleLocationsInfo, Dispatch const &d = Dispatch() ) const;
  11436. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  11437. template<typename Dispatch = DispatchLoaderDefault>
  11438. void setSampleLocationsEXT( const SampleLocationsInfoEXT & sampleLocationsInfo, Dispatch const &d = Dispatch() ) const;
  11439. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11440. template<typename Dispatch = DispatchLoaderDefault>
  11441. void setScissor( uint32_t firstScissor, uint32_t scissorCount, const Rect2D* pScissors, Dispatch const &d = Dispatch() ) const;
  11442. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  11443. template<typename Dispatch = DispatchLoaderDefault>
  11444. void setScissor( uint32_t firstScissor, ArrayProxy<const Rect2D> scissors, Dispatch const &d = Dispatch() ) const;
  11445. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11446. template<typename Dispatch = DispatchLoaderDefault>
  11447. void setStencilCompareMask( StencilFaceFlags faceMask, uint32_t compareMask, Dispatch const &d = Dispatch() ) const;
  11448. template<typename Dispatch = DispatchLoaderDefault>
  11449. void setStencilReference( StencilFaceFlags faceMask, uint32_t reference, Dispatch const &d = Dispatch() ) const;
  11450. template<typename Dispatch = DispatchLoaderDefault>
  11451. void setStencilWriteMask( StencilFaceFlags faceMask, uint32_t writeMask, Dispatch const &d = Dispatch() ) const;
  11452. template<typename Dispatch = DispatchLoaderDefault>
  11453. void setViewport( uint32_t firstViewport, uint32_t viewportCount, const Viewport* pViewports, Dispatch const &d = Dispatch() ) const;
  11454. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  11455. template<typename Dispatch = DispatchLoaderDefault>
  11456. void setViewport( uint32_t firstViewport, ArrayProxy<const Viewport> viewports, Dispatch const &d = Dispatch() ) const;
  11457. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11458. template<typename Dispatch = DispatchLoaderDefault>
  11459. void setViewportShadingRatePaletteNV( uint32_t firstViewport, uint32_t viewportCount, const ShadingRatePaletteNV* pShadingRatePalettes, Dispatch const &d = Dispatch() ) const;
  11460. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  11461. template<typename Dispatch = DispatchLoaderDefault>
  11462. void setViewportShadingRatePaletteNV( uint32_t firstViewport, ArrayProxy<const ShadingRatePaletteNV> shadingRatePalettes, Dispatch const &d = Dispatch() ) const;
  11463. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11464. template<typename Dispatch = DispatchLoaderDefault>
  11465. void setViewportWScalingNV( uint32_t firstViewport, uint32_t viewportCount, const ViewportWScalingNV* pViewportWScalings, Dispatch const &d = Dispatch() ) const;
  11466. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  11467. template<typename Dispatch = DispatchLoaderDefault>
  11468. void setViewportWScalingNV( uint32_t firstViewport, ArrayProxy<const ViewportWScalingNV> viewportWScalings, Dispatch const &d = Dispatch() ) const;
  11469. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11470. template<typename Dispatch = DispatchLoaderDefault>
  11471. void traceRaysNV( Buffer raygenShaderBindingTableBuffer, DeviceSize raygenShaderBindingOffset, Buffer missShaderBindingTableBuffer, DeviceSize missShaderBindingOffset, DeviceSize missShaderBindingStride, Buffer hitShaderBindingTableBuffer, DeviceSize hitShaderBindingOffset, DeviceSize hitShaderBindingStride, Buffer callableShaderBindingTableBuffer, DeviceSize callableShaderBindingOffset, DeviceSize callableShaderBindingStride, uint32_t width, uint32_t height, uint32_t depth, Dispatch const &d = Dispatch() ) const;
  11472. template<typename Dispatch = DispatchLoaderDefault>
  11473. void updateBuffer( Buffer dstBuffer, DeviceSize dstOffset, DeviceSize dataSize, const void* pData, Dispatch const &d = Dispatch() ) const;
  11474. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  11475. template<typename T, typename Dispatch = DispatchLoaderDefault>
  11476. void updateBuffer( Buffer dstBuffer, DeviceSize dstOffset, ArrayProxy<const T> data, Dispatch const &d = Dispatch() ) const;
  11477. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11478. template<typename Dispatch = DispatchLoaderDefault>
  11479. void waitEvents( uint32_t eventCount, const Event* pEvents, PipelineStageFlags srcStageMask, PipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const MemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const BufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const ImageMemoryBarrier* pImageMemoryBarriers, Dispatch const &d = Dispatch() ) const;
  11480. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  11481. template<typename Dispatch = DispatchLoaderDefault>
  11482. void waitEvents( ArrayProxy<const Event> events, PipelineStageFlags srcStageMask, PipelineStageFlags dstStageMask, ArrayProxy<const MemoryBarrier> memoryBarriers, ArrayProxy<const BufferMemoryBarrier> bufferMemoryBarriers, ArrayProxy<const ImageMemoryBarrier> imageMemoryBarriers, Dispatch const &d = Dispatch() ) const;
  11483. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11484. template<typename Dispatch = DispatchLoaderDefault>
  11485. void writeAccelerationStructuresPropertiesNV( uint32_t accelerationStructureCount, const AccelerationStructureNV* pAccelerationStructures, QueryType queryType, QueryPool queryPool, uint32_t firstQuery, Dispatch const &d = Dispatch() ) const;
  11486. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  11487. template<typename Dispatch = DispatchLoaderDefault>
  11488. void writeAccelerationStructuresPropertiesNV( ArrayProxy<const AccelerationStructureNV> accelerationStructures, QueryType queryType, QueryPool queryPool, uint32_t firstQuery, Dispatch const &d = Dispatch() ) const;
  11489. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11490. template<typename Dispatch = DispatchLoaderDefault>
  11491. void writeBufferMarkerAMD( PipelineStageFlagBits pipelineStage, Buffer dstBuffer, DeviceSize dstOffset, uint32_t marker, Dispatch const &d = Dispatch() ) const;
  11492. template<typename Dispatch = DispatchLoaderDefault>
  11493. void writeTimestamp( PipelineStageFlagBits pipelineStage, QueryPool queryPool, uint32_t query, Dispatch const &d = Dispatch() ) const;
  11494. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  11495. template<typename Dispatch = DispatchLoaderDefault>
  11496. Result end(Dispatch const &d = Dispatch() ) const;
  11497. #else
  11498. template<typename Dispatch = DispatchLoaderDefault>
  11499. ResultValueType<void>::type end(Dispatch const &d = Dispatch() ) const;
  11500. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11501. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  11502. template<typename Dispatch = DispatchLoaderDefault>
  11503. Result reset( CommandBufferResetFlags flags, Dispatch const &d = Dispatch() ) const;
  11504. #else
  11505. template<typename Dispatch = DispatchLoaderDefault>
  11506. ResultValueType<void>::type reset( CommandBufferResetFlags flags, Dispatch const &d = Dispatch() ) const;
  11507. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  11508. VULKAN_HPP_TYPESAFE_EXPLICIT operator VkCommandBuffer() const
  11509. {
  11510. return m_commandBuffer;
  11511. }
  11512. explicit operator bool() const
  11513. {
  11514. return m_commandBuffer != VK_NULL_HANDLE;
  11515. }
  11516. bool operator!() const
  11517. {
  11518. return m_commandBuffer == VK_NULL_HANDLE;
  11519. }
  11520. private:
  11521. VkCommandBuffer m_commandBuffer;
  11522. };
  11523. static_assert( sizeof( CommandBuffer ) == sizeof( VkCommandBuffer ), "handle and wrapper have different size!" );
  11524. class DeviceMemory
  11525. {
  11526. public:
  11527. using CType = VkDeviceMemory;
  11528. public:
  11529. VULKAN_HPP_CONSTEXPR DeviceMemory()
  11530. : m_deviceMemory(VK_NULL_HANDLE)
  11531. {}
  11532. VULKAN_HPP_CONSTEXPR DeviceMemory( std::nullptr_t )
  11533. : m_deviceMemory(VK_NULL_HANDLE)
  11534. {}
  11535. VULKAN_HPP_TYPESAFE_EXPLICIT DeviceMemory( VkDeviceMemory deviceMemory )
  11536. : m_deviceMemory( deviceMemory )
  11537. {}
  11538. #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
  11539. DeviceMemory & operator=(VkDeviceMemory deviceMemory)
  11540. {
  11541. m_deviceMemory = deviceMemory;
  11542. return *this;
  11543. }
  11544. #endif
  11545. DeviceMemory & operator=( std::nullptr_t )
  11546. {
  11547. m_deviceMemory = VK_NULL_HANDLE;
  11548. return *this;
  11549. }
  11550. bool operator==( DeviceMemory const & rhs ) const
  11551. {
  11552. return m_deviceMemory == rhs.m_deviceMemory;
  11553. }
  11554. bool operator!=(DeviceMemory const & rhs ) const
  11555. {
  11556. return m_deviceMemory != rhs.m_deviceMemory;
  11557. }
  11558. bool operator<(DeviceMemory const & rhs ) const
  11559. {
  11560. return m_deviceMemory < rhs.m_deviceMemory;
  11561. }
  11562. VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDeviceMemory() const
  11563. {
  11564. return m_deviceMemory;
  11565. }
  11566. explicit operator bool() const
  11567. {
  11568. return m_deviceMemory != VK_NULL_HANDLE;
  11569. }
  11570. bool operator!() const
  11571. {
  11572. return m_deviceMemory == VK_NULL_HANDLE;
  11573. }
  11574. private:
  11575. VkDeviceMemory m_deviceMemory;
  11576. };
  11577. static_assert( sizeof( DeviceMemory ) == sizeof( VkDeviceMemory ), "handle and wrapper have different size!" );
  11578. class BufferView
  11579. {
  11580. public:
  11581. using CType = VkBufferView;
  11582. public:
  11583. VULKAN_HPP_CONSTEXPR BufferView()
  11584. : m_bufferView(VK_NULL_HANDLE)
  11585. {}
  11586. VULKAN_HPP_CONSTEXPR BufferView( std::nullptr_t )
  11587. : m_bufferView(VK_NULL_HANDLE)
  11588. {}
  11589. VULKAN_HPP_TYPESAFE_EXPLICIT BufferView( VkBufferView bufferView )
  11590. : m_bufferView( bufferView )
  11591. {}
  11592. #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
  11593. BufferView & operator=(VkBufferView bufferView)
  11594. {
  11595. m_bufferView = bufferView;
  11596. return *this;
  11597. }
  11598. #endif
  11599. BufferView & operator=( std::nullptr_t )
  11600. {
  11601. m_bufferView = VK_NULL_HANDLE;
  11602. return *this;
  11603. }
  11604. bool operator==( BufferView const & rhs ) const
  11605. {
  11606. return m_bufferView == rhs.m_bufferView;
  11607. }
  11608. bool operator!=(BufferView const & rhs ) const
  11609. {
  11610. return m_bufferView != rhs.m_bufferView;
  11611. }
  11612. bool operator<(BufferView const & rhs ) const
  11613. {
  11614. return m_bufferView < rhs.m_bufferView;
  11615. }
  11616. VULKAN_HPP_TYPESAFE_EXPLICIT operator VkBufferView() const
  11617. {
  11618. return m_bufferView;
  11619. }
  11620. explicit operator bool() const
  11621. {
  11622. return m_bufferView != VK_NULL_HANDLE;
  11623. }
  11624. bool operator!() const
  11625. {
  11626. return m_bufferView == VK_NULL_HANDLE;
  11627. }
  11628. private:
  11629. VkBufferView m_bufferView;
  11630. };
  11631. static_assert( sizeof( BufferView ) == sizeof( VkBufferView ), "handle and wrapper have different size!" );
  11632. class CommandPool
  11633. {
  11634. public:
  11635. using CType = VkCommandPool;
  11636. public:
  11637. VULKAN_HPP_CONSTEXPR CommandPool()
  11638. : m_commandPool(VK_NULL_HANDLE)
  11639. {}
  11640. VULKAN_HPP_CONSTEXPR CommandPool( std::nullptr_t )
  11641. : m_commandPool(VK_NULL_HANDLE)
  11642. {}
  11643. VULKAN_HPP_TYPESAFE_EXPLICIT CommandPool( VkCommandPool commandPool )
  11644. : m_commandPool( commandPool )
  11645. {}
  11646. #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
  11647. CommandPool & operator=(VkCommandPool commandPool)
  11648. {
  11649. m_commandPool = commandPool;
  11650. return *this;
  11651. }
  11652. #endif
  11653. CommandPool & operator=( std::nullptr_t )
  11654. {
  11655. m_commandPool = VK_NULL_HANDLE;
  11656. return *this;
  11657. }
  11658. bool operator==( CommandPool const & rhs ) const
  11659. {
  11660. return m_commandPool == rhs.m_commandPool;
  11661. }
  11662. bool operator!=(CommandPool const & rhs ) const
  11663. {
  11664. return m_commandPool != rhs.m_commandPool;
  11665. }
  11666. bool operator<(CommandPool const & rhs ) const
  11667. {
  11668. return m_commandPool < rhs.m_commandPool;
  11669. }
  11670. VULKAN_HPP_TYPESAFE_EXPLICIT operator VkCommandPool() const
  11671. {
  11672. return m_commandPool;
  11673. }
  11674. explicit operator bool() const
  11675. {
  11676. return m_commandPool != VK_NULL_HANDLE;
  11677. }
  11678. bool operator!() const
  11679. {
  11680. return m_commandPool == VK_NULL_HANDLE;
  11681. }
  11682. private:
  11683. VkCommandPool m_commandPool;
  11684. };
  11685. static_assert( sizeof( CommandPool ) == sizeof( VkCommandPool ), "handle and wrapper have different size!" );
  11686. class PipelineCache
  11687. {
  11688. public:
  11689. using CType = VkPipelineCache;
  11690. public:
  11691. VULKAN_HPP_CONSTEXPR PipelineCache()
  11692. : m_pipelineCache(VK_NULL_HANDLE)
  11693. {}
  11694. VULKAN_HPP_CONSTEXPR PipelineCache( std::nullptr_t )
  11695. : m_pipelineCache(VK_NULL_HANDLE)
  11696. {}
  11697. VULKAN_HPP_TYPESAFE_EXPLICIT PipelineCache( VkPipelineCache pipelineCache )
  11698. : m_pipelineCache( pipelineCache )
  11699. {}
  11700. #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
  11701. PipelineCache & operator=(VkPipelineCache pipelineCache)
  11702. {
  11703. m_pipelineCache = pipelineCache;
  11704. return *this;
  11705. }
  11706. #endif
  11707. PipelineCache & operator=( std::nullptr_t )
  11708. {
  11709. m_pipelineCache = VK_NULL_HANDLE;
  11710. return *this;
  11711. }
  11712. bool operator==( PipelineCache const & rhs ) const
  11713. {
  11714. return m_pipelineCache == rhs.m_pipelineCache;
  11715. }
  11716. bool operator!=(PipelineCache const & rhs ) const
  11717. {
  11718. return m_pipelineCache != rhs.m_pipelineCache;
  11719. }
  11720. bool operator<(PipelineCache const & rhs ) const
  11721. {
  11722. return m_pipelineCache < rhs.m_pipelineCache;
  11723. }
  11724. VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPipelineCache() const
  11725. {
  11726. return m_pipelineCache;
  11727. }
  11728. explicit operator bool() const
  11729. {
  11730. return m_pipelineCache != VK_NULL_HANDLE;
  11731. }
  11732. bool operator!() const
  11733. {
  11734. return m_pipelineCache == VK_NULL_HANDLE;
  11735. }
  11736. private:
  11737. VkPipelineCache m_pipelineCache;
  11738. };
  11739. static_assert( sizeof( PipelineCache ) == sizeof( VkPipelineCache ), "handle and wrapper have different size!" );
  11740. class DescriptorPool
  11741. {
  11742. public:
  11743. using CType = VkDescriptorPool;
  11744. public:
  11745. VULKAN_HPP_CONSTEXPR DescriptorPool()
  11746. : m_descriptorPool(VK_NULL_HANDLE)
  11747. {}
  11748. VULKAN_HPP_CONSTEXPR DescriptorPool( std::nullptr_t )
  11749. : m_descriptorPool(VK_NULL_HANDLE)
  11750. {}
  11751. VULKAN_HPP_TYPESAFE_EXPLICIT DescriptorPool( VkDescriptorPool descriptorPool )
  11752. : m_descriptorPool( descriptorPool )
  11753. {}
  11754. #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
  11755. DescriptorPool & operator=(VkDescriptorPool descriptorPool)
  11756. {
  11757. m_descriptorPool = descriptorPool;
  11758. return *this;
  11759. }
  11760. #endif
  11761. DescriptorPool & operator=( std::nullptr_t )
  11762. {
  11763. m_descriptorPool = VK_NULL_HANDLE;
  11764. return *this;
  11765. }
  11766. bool operator==( DescriptorPool const & rhs ) const
  11767. {
  11768. return m_descriptorPool == rhs.m_descriptorPool;
  11769. }
  11770. bool operator!=(DescriptorPool const & rhs ) const
  11771. {
  11772. return m_descriptorPool != rhs.m_descriptorPool;
  11773. }
  11774. bool operator<(DescriptorPool const & rhs ) const
  11775. {
  11776. return m_descriptorPool < rhs.m_descriptorPool;
  11777. }
  11778. VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDescriptorPool() const
  11779. {
  11780. return m_descriptorPool;
  11781. }
  11782. explicit operator bool() const
  11783. {
  11784. return m_descriptorPool != VK_NULL_HANDLE;
  11785. }
  11786. bool operator!() const
  11787. {
  11788. return m_descriptorPool == VK_NULL_HANDLE;
  11789. }
  11790. private:
  11791. VkDescriptorPool m_descriptorPool;
  11792. };
  11793. static_assert( sizeof( DescriptorPool ) == sizeof( VkDescriptorPool ), "handle and wrapper have different size!" );
  11794. class DescriptorSetLayout
  11795. {
  11796. public:
  11797. using CType = VkDescriptorSetLayout;
  11798. public:
  11799. VULKAN_HPP_CONSTEXPR DescriptorSetLayout()
  11800. : m_descriptorSetLayout(VK_NULL_HANDLE)
  11801. {}
  11802. VULKAN_HPP_CONSTEXPR DescriptorSetLayout( std::nullptr_t )
  11803. : m_descriptorSetLayout(VK_NULL_HANDLE)
  11804. {}
  11805. VULKAN_HPP_TYPESAFE_EXPLICIT DescriptorSetLayout( VkDescriptorSetLayout descriptorSetLayout )
  11806. : m_descriptorSetLayout( descriptorSetLayout )
  11807. {}
  11808. #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
  11809. DescriptorSetLayout & operator=(VkDescriptorSetLayout descriptorSetLayout)
  11810. {
  11811. m_descriptorSetLayout = descriptorSetLayout;
  11812. return *this;
  11813. }
  11814. #endif
  11815. DescriptorSetLayout & operator=( std::nullptr_t )
  11816. {
  11817. m_descriptorSetLayout = VK_NULL_HANDLE;
  11818. return *this;
  11819. }
  11820. bool operator==( DescriptorSetLayout const & rhs ) const
  11821. {
  11822. return m_descriptorSetLayout == rhs.m_descriptorSetLayout;
  11823. }
  11824. bool operator!=(DescriptorSetLayout const & rhs ) const
  11825. {
  11826. return m_descriptorSetLayout != rhs.m_descriptorSetLayout;
  11827. }
  11828. bool operator<(DescriptorSetLayout const & rhs ) const
  11829. {
  11830. return m_descriptorSetLayout < rhs.m_descriptorSetLayout;
  11831. }
  11832. VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDescriptorSetLayout() const
  11833. {
  11834. return m_descriptorSetLayout;
  11835. }
  11836. explicit operator bool() const
  11837. {
  11838. return m_descriptorSetLayout != VK_NULL_HANDLE;
  11839. }
  11840. bool operator!() const
  11841. {
  11842. return m_descriptorSetLayout == VK_NULL_HANDLE;
  11843. }
  11844. private:
  11845. VkDescriptorSetLayout m_descriptorSetLayout;
  11846. };
  11847. static_assert( sizeof( DescriptorSetLayout ) == sizeof( VkDescriptorSetLayout ), "handle and wrapper have different size!" );
  11848. class Framebuffer
  11849. {
  11850. public:
  11851. using CType = VkFramebuffer;
  11852. public:
  11853. VULKAN_HPP_CONSTEXPR Framebuffer()
  11854. : m_framebuffer(VK_NULL_HANDLE)
  11855. {}
  11856. VULKAN_HPP_CONSTEXPR Framebuffer( std::nullptr_t )
  11857. : m_framebuffer(VK_NULL_HANDLE)
  11858. {}
  11859. VULKAN_HPP_TYPESAFE_EXPLICIT Framebuffer( VkFramebuffer framebuffer )
  11860. : m_framebuffer( framebuffer )
  11861. {}
  11862. #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
  11863. Framebuffer & operator=(VkFramebuffer framebuffer)
  11864. {
  11865. m_framebuffer = framebuffer;
  11866. return *this;
  11867. }
  11868. #endif
  11869. Framebuffer & operator=( std::nullptr_t )
  11870. {
  11871. m_framebuffer = VK_NULL_HANDLE;
  11872. return *this;
  11873. }
  11874. bool operator==( Framebuffer const & rhs ) const
  11875. {
  11876. return m_framebuffer == rhs.m_framebuffer;
  11877. }
  11878. bool operator!=(Framebuffer const & rhs ) const
  11879. {
  11880. return m_framebuffer != rhs.m_framebuffer;
  11881. }
  11882. bool operator<(Framebuffer const & rhs ) const
  11883. {
  11884. return m_framebuffer < rhs.m_framebuffer;
  11885. }
  11886. VULKAN_HPP_TYPESAFE_EXPLICIT operator VkFramebuffer() const
  11887. {
  11888. return m_framebuffer;
  11889. }
  11890. explicit operator bool() const
  11891. {
  11892. return m_framebuffer != VK_NULL_HANDLE;
  11893. }
  11894. bool operator!() const
  11895. {
  11896. return m_framebuffer == VK_NULL_HANDLE;
  11897. }
  11898. private:
  11899. VkFramebuffer m_framebuffer;
  11900. };
  11901. static_assert( sizeof( Framebuffer ) == sizeof( VkFramebuffer ), "handle and wrapper have different size!" );
  11902. class IndirectCommandsLayoutNVX
  11903. {
  11904. public:
  11905. using CType = VkIndirectCommandsLayoutNVX;
  11906. public:
  11907. VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutNVX()
  11908. : m_indirectCommandsLayoutNVX(VK_NULL_HANDLE)
  11909. {}
  11910. VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutNVX( std::nullptr_t )
  11911. : m_indirectCommandsLayoutNVX(VK_NULL_HANDLE)
  11912. {}
  11913. VULKAN_HPP_TYPESAFE_EXPLICIT IndirectCommandsLayoutNVX( VkIndirectCommandsLayoutNVX indirectCommandsLayoutNVX )
  11914. : m_indirectCommandsLayoutNVX( indirectCommandsLayoutNVX )
  11915. {}
  11916. #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
  11917. IndirectCommandsLayoutNVX & operator=(VkIndirectCommandsLayoutNVX indirectCommandsLayoutNVX)
  11918. {
  11919. m_indirectCommandsLayoutNVX = indirectCommandsLayoutNVX;
  11920. return *this;
  11921. }
  11922. #endif
  11923. IndirectCommandsLayoutNVX & operator=( std::nullptr_t )
  11924. {
  11925. m_indirectCommandsLayoutNVX = VK_NULL_HANDLE;
  11926. return *this;
  11927. }
  11928. bool operator==( IndirectCommandsLayoutNVX const & rhs ) const
  11929. {
  11930. return m_indirectCommandsLayoutNVX == rhs.m_indirectCommandsLayoutNVX;
  11931. }
  11932. bool operator!=(IndirectCommandsLayoutNVX const & rhs ) const
  11933. {
  11934. return m_indirectCommandsLayoutNVX != rhs.m_indirectCommandsLayoutNVX;
  11935. }
  11936. bool operator<(IndirectCommandsLayoutNVX const & rhs ) const
  11937. {
  11938. return m_indirectCommandsLayoutNVX < rhs.m_indirectCommandsLayoutNVX;
  11939. }
  11940. VULKAN_HPP_TYPESAFE_EXPLICIT operator VkIndirectCommandsLayoutNVX() const
  11941. {
  11942. return m_indirectCommandsLayoutNVX;
  11943. }
  11944. explicit operator bool() const
  11945. {
  11946. return m_indirectCommandsLayoutNVX != VK_NULL_HANDLE;
  11947. }
  11948. bool operator!() const
  11949. {
  11950. return m_indirectCommandsLayoutNVX == VK_NULL_HANDLE;
  11951. }
  11952. private:
  11953. VkIndirectCommandsLayoutNVX m_indirectCommandsLayoutNVX;
  11954. };
  11955. static_assert( sizeof( IndirectCommandsLayoutNVX ) == sizeof( VkIndirectCommandsLayoutNVX ), "handle and wrapper have different size!" );
  11956. class ObjectTableNVX
  11957. {
  11958. public:
  11959. using CType = VkObjectTableNVX;
  11960. public:
  11961. VULKAN_HPP_CONSTEXPR ObjectTableNVX()
  11962. : m_objectTableNVX(VK_NULL_HANDLE)
  11963. {}
  11964. VULKAN_HPP_CONSTEXPR ObjectTableNVX( std::nullptr_t )
  11965. : m_objectTableNVX(VK_NULL_HANDLE)
  11966. {}
  11967. VULKAN_HPP_TYPESAFE_EXPLICIT ObjectTableNVX( VkObjectTableNVX objectTableNVX )
  11968. : m_objectTableNVX( objectTableNVX )
  11969. {}
  11970. #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
  11971. ObjectTableNVX & operator=(VkObjectTableNVX objectTableNVX)
  11972. {
  11973. m_objectTableNVX = objectTableNVX;
  11974. return *this;
  11975. }
  11976. #endif
  11977. ObjectTableNVX & operator=( std::nullptr_t )
  11978. {
  11979. m_objectTableNVX = VK_NULL_HANDLE;
  11980. return *this;
  11981. }
  11982. bool operator==( ObjectTableNVX const & rhs ) const
  11983. {
  11984. return m_objectTableNVX == rhs.m_objectTableNVX;
  11985. }
  11986. bool operator!=(ObjectTableNVX const & rhs ) const
  11987. {
  11988. return m_objectTableNVX != rhs.m_objectTableNVX;
  11989. }
  11990. bool operator<(ObjectTableNVX const & rhs ) const
  11991. {
  11992. return m_objectTableNVX < rhs.m_objectTableNVX;
  11993. }
  11994. VULKAN_HPP_TYPESAFE_EXPLICIT operator VkObjectTableNVX() const
  11995. {
  11996. return m_objectTableNVX;
  11997. }
  11998. explicit operator bool() const
  11999. {
  12000. return m_objectTableNVX != VK_NULL_HANDLE;
  12001. }
  12002. bool operator!() const
  12003. {
  12004. return m_objectTableNVX == VK_NULL_HANDLE;
  12005. }
  12006. private:
  12007. VkObjectTableNVX m_objectTableNVX;
  12008. };
  12009. static_assert( sizeof( ObjectTableNVX ) == sizeof( VkObjectTableNVX ), "handle and wrapper have different size!" );
  12010. class RenderPass
  12011. {
  12012. public:
  12013. using CType = VkRenderPass;
  12014. public:
  12015. VULKAN_HPP_CONSTEXPR RenderPass()
  12016. : m_renderPass(VK_NULL_HANDLE)
  12017. {}
  12018. VULKAN_HPP_CONSTEXPR RenderPass( std::nullptr_t )
  12019. : m_renderPass(VK_NULL_HANDLE)
  12020. {}
  12021. VULKAN_HPP_TYPESAFE_EXPLICIT RenderPass( VkRenderPass renderPass )
  12022. : m_renderPass( renderPass )
  12023. {}
  12024. #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
  12025. RenderPass & operator=(VkRenderPass renderPass)
  12026. {
  12027. m_renderPass = renderPass;
  12028. return *this;
  12029. }
  12030. #endif
  12031. RenderPass & operator=( std::nullptr_t )
  12032. {
  12033. m_renderPass = VK_NULL_HANDLE;
  12034. return *this;
  12035. }
  12036. bool operator==( RenderPass const & rhs ) const
  12037. {
  12038. return m_renderPass == rhs.m_renderPass;
  12039. }
  12040. bool operator!=(RenderPass const & rhs ) const
  12041. {
  12042. return m_renderPass != rhs.m_renderPass;
  12043. }
  12044. bool operator<(RenderPass const & rhs ) const
  12045. {
  12046. return m_renderPass < rhs.m_renderPass;
  12047. }
  12048. VULKAN_HPP_TYPESAFE_EXPLICIT operator VkRenderPass() const
  12049. {
  12050. return m_renderPass;
  12051. }
  12052. explicit operator bool() const
  12053. {
  12054. return m_renderPass != VK_NULL_HANDLE;
  12055. }
  12056. bool operator!() const
  12057. {
  12058. return m_renderPass == VK_NULL_HANDLE;
  12059. }
  12060. private:
  12061. VkRenderPass m_renderPass;
  12062. };
  12063. static_assert( sizeof( RenderPass ) == sizeof( VkRenderPass ), "handle and wrapper have different size!" );
  12064. class Sampler
  12065. {
  12066. public:
  12067. using CType = VkSampler;
  12068. public:
  12069. VULKAN_HPP_CONSTEXPR Sampler()
  12070. : m_sampler(VK_NULL_HANDLE)
  12071. {}
  12072. VULKAN_HPP_CONSTEXPR Sampler( std::nullptr_t )
  12073. : m_sampler(VK_NULL_HANDLE)
  12074. {}
  12075. VULKAN_HPP_TYPESAFE_EXPLICIT Sampler( VkSampler sampler )
  12076. : m_sampler( sampler )
  12077. {}
  12078. #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
  12079. Sampler & operator=(VkSampler sampler)
  12080. {
  12081. m_sampler = sampler;
  12082. return *this;
  12083. }
  12084. #endif
  12085. Sampler & operator=( std::nullptr_t )
  12086. {
  12087. m_sampler = VK_NULL_HANDLE;
  12088. return *this;
  12089. }
  12090. bool operator==( Sampler const & rhs ) const
  12091. {
  12092. return m_sampler == rhs.m_sampler;
  12093. }
  12094. bool operator!=(Sampler const & rhs ) const
  12095. {
  12096. return m_sampler != rhs.m_sampler;
  12097. }
  12098. bool operator<(Sampler const & rhs ) const
  12099. {
  12100. return m_sampler < rhs.m_sampler;
  12101. }
  12102. VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSampler() const
  12103. {
  12104. return m_sampler;
  12105. }
  12106. explicit operator bool() const
  12107. {
  12108. return m_sampler != VK_NULL_HANDLE;
  12109. }
  12110. bool operator!() const
  12111. {
  12112. return m_sampler == VK_NULL_HANDLE;
  12113. }
  12114. private:
  12115. VkSampler m_sampler;
  12116. };
  12117. static_assert( sizeof( Sampler ) == sizeof( VkSampler ), "handle and wrapper have different size!" );
  12118. class SamplerYcbcrConversion
  12119. {
  12120. public:
  12121. using CType = VkSamplerYcbcrConversion;
  12122. public:
  12123. VULKAN_HPP_CONSTEXPR SamplerYcbcrConversion()
  12124. : m_samplerYcbcrConversion(VK_NULL_HANDLE)
  12125. {}
  12126. VULKAN_HPP_CONSTEXPR SamplerYcbcrConversion( std::nullptr_t )
  12127. : m_samplerYcbcrConversion(VK_NULL_HANDLE)
  12128. {}
  12129. VULKAN_HPP_TYPESAFE_EXPLICIT SamplerYcbcrConversion( VkSamplerYcbcrConversion samplerYcbcrConversion )
  12130. : m_samplerYcbcrConversion( samplerYcbcrConversion )
  12131. {}
  12132. #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
  12133. SamplerYcbcrConversion & operator=(VkSamplerYcbcrConversion samplerYcbcrConversion)
  12134. {
  12135. m_samplerYcbcrConversion = samplerYcbcrConversion;
  12136. return *this;
  12137. }
  12138. #endif
  12139. SamplerYcbcrConversion & operator=( std::nullptr_t )
  12140. {
  12141. m_samplerYcbcrConversion = VK_NULL_HANDLE;
  12142. return *this;
  12143. }
  12144. bool operator==( SamplerYcbcrConversion const & rhs ) const
  12145. {
  12146. return m_samplerYcbcrConversion == rhs.m_samplerYcbcrConversion;
  12147. }
  12148. bool operator!=(SamplerYcbcrConversion const & rhs ) const
  12149. {
  12150. return m_samplerYcbcrConversion != rhs.m_samplerYcbcrConversion;
  12151. }
  12152. bool operator<(SamplerYcbcrConversion const & rhs ) const
  12153. {
  12154. return m_samplerYcbcrConversion < rhs.m_samplerYcbcrConversion;
  12155. }
  12156. VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSamplerYcbcrConversion() const
  12157. {
  12158. return m_samplerYcbcrConversion;
  12159. }
  12160. explicit operator bool() const
  12161. {
  12162. return m_samplerYcbcrConversion != VK_NULL_HANDLE;
  12163. }
  12164. bool operator!() const
  12165. {
  12166. return m_samplerYcbcrConversion == VK_NULL_HANDLE;
  12167. }
  12168. private:
  12169. VkSamplerYcbcrConversion m_samplerYcbcrConversion;
  12170. };
  12171. static_assert( sizeof( SamplerYcbcrConversion ) == sizeof( VkSamplerYcbcrConversion ), "handle and wrapper have different size!" );
  12172. using SamplerYcbcrConversionKHR = SamplerYcbcrConversion;
  12173. class ShaderModule
  12174. {
  12175. public:
  12176. using CType = VkShaderModule;
  12177. public:
  12178. VULKAN_HPP_CONSTEXPR ShaderModule()
  12179. : m_shaderModule(VK_NULL_HANDLE)
  12180. {}
  12181. VULKAN_HPP_CONSTEXPR ShaderModule( std::nullptr_t )
  12182. : m_shaderModule(VK_NULL_HANDLE)
  12183. {}
  12184. VULKAN_HPP_TYPESAFE_EXPLICIT ShaderModule( VkShaderModule shaderModule )
  12185. : m_shaderModule( shaderModule )
  12186. {}
  12187. #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
  12188. ShaderModule & operator=(VkShaderModule shaderModule)
  12189. {
  12190. m_shaderModule = shaderModule;
  12191. return *this;
  12192. }
  12193. #endif
  12194. ShaderModule & operator=( std::nullptr_t )
  12195. {
  12196. m_shaderModule = VK_NULL_HANDLE;
  12197. return *this;
  12198. }
  12199. bool operator==( ShaderModule const & rhs ) const
  12200. {
  12201. return m_shaderModule == rhs.m_shaderModule;
  12202. }
  12203. bool operator!=(ShaderModule const & rhs ) const
  12204. {
  12205. return m_shaderModule != rhs.m_shaderModule;
  12206. }
  12207. bool operator<(ShaderModule const & rhs ) const
  12208. {
  12209. return m_shaderModule < rhs.m_shaderModule;
  12210. }
  12211. VULKAN_HPP_TYPESAFE_EXPLICIT operator VkShaderModule() const
  12212. {
  12213. return m_shaderModule;
  12214. }
  12215. explicit operator bool() const
  12216. {
  12217. return m_shaderModule != VK_NULL_HANDLE;
  12218. }
  12219. bool operator!() const
  12220. {
  12221. return m_shaderModule == VK_NULL_HANDLE;
  12222. }
  12223. private:
  12224. VkShaderModule m_shaderModule;
  12225. };
  12226. static_assert( sizeof( ShaderModule ) == sizeof( VkShaderModule ), "handle and wrapper have different size!" );
  12227. class ValidationCacheEXT
  12228. {
  12229. public:
  12230. using CType = VkValidationCacheEXT;
  12231. public:
  12232. VULKAN_HPP_CONSTEXPR ValidationCacheEXT()
  12233. : m_validationCacheEXT(VK_NULL_HANDLE)
  12234. {}
  12235. VULKAN_HPP_CONSTEXPR ValidationCacheEXT( std::nullptr_t )
  12236. : m_validationCacheEXT(VK_NULL_HANDLE)
  12237. {}
  12238. VULKAN_HPP_TYPESAFE_EXPLICIT ValidationCacheEXT( VkValidationCacheEXT validationCacheEXT )
  12239. : m_validationCacheEXT( validationCacheEXT )
  12240. {}
  12241. #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
  12242. ValidationCacheEXT & operator=(VkValidationCacheEXT validationCacheEXT)
  12243. {
  12244. m_validationCacheEXT = validationCacheEXT;
  12245. return *this;
  12246. }
  12247. #endif
  12248. ValidationCacheEXT & operator=( std::nullptr_t )
  12249. {
  12250. m_validationCacheEXT = VK_NULL_HANDLE;
  12251. return *this;
  12252. }
  12253. bool operator==( ValidationCacheEXT const & rhs ) const
  12254. {
  12255. return m_validationCacheEXT == rhs.m_validationCacheEXT;
  12256. }
  12257. bool operator!=(ValidationCacheEXT const & rhs ) const
  12258. {
  12259. return m_validationCacheEXT != rhs.m_validationCacheEXT;
  12260. }
  12261. bool operator<(ValidationCacheEXT const & rhs ) const
  12262. {
  12263. return m_validationCacheEXT < rhs.m_validationCacheEXT;
  12264. }
  12265. VULKAN_HPP_TYPESAFE_EXPLICIT operator VkValidationCacheEXT() const
  12266. {
  12267. return m_validationCacheEXT;
  12268. }
  12269. explicit operator bool() const
  12270. {
  12271. return m_validationCacheEXT != VK_NULL_HANDLE;
  12272. }
  12273. bool operator!() const
  12274. {
  12275. return m_validationCacheEXT == VK_NULL_HANDLE;
  12276. }
  12277. private:
  12278. VkValidationCacheEXT m_validationCacheEXT;
  12279. };
  12280. static_assert( sizeof( ValidationCacheEXT ) == sizeof( VkValidationCacheEXT ), "handle and wrapper have different size!" );
  12281. class Queue
  12282. {
  12283. public:
  12284. using CType = VkQueue;
  12285. public:
  12286. VULKAN_HPP_CONSTEXPR Queue()
  12287. : m_queue(VK_NULL_HANDLE)
  12288. {}
  12289. VULKAN_HPP_CONSTEXPR Queue( std::nullptr_t )
  12290. : m_queue(VK_NULL_HANDLE)
  12291. {}
  12292. VULKAN_HPP_TYPESAFE_EXPLICIT Queue( VkQueue queue )
  12293. : m_queue( queue )
  12294. {}
  12295. #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
  12296. Queue & operator=(VkQueue queue)
  12297. {
  12298. m_queue = queue;
  12299. return *this;
  12300. }
  12301. #endif
  12302. Queue & operator=( std::nullptr_t )
  12303. {
  12304. m_queue = VK_NULL_HANDLE;
  12305. return *this;
  12306. }
  12307. bool operator==( Queue const & rhs ) const
  12308. {
  12309. return m_queue == rhs.m_queue;
  12310. }
  12311. bool operator!=(Queue const & rhs ) const
  12312. {
  12313. return m_queue != rhs.m_queue;
  12314. }
  12315. bool operator<(Queue const & rhs ) const
  12316. {
  12317. return m_queue < rhs.m_queue;
  12318. }
  12319. template<typename Dispatch = DispatchLoaderDefault>
  12320. void getCheckpointDataNV( uint32_t* pCheckpointDataCount, CheckpointDataNV* pCheckpointData, Dispatch const &d = Dispatch() ) const;
  12321. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12322. template<typename Allocator = std::allocator<CheckpointDataNV>, typename Dispatch = DispatchLoaderDefault>
  12323. std::vector<CheckpointDataNV,Allocator> getCheckpointDataNV(Dispatch const &d = Dispatch() ) const;
  12324. template<typename Allocator = std::allocator<CheckpointDataNV>, typename Dispatch = DispatchLoaderDefault>
  12325. std::vector<CheckpointDataNV,Allocator> getCheckpointDataNV(Allocator const& vectorAllocator, Dispatch const &d ) const;
  12326. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12327. template<typename Dispatch = DispatchLoaderDefault>
  12328. void beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT* pLabelInfo, Dispatch const &d = Dispatch() ) const;
  12329. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12330. template<typename Dispatch = DispatchLoaderDefault>
  12331. void beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const &d = Dispatch() ) const;
  12332. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12333. template<typename Dispatch = DispatchLoaderDefault>
  12334. Result bindSparse( uint32_t bindInfoCount, const BindSparseInfo* pBindInfo, Fence fence, Dispatch const &d = Dispatch() ) const;
  12335. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12336. template<typename Dispatch = DispatchLoaderDefault>
  12337. ResultValueType<void>::type bindSparse( ArrayProxy<const BindSparseInfo> bindInfo, Fence fence, Dispatch const &d = Dispatch() ) const;
  12338. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12339. template<typename Dispatch = DispatchLoaderDefault>
  12340. void endDebugUtilsLabelEXT(Dispatch const &d = Dispatch() ) const;
  12341. template<typename Dispatch = DispatchLoaderDefault>
  12342. void insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT* pLabelInfo, Dispatch const &d = Dispatch() ) const;
  12343. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12344. template<typename Dispatch = DispatchLoaderDefault>
  12345. void insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const &d = Dispatch() ) const;
  12346. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12347. template<typename Dispatch = DispatchLoaderDefault>
  12348. Result presentKHR( const PresentInfoKHR* pPresentInfo, Dispatch const &d = Dispatch() ) const;
  12349. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12350. template<typename Dispatch = DispatchLoaderDefault>
  12351. Result presentKHR( const PresentInfoKHR & presentInfo, Dispatch const &d = Dispatch() ) const;
  12352. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12353. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12354. template<typename Dispatch = DispatchLoaderDefault>
  12355. Result setPerformanceConfigurationINTEL( PerformanceConfigurationINTEL configuration, Dispatch const &d = Dispatch() ) const;
  12356. #else
  12357. template<typename Dispatch = DispatchLoaderDefault>
  12358. ResultValueType<void>::type setPerformanceConfigurationINTEL( PerformanceConfigurationINTEL configuration, Dispatch const &d = Dispatch() ) const;
  12359. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12360. template<typename Dispatch = DispatchLoaderDefault>
  12361. Result submit( uint32_t submitCount, const SubmitInfo* pSubmits, Fence fence, Dispatch const &d = Dispatch() ) const;
  12362. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12363. template<typename Dispatch = DispatchLoaderDefault>
  12364. ResultValueType<void>::type submit( ArrayProxy<const SubmitInfo> submits, Fence fence, Dispatch const &d = Dispatch() ) const;
  12365. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12366. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12367. template<typename Dispatch = DispatchLoaderDefault>
  12368. Result waitIdle(Dispatch const &d = Dispatch() ) const;
  12369. #else
  12370. template<typename Dispatch = DispatchLoaderDefault>
  12371. ResultValueType<void>::type waitIdle(Dispatch const &d = Dispatch() ) const;
  12372. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12373. VULKAN_HPP_TYPESAFE_EXPLICIT operator VkQueue() const
  12374. {
  12375. return m_queue;
  12376. }
  12377. explicit operator bool() const
  12378. {
  12379. return m_queue != VK_NULL_HANDLE;
  12380. }
  12381. bool operator!() const
  12382. {
  12383. return m_queue == VK_NULL_HANDLE;
  12384. }
  12385. private:
  12386. VkQueue m_queue;
  12387. };
  12388. static_assert( sizeof( Queue ) == sizeof( VkQueue ), "handle and wrapper have different size!" );
  12389. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  12390. class Device;
  12391. template <typename Dispatch> class UniqueHandleTraits<AccelerationStructureNV, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
  12392. using UniqueAccelerationStructureNV = UniqueHandle<AccelerationStructureNV, DispatchLoaderDefault>;
  12393. template <typename Dispatch> class UniqueHandleTraits<Buffer, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
  12394. using UniqueBuffer = UniqueHandle<Buffer, DispatchLoaderDefault>;
  12395. template <typename Dispatch> class UniqueHandleTraits<BufferView, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
  12396. using UniqueBufferView = UniqueHandle<BufferView, DispatchLoaderDefault>;
  12397. template <typename Dispatch> class UniqueHandleTraits<CommandBuffer, Dispatch> { public: using deleter = PoolFree<Device, CommandPool, Dispatch>; };
  12398. using UniqueCommandBuffer = UniqueHandle<CommandBuffer, DispatchLoaderDefault>;
  12399. template <typename Dispatch> class UniqueHandleTraits<CommandPool, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
  12400. using UniqueCommandPool = UniqueHandle<CommandPool, DispatchLoaderDefault>;
  12401. template <typename Dispatch> class UniqueHandleTraits<DescriptorPool, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
  12402. using UniqueDescriptorPool = UniqueHandle<DescriptorPool, DispatchLoaderDefault>;
  12403. template <typename Dispatch> class UniqueHandleTraits<DescriptorSet, Dispatch> { public: using deleter = PoolFree<Device, DescriptorPool, Dispatch>; };
  12404. using UniqueDescriptorSet = UniqueHandle<DescriptorSet, DispatchLoaderDefault>;
  12405. template <typename Dispatch> class UniqueHandleTraits<DescriptorSetLayout, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
  12406. using UniqueDescriptorSetLayout = UniqueHandle<DescriptorSetLayout, DispatchLoaderDefault>;
  12407. template <typename Dispatch> class UniqueHandleTraits<DescriptorUpdateTemplate, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
  12408. using UniqueDescriptorUpdateTemplate = UniqueHandle<DescriptorUpdateTemplate, DispatchLoaderDefault>;
  12409. template <typename Dispatch> class UniqueHandleTraits<DeviceMemory, Dispatch> { public: using deleter = ObjectFree<Device, Dispatch>; };
  12410. using UniqueDeviceMemory = UniqueHandle<DeviceMemory, DispatchLoaderDefault>;
  12411. template <typename Dispatch> class UniqueHandleTraits<Event, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
  12412. using UniqueEvent = UniqueHandle<Event, DispatchLoaderDefault>;
  12413. template <typename Dispatch> class UniqueHandleTraits<Fence, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
  12414. using UniqueFence = UniqueHandle<Fence, DispatchLoaderDefault>;
  12415. template <typename Dispatch> class UniqueHandleTraits<Framebuffer, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
  12416. using UniqueFramebuffer = UniqueHandle<Framebuffer, DispatchLoaderDefault>;
  12417. template <typename Dispatch> class UniqueHandleTraits<Image, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
  12418. using UniqueImage = UniqueHandle<Image, DispatchLoaderDefault>;
  12419. template <typename Dispatch> class UniqueHandleTraits<ImageView, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
  12420. using UniqueImageView = UniqueHandle<ImageView, DispatchLoaderDefault>;
  12421. template <typename Dispatch> class UniqueHandleTraits<IndirectCommandsLayoutNVX, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
  12422. using UniqueIndirectCommandsLayoutNVX = UniqueHandle<IndirectCommandsLayoutNVX, DispatchLoaderDefault>;
  12423. template <typename Dispatch> class UniqueHandleTraits<ObjectTableNVX, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
  12424. using UniqueObjectTableNVX = UniqueHandle<ObjectTableNVX, DispatchLoaderDefault>;
  12425. template <typename Dispatch> class UniqueHandleTraits<Pipeline, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
  12426. using UniquePipeline = UniqueHandle<Pipeline, DispatchLoaderDefault>;
  12427. template <typename Dispatch> class UniqueHandleTraits<PipelineCache, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
  12428. using UniquePipelineCache = UniqueHandle<PipelineCache, DispatchLoaderDefault>;
  12429. template <typename Dispatch> class UniqueHandleTraits<PipelineLayout, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
  12430. using UniquePipelineLayout = UniqueHandle<PipelineLayout, DispatchLoaderDefault>;
  12431. template <typename Dispatch> class UniqueHandleTraits<QueryPool, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
  12432. using UniqueQueryPool = UniqueHandle<QueryPool, DispatchLoaderDefault>;
  12433. template <typename Dispatch> class UniqueHandleTraits<RenderPass, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
  12434. using UniqueRenderPass = UniqueHandle<RenderPass, DispatchLoaderDefault>;
  12435. template <typename Dispatch> class UniqueHandleTraits<Sampler, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
  12436. using UniqueSampler = UniqueHandle<Sampler, DispatchLoaderDefault>;
  12437. template <typename Dispatch> class UniqueHandleTraits<SamplerYcbcrConversion, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
  12438. using UniqueSamplerYcbcrConversion = UniqueHandle<SamplerYcbcrConversion, DispatchLoaderDefault>;
  12439. template <typename Dispatch> class UniqueHandleTraits<Semaphore, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
  12440. using UniqueSemaphore = UniqueHandle<Semaphore, DispatchLoaderDefault>;
  12441. template <typename Dispatch> class UniqueHandleTraits<ShaderModule, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
  12442. using UniqueShaderModule = UniqueHandle<ShaderModule, DispatchLoaderDefault>;
  12443. template <typename Dispatch> class UniqueHandleTraits<SwapchainKHR, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
  12444. using UniqueSwapchainKHR = UniqueHandle<SwapchainKHR, DispatchLoaderDefault>;
  12445. template <typename Dispatch> class UniqueHandleTraits<ValidationCacheEXT, Dispatch> { public: using deleter = ObjectDestroy<Device, Dispatch>; };
  12446. using UniqueValidationCacheEXT = UniqueHandle<ValidationCacheEXT, DispatchLoaderDefault>;
  12447. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  12448. class Device
  12449. {
  12450. public:
  12451. using CType = VkDevice;
  12452. public:
  12453. VULKAN_HPP_CONSTEXPR Device()
  12454. : m_device(VK_NULL_HANDLE)
  12455. {}
  12456. VULKAN_HPP_CONSTEXPR Device( std::nullptr_t )
  12457. : m_device(VK_NULL_HANDLE)
  12458. {}
  12459. VULKAN_HPP_TYPESAFE_EXPLICIT Device( VkDevice device )
  12460. : m_device( device )
  12461. {}
  12462. #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
  12463. Device & operator=(VkDevice device)
  12464. {
  12465. m_device = device;
  12466. return *this;
  12467. }
  12468. #endif
  12469. Device & operator=( std::nullptr_t )
  12470. {
  12471. m_device = VK_NULL_HANDLE;
  12472. return *this;
  12473. }
  12474. bool operator==( Device const & rhs ) const
  12475. {
  12476. return m_device == rhs.m_device;
  12477. }
  12478. bool operator!=(Device const & rhs ) const
  12479. {
  12480. return m_device != rhs.m_device;
  12481. }
  12482. bool operator<(Device const & rhs ) const
  12483. {
  12484. return m_device < rhs.m_device;
  12485. }
  12486. #ifdef VK_USE_PLATFORM_WIN32_KHR
  12487. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12488. template<typename Dispatch = DispatchLoaderDefault>
  12489. Result acquireFullScreenExclusiveModeEXT( SwapchainKHR swapchain, Dispatch const &d = Dispatch() ) const;
  12490. #else
  12491. template<typename Dispatch = DispatchLoaderDefault>
  12492. ResultValueType<void>::type acquireFullScreenExclusiveModeEXT( SwapchainKHR swapchain, Dispatch const &d = Dispatch() ) const;
  12493. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12494. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  12495. template<typename Dispatch = DispatchLoaderDefault>
  12496. Result acquireNextImage2KHR( const AcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex, Dispatch const &d = Dispatch() ) const;
  12497. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12498. template<typename Dispatch = DispatchLoaderDefault>
  12499. ResultValue<uint32_t> acquireNextImage2KHR( const AcquireNextImageInfoKHR & acquireInfo, Dispatch const &d = Dispatch() ) const;
  12500. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12501. template<typename Dispatch = DispatchLoaderDefault>
  12502. Result acquireNextImageKHR( SwapchainKHR swapchain, uint64_t timeout, Semaphore semaphore, Fence fence, uint32_t* pImageIndex, Dispatch const &d = Dispatch() ) const;
  12503. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12504. template<typename Dispatch = DispatchLoaderDefault>
  12505. ResultValue<uint32_t> acquireNextImageKHR( SwapchainKHR swapchain, uint64_t timeout, Semaphore semaphore, Fence fence, Dispatch const &d = Dispatch() ) const;
  12506. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12507. template<typename Dispatch = DispatchLoaderDefault>
  12508. Result acquirePerformanceConfigurationINTEL( const PerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, PerformanceConfigurationINTEL* pConfiguration, Dispatch const &d = Dispatch() ) const;
  12509. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12510. template<typename Dispatch = DispatchLoaderDefault>
  12511. ResultValueType<PerformanceConfigurationINTEL>::type acquirePerformanceConfigurationINTEL( const PerformanceConfigurationAcquireInfoINTEL & acquireInfo, Dispatch const &d = Dispatch() ) const;
  12512. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12513. template<typename Dispatch = DispatchLoaderDefault>
  12514. Result allocateCommandBuffers( const CommandBufferAllocateInfo* pAllocateInfo, CommandBuffer* pCommandBuffers, Dispatch const &d = Dispatch() ) const;
  12515. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12516. template<typename Allocator = std::allocator<CommandBuffer>, typename Dispatch = DispatchLoaderDefault>
  12517. typename ResultValueType<std::vector<CommandBuffer,Allocator>>::type allocateCommandBuffers( const CommandBufferAllocateInfo & allocateInfo, Dispatch const &d = Dispatch() ) const;
  12518. template<typename Allocator = std::allocator<CommandBuffer>, typename Dispatch = DispatchLoaderDefault>
  12519. typename ResultValueType<std::vector<CommandBuffer,Allocator>>::type allocateCommandBuffers( const CommandBufferAllocateInfo & allocateInfo, Allocator const& vectorAllocator, Dispatch const &d ) const;
  12520. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  12521. template<typename Allocator = std::allocator<UniqueCommandBuffer>, typename Dispatch = DispatchLoaderDefault>
  12522. typename ResultValueType<std::vector<UniqueHandle<CommandBuffer,Dispatch>,Allocator>>::type allocateCommandBuffersUnique( const CommandBufferAllocateInfo & allocateInfo, Dispatch const &d = Dispatch() ) const;
  12523. template<typename Allocator = std::allocator<UniqueCommandBuffer>, typename Dispatch = DispatchLoaderDefault>
  12524. typename ResultValueType<std::vector<UniqueHandle<CommandBuffer,Dispatch>,Allocator>>::type allocateCommandBuffersUnique( const CommandBufferAllocateInfo & allocateInfo, Allocator const& vectorAllocator, Dispatch const &d ) const;
  12525. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  12526. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12527. template<typename Dispatch = DispatchLoaderDefault>
  12528. Result allocateDescriptorSets( const DescriptorSetAllocateInfo* pAllocateInfo, DescriptorSet* pDescriptorSets, Dispatch const &d = Dispatch() ) const;
  12529. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12530. template<typename Allocator = std::allocator<DescriptorSet>, typename Dispatch = DispatchLoaderDefault>
  12531. typename ResultValueType<std::vector<DescriptorSet,Allocator>>::type allocateDescriptorSets( const DescriptorSetAllocateInfo & allocateInfo, Dispatch const &d = Dispatch() ) const;
  12532. template<typename Allocator = std::allocator<DescriptorSet>, typename Dispatch = DispatchLoaderDefault>
  12533. typename ResultValueType<std::vector<DescriptorSet,Allocator>>::type allocateDescriptorSets( const DescriptorSetAllocateInfo & allocateInfo, Allocator const& vectorAllocator, Dispatch const &d ) const;
  12534. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  12535. template<typename Allocator = std::allocator<UniqueDescriptorSet>, typename Dispatch = DispatchLoaderDefault>
  12536. typename ResultValueType<std::vector<UniqueHandle<DescriptorSet,Dispatch>,Allocator>>::type allocateDescriptorSetsUnique( const DescriptorSetAllocateInfo & allocateInfo, Dispatch const &d = Dispatch() ) const;
  12537. template<typename Allocator = std::allocator<UniqueDescriptorSet>, typename Dispatch = DispatchLoaderDefault>
  12538. typename ResultValueType<std::vector<UniqueHandle<DescriptorSet,Dispatch>,Allocator>>::type allocateDescriptorSetsUnique( const DescriptorSetAllocateInfo & allocateInfo, Allocator const& vectorAllocator, Dispatch const &d ) const;
  12539. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  12540. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12541. template<typename Dispatch = DispatchLoaderDefault>
  12542. Result allocateMemory( const MemoryAllocateInfo* pAllocateInfo, const AllocationCallbacks* pAllocator, DeviceMemory* pMemory, Dispatch const &d = Dispatch() ) const;
  12543. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12544. template<typename Dispatch = DispatchLoaderDefault>
  12545. ResultValueType<DeviceMemory>::type allocateMemory( const MemoryAllocateInfo & allocateInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12546. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  12547. template<typename Dispatch = DispatchLoaderDefault>
  12548. typename ResultValueType<UniqueHandle<DeviceMemory,Dispatch>>::type allocateMemoryUnique( const MemoryAllocateInfo & allocateInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12549. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  12550. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12551. template<typename Dispatch = DispatchLoaderDefault>
  12552. Result bindAccelerationStructureMemoryNV( uint32_t bindInfoCount, const BindAccelerationStructureMemoryInfoNV* pBindInfos, Dispatch const &d = Dispatch() ) const;
  12553. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12554. template<typename Dispatch = DispatchLoaderDefault>
  12555. ResultValueType<void>::type bindAccelerationStructureMemoryNV( ArrayProxy<const BindAccelerationStructureMemoryInfoNV> bindInfos, Dispatch const &d = Dispatch() ) const;
  12556. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12557. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12558. template<typename Dispatch = DispatchLoaderDefault>
  12559. Result bindBufferMemory( Buffer buffer, DeviceMemory memory, DeviceSize memoryOffset, Dispatch const &d = Dispatch() ) const;
  12560. #else
  12561. template<typename Dispatch = DispatchLoaderDefault>
  12562. ResultValueType<void>::type bindBufferMemory( Buffer buffer, DeviceMemory memory, DeviceSize memoryOffset, Dispatch const &d = Dispatch() ) const;
  12563. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12564. template<typename Dispatch = DispatchLoaderDefault>
  12565. Result bindBufferMemory2( uint32_t bindInfoCount, const BindBufferMemoryInfo* pBindInfos, Dispatch const &d = Dispatch() ) const;
  12566. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12567. template<typename Dispatch = DispatchLoaderDefault>
  12568. ResultValueType<void>::type bindBufferMemory2( ArrayProxy<const BindBufferMemoryInfo> bindInfos, Dispatch const &d = Dispatch() ) const;
  12569. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12570. template<typename Dispatch = DispatchLoaderDefault>
  12571. Result bindBufferMemory2KHR( uint32_t bindInfoCount, const BindBufferMemoryInfo* pBindInfos, Dispatch const &d = Dispatch() ) const;
  12572. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12573. template<typename Dispatch = DispatchLoaderDefault>
  12574. ResultValueType<void>::type bindBufferMemory2KHR( ArrayProxy<const BindBufferMemoryInfo> bindInfos, Dispatch const &d = Dispatch() ) const;
  12575. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12576. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12577. template<typename Dispatch = DispatchLoaderDefault>
  12578. Result bindImageMemory( Image image, DeviceMemory memory, DeviceSize memoryOffset, Dispatch const &d = Dispatch() ) const;
  12579. #else
  12580. template<typename Dispatch = DispatchLoaderDefault>
  12581. ResultValueType<void>::type bindImageMemory( Image image, DeviceMemory memory, DeviceSize memoryOffset, Dispatch const &d = Dispatch() ) const;
  12582. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12583. template<typename Dispatch = DispatchLoaderDefault>
  12584. Result bindImageMemory2( uint32_t bindInfoCount, const BindImageMemoryInfo* pBindInfos, Dispatch const &d = Dispatch() ) const;
  12585. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12586. template<typename Dispatch = DispatchLoaderDefault>
  12587. ResultValueType<void>::type bindImageMemory2( ArrayProxy<const BindImageMemoryInfo> bindInfos, Dispatch const &d = Dispatch() ) const;
  12588. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12589. template<typename Dispatch = DispatchLoaderDefault>
  12590. Result bindImageMemory2KHR( uint32_t bindInfoCount, const BindImageMemoryInfo* pBindInfos, Dispatch const &d = Dispatch() ) const;
  12591. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12592. template<typename Dispatch = DispatchLoaderDefault>
  12593. ResultValueType<void>::type bindImageMemory2KHR( ArrayProxy<const BindImageMemoryInfo> bindInfos, Dispatch const &d = Dispatch() ) const;
  12594. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12595. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12596. template<typename Dispatch = DispatchLoaderDefault>
  12597. Result compileDeferredNV( Pipeline pipeline, uint32_t shader, Dispatch const &d = Dispatch() ) const;
  12598. #else
  12599. template<typename Dispatch = DispatchLoaderDefault>
  12600. ResultValueType<void>::type compileDeferredNV( Pipeline pipeline, uint32_t shader, Dispatch const &d = Dispatch() ) const;
  12601. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12602. template<typename Dispatch = DispatchLoaderDefault>
  12603. Result createAccelerationStructureNV( const AccelerationStructureCreateInfoNV* pCreateInfo, const AllocationCallbacks* pAllocator, AccelerationStructureNV* pAccelerationStructure, Dispatch const &d = Dispatch() ) const;
  12604. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12605. template<typename Dispatch = DispatchLoaderDefault>
  12606. ResultValueType<AccelerationStructureNV>::type createAccelerationStructureNV( const AccelerationStructureCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12607. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  12608. template<typename Dispatch = DispatchLoaderDefault>
  12609. typename ResultValueType<UniqueHandle<AccelerationStructureNV,Dispatch>>::type createAccelerationStructureNVUnique( const AccelerationStructureCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12610. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  12611. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12612. template<typename Dispatch = DispatchLoaderDefault>
  12613. Result createBuffer( const BufferCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, Buffer* pBuffer, Dispatch const &d = Dispatch() ) const;
  12614. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12615. template<typename Dispatch = DispatchLoaderDefault>
  12616. ResultValueType<Buffer>::type createBuffer( const BufferCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12617. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  12618. template<typename Dispatch = DispatchLoaderDefault>
  12619. typename ResultValueType<UniqueHandle<Buffer,Dispatch>>::type createBufferUnique( const BufferCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12620. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  12621. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12622. template<typename Dispatch = DispatchLoaderDefault>
  12623. Result createBufferView( const BufferViewCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, BufferView* pView, Dispatch const &d = Dispatch() ) const;
  12624. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12625. template<typename Dispatch = DispatchLoaderDefault>
  12626. ResultValueType<BufferView>::type createBufferView( const BufferViewCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12627. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  12628. template<typename Dispatch = DispatchLoaderDefault>
  12629. typename ResultValueType<UniqueHandle<BufferView,Dispatch>>::type createBufferViewUnique( const BufferViewCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12630. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  12631. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12632. template<typename Dispatch = DispatchLoaderDefault>
  12633. Result createCommandPool( const CommandPoolCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, CommandPool* pCommandPool, Dispatch const &d = Dispatch() ) const;
  12634. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12635. template<typename Dispatch = DispatchLoaderDefault>
  12636. ResultValueType<CommandPool>::type createCommandPool( const CommandPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12637. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  12638. template<typename Dispatch = DispatchLoaderDefault>
  12639. typename ResultValueType<UniqueHandle<CommandPool,Dispatch>>::type createCommandPoolUnique( const CommandPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12640. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  12641. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12642. template<typename Dispatch = DispatchLoaderDefault>
  12643. Result createComputePipelines( PipelineCache pipelineCache, uint32_t createInfoCount, const ComputePipelineCreateInfo* pCreateInfos, const AllocationCallbacks* pAllocator, Pipeline* pPipelines, Dispatch const &d = Dispatch() ) const;
  12644. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12645. template<typename Allocator = std::allocator<Pipeline>, typename Dispatch = DispatchLoaderDefault>
  12646. typename ResultValueType<std::vector<Pipeline,Allocator>>::type createComputePipelines( PipelineCache pipelineCache, ArrayProxy<const ComputePipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12647. template<typename Allocator = std::allocator<Pipeline>, typename Dispatch = DispatchLoaderDefault>
  12648. typename ResultValueType<std::vector<Pipeline,Allocator>>::type createComputePipelines( PipelineCache pipelineCache, ArrayProxy<const ComputePipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const;
  12649. template<typename Dispatch = DispatchLoaderDefault>
  12650. ResultValueType<Pipeline>::type createComputePipeline( PipelineCache pipelineCache, const ComputePipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12651. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  12652. template<typename Allocator = std::allocator<UniquePipeline>, typename Dispatch = DispatchLoaderDefault>
  12653. typename ResultValueType<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>>::type createComputePipelinesUnique( PipelineCache pipelineCache, ArrayProxy<const ComputePipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12654. template<typename Allocator = std::allocator<UniquePipeline>, typename Dispatch = DispatchLoaderDefault>
  12655. typename ResultValueType<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>>::type createComputePipelinesUnique( PipelineCache pipelineCache, ArrayProxy<const ComputePipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const;
  12656. template<typename Dispatch = DispatchLoaderDefault>
  12657. typename ResultValueType<UniqueHandle<Pipeline,Dispatch>>::type createComputePipelineUnique( PipelineCache pipelineCache, const ComputePipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12658. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  12659. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12660. template<typename Dispatch = DispatchLoaderDefault>
  12661. Result createDescriptorPool( const DescriptorPoolCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, DescriptorPool* pDescriptorPool, Dispatch const &d = Dispatch() ) const;
  12662. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12663. template<typename Dispatch = DispatchLoaderDefault>
  12664. ResultValueType<DescriptorPool>::type createDescriptorPool( const DescriptorPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12665. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  12666. template<typename Dispatch = DispatchLoaderDefault>
  12667. typename ResultValueType<UniqueHandle<DescriptorPool,Dispatch>>::type createDescriptorPoolUnique( const DescriptorPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12668. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  12669. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12670. template<typename Dispatch = DispatchLoaderDefault>
  12671. Result createDescriptorSetLayout( const DescriptorSetLayoutCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, DescriptorSetLayout* pSetLayout, Dispatch const &d = Dispatch() ) const;
  12672. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12673. template<typename Dispatch = DispatchLoaderDefault>
  12674. ResultValueType<DescriptorSetLayout>::type createDescriptorSetLayout( const DescriptorSetLayoutCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12675. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  12676. template<typename Dispatch = DispatchLoaderDefault>
  12677. typename ResultValueType<UniqueHandle<DescriptorSetLayout,Dispatch>>::type createDescriptorSetLayoutUnique( const DescriptorSetLayoutCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12678. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  12679. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12680. template<typename Dispatch = DispatchLoaderDefault>
  12681. Result createDescriptorUpdateTemplate( const DescriptorUpdateTemplateCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, DescriptorUpdateTemplate* pDescriptorUpdateTemplate, Dispatch const &d = Dispatch() ) const;
  12682. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12683. template<typename Dispatch = DispatchLoaderDefault>
  12684. ResultValueType<DescriptorUpdateTemplate>::type createDescriptorUpdateTemplate( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12685. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  12686. template<typename Dispatch = DispatchLoaderDefault>
  12687. typename ResultValueType<UniqueHandle<DescriptorUpdateTemplate,Dispatch>>::type createDescriptorUpdateTemplateUnique( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12688. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  12689. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12690. template<typename Dispatch = DispatchLoaderDefault>
  12691. Result createDescriptorUpdateTemplateKHR( const DescriptorUpdateTemplateCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, DescriptorUpdateTemplate* pDescriptorUpdateTemplate, Dispatch const &d = Dispatch() ) const;
  12692. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12693. template<typename Dispatch = DispatchLoaderDefault>
  12694. ResultValueType<DescriptorUpdateTemplate>::type createDescriptorUpdateTemplateKHR( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12695. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  12696. template<typename Dispatch = DispatchLoaderDefault>
  12697. typename ResultValueType<UniqueHandle<DescriptorUpdateTemplate,Dispatch>>::type createDescriptorUpdateTemplateKHRUnique( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12698. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  12699. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12700. template<typename Dispatch = DispatchLoaderDefault>
  12701. Result createEvent( const EventCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, Event* pEvent, Dispatch const &d = Dispatch() ) const;
  12702. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12703. template<typename Dispatch = DispatchLoaderDefault>
  12704. ResultValueType<Event>::type createEvent( const EventCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12705. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  12706. template<typename Dispatch = DispatchLoaderDefault>
  12707. typename ResultValueType<UniqueHandle<Event,Dispatch>>::type createEventUnique( const EventCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12708. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  12709. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12710. template<typename Dispatch = DispatchLoaderDefault>
  12711. Result createFence( const FenceCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, Fence* pFence, Dispatch const &d = Dispatch() ) const;
  12712. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12713. template<typename Dispatch = DispatchLoaderDefault>
  12714. ResultValueType<Fence>::type createFence( const FenceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12715. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  12716. template<typename Dispatch = DispatchLoaderDefault>
  12717. typename ResultValueType<UniqueHandle<Fence,Dispatch>>::type createFenceUnique( const FenceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12718. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  12719. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12720. template<typename Dispatch = DispatchLoaderDefault>
  12721. Result createFramebuffer( const FramebufferCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, Framebuffer* pFramebuffer, Dispatch const &d = Dispatch() ) const;
  12722. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12723. template<typename Dispatch = DispatchLoaderDefault>
  12724. ResultValueType<Framebuffer>::type createFramebuffer( const FramebufferCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12725. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  12726. template<typename Dispatch = DispatchLoaderDefault>
  12727. typename ResultValueType<UniqueHandle<Framebuffer,Dispatch>>::type createFramebufferUnique( const FramebufferCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12728. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  12729. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12730. template<typename Dispatch = DispatchLoaderDefault>
  12731. Result createGraphicsPipelines( PipelineCache pipelineCache, uint32_t createInfoCount, const GraphicsPipelineCreateInfo* pCreateInfos, const AllocationCallbacks* pAllocator, Pipeline* pPipelines, Dispatch const &d = Dispatch() ) const;
  12732. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12733. template<typename Allocator = std::allocator<Pipeline>, typename Dispatch = DispatchLoaderDefault>
  12734. typename ResultValueType<std::vector<Pipeline,Allocator>>::type createGraphicsPipelines( PipelineCache pipelineCache, ArrayProxy<const GraphicsPipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12735. template<typename Allocator = std::allocator<Pipeline>, typename Dispatch = DispatchLoaderDefault>
  12736. typename ResultValueType<std::vector<Pipeline,Allocator>>::type createGraphicsPipelines( PipelineCache pipelineCache, ArrayProxy<const GraphicsPipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const;
  12737. template<typename Dispatch = DispatchLoaderDefault>
  12738. ResultValueType<Pipeline>::type createGraphicsPipeline( PipelineCache pipelineCache, const GraphicsPipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12739. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  12740. template<typename Allocator = std::allocator<UniquePipeline>, typename Dispatch = DispatchLoaderDefault>
  12741. typename ResultValueType<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>>::type createGraphicsPipelinesUnique( PipelineCache pipelineCache, ArrayProxy<const GraphicsPipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12742. template<typename Allocator = std::allocator<UniquePipeline>, typename Dispatch = DispatchLoaderDefault>
  12743. typename ResultValueType<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>>::type createGraphicsPipelinesUnique( PipelineCache pipelineCache, ArrayProxy<const GraphicsPipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const;
  12744. template<typename Dispatch = DispatchLoaderDefault>
  12745. typename ResultValueType<UniqueHandle<Pipeline,Dispatch>>::type createGraphicsPipelineUnique( PipelineCache pipelineCache, const GraphicsPipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12746. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  12747. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12748. template<typename Dispatch = DispatchLoaderDefault>
  12749. Result createImage( const ImageCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, Image* pImage, Dispatch const &d = Dispatch() ) const;
  12750. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12751. template<typename Dispatch = DispatchLoaderDefault>
  12752. ResultValueType<Image>::type createImage( const ImageCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12753. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  12754. template<typename Dispatch = DispatchLoaderDefault>
  12755. typename ResultValueType<UniqueHandle<Image,Dispatch>>::type createImageUnique( const ImageCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12756. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  12757. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12758. template<typename Dispatch = DispatchLoaderDefault>
  12759. Result createImageView( const ImageViewCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, ImageView* pView, Dispatch const &d = Dispatch() ) const;
  12760. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12761. template<typename Dispatch = DispatchLoaderDefault>
  12762. ResultValueType<ImageView>::type createImageView( const ImageViewCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12763. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  12764. template<typename Dispatch = DispatchLoaderDefault>
  12765. typename ResultValueType<UniqueHandle<ImageView,Dispatch>>::type createImageViewUnique( const ImageViewCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12766. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  12767. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12768. template<typename Dispatch = DispatchLoaderDefault>
  12769. Result createIndirectCommandsLayoutNVX( const IndirectCommandsLayoutCreateInfoNVX* pCreateInfo, const AllocationCallbacks* pAllocator, IndirectCommandsLayoutNVX* pIndirectCommandsLayout, Dispatch const &d = Dispatch() ) const;
  12770. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12771. template<typename Dispatch = DispatchLoaderDefault>
  12772. ResultValueType<IndirectCommandsLayoutNVX>::type createIndirectCommandsLayoutNVX( const IndirectCommandsLayoutCreateInfoNVX & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12773. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  12774. template<typename Dispatch = DispatchLoaderDefault>
  12775. typename ResultValueType<UniqueHandle<IndirectCommandsLayoutNVX,Dispatch>>::type createIndirectCommandsLayoutNVXUnique( const IndirectCommandsLayoutCreateInfoNVX & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12776. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  12777. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12778. template<typename Dispatch = DispatchLoaderDefault>
  12779. Result createObjectTableNVX( const ObjectTableCreateInfoNVX* pCreateInfo, const AllocationCallbacks* pAllocator, ObjectTableNVX* pObjectTable, Dispatch const &d = Dispatch() ) const;
  12780. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12781. template<typename Dispatch = DispatchLoaderDefault>
  12782. ResultValueType<ObjectTableNVX>::type createObjectTableNVX( const ObjectTableCreateInfoNVX & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12783. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  12784. template<typename Dispatch = DispatchLoaderDefault>
  12785. typename ResultValueType<UniqueHandle<ObjectTableNVX,Dispatch>>::type createObjectTableNVXUnique( const ObjectTableCreateInfoNVX & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12786. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  12787. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12788. template<typename Dispatch = DispatchLoaderDefault>
  12789. Result createPipelineCache( const PipelineCacheCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, PipelineCache* pPipelineCache, Dispatch const &d = Dispatch() ) const;
  12790. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12791. template<typename Dispatch = DispatchLoaderDefault>
  12792. ResultValueType<PipelineCache>::type createPipelineCache( const PipelineCacheCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12793. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  12794. template<typename Dispatch = DispatchLoaderDefault>
  12795. typename ResultValueType<UniqueHandle<PipelineCache,Dispatch>>::type createPipelineCacheUnique( const PipelineCacheCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12796. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  12797. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12798. template<typename Dispatch = DispatchLoaderDefault>
  12799. Result createPipelineLayout( const PipelineLayoutCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, PipelineLayout* pPipelineLayout, Dispatch const &d = Dispatch() ) const;
  12800. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12801. template<typename Dispatch = DispatchLoaderDefault>
  12802. ResultValueType<PipelineLayout>::type createPipelineLayout( const PipelineLayoutCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12803. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  12804. template<typename Dispatch = DispatchLoaderDefault>
  12805. typename ResultValueType<UniqueHandle<PipelineLayout,Dispatch>>::type createPipelineLayoutUnique( const PipelineLayoutCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12806. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  12807. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12808. template<typename Dispatch = DispatchLoaderDefault>
  12809. Result createQueryPool( const QueryPoolCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, QueryPool* pQueryPool, Dispatch const &d = Dispatch() ) const;
  12810. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12811. template<typename Dispatch = DispatchLoaderDefault>
  12812. ResultValueType<QueryPool>::type createQueryPool( const QueryPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12813. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  12814. template<typename Dispatch = DispatchLoaderDefault>
  12815. typename ResultValueType<UniqueHandle<QueryPool,Dispatch>>::type createQueryPoolUnique( const QueryPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12816. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  12817. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12818. template<typename Dispatch = DispatchLoaderDefault>
  12819. Result createRayTracingPipelinesNV( PipelineCache pipelineCache, uint32_t createInfoCount, const RayTracingPipelineCreateInfoNV* pCreateInfos, const AllocationCallbacks* pAllocator, Pipeline* pPipelines, Dispatch const &d = Dispatch() ) const;
  12820. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12821. template<typename Allocator = std::allocator<Pipeline>, typename Dispatch = DispatchLoaderDefault>
  12822. typename ResultValueType<std::vector<Pipeline,Allocator>>::type createRayTracingPipelinesNV( PipelineCache pipelineCache, ArrayProxy<const RayTracingPipelineCreateInfoNV> createInfos, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12823. template<typename Allocator = std::allocator<Pipeline>, typename Dispatch = DispatchLoaderDefault>
  12824. typename ResultValueType<std::vector<Pipeline,Allocator>>::type createRayTracingPipelinesNV( PipelineCache pipelineCache, ArrayProxy<const RayTracingPipelineCreateInfoNV> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const;
  12825. template<typename Dispatch = DispatchLoaderDefault>
  12826. ResultValueType<Pipeline>::type createRayTracingPipelineNV( PipelineCache pipelineCache, const RayTracingPipelineCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12827. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  12828. template<typename Allocator = std::allocator<UniquePipeline>, typename Dispatch = DispatchLoaderDefault>
  12829. typename ResultValueType<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>>::type createRayTracingPipelinesNVUnique( PipelineCache pipelineCache, ArrayProxy<const RayTracingPipelineCreateInfoNV> createInfos, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12830. template<typename Allocator = std::allocator<UniquePipeline>, typename Dispatch = DispatchLoaderDefault>
  12831. typename ResultValueType<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>>::type createRayTracingPipelinesNVUnique( PipelineCache pipelineCache, ArrayProxy<const RayTracingPipelineCreateInfoNV> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const;
  12832. template<typename Dispatch = DispatchLoaderDefault>
  12833. typename ResultValueType<UniqueHandle<Pipeline,Dispatch>>::type createRayTracingPipelineNVUnique( PipelineCache pipelineCache, const RayTracingPipelineCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12834. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  12835. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12836. template<typename Dispatch = DispatchLoaderDefault>
  12837. Result createRenderPass( const RenderPassCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, RenderPass* pRenderPass, Dispatch const &d = Dispatch() ) const;
  12838. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12839. template<typename Dispatch = DispatchLoaderDefault>
  12840. ResultValueType<RenderPass>::type createRenderPass( const RenderPassCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12841. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  12842. template<typename Dispatch = DispatchLoaderDefault>
  12843. typename ResultValueType<UniqueHandle<RenderPass,Dispatch>>::type createRenderPassUnique( const RenderPassCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12844. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  12845. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12846. template<typename Dispatch = DispatchLoaderDefault>
  12847. Result createRenderPass2KHR( const RenderPassCreateInfo2KHR* pCreateInfo, const AllocationCallbacks* pAllocator, RenderPass* pRenderPass, Dispatch const &d = Dispatch() ) const;
  12848. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12849. template<typename Dispatch = DispatchLoaderDefault>
  12850. ResultValueType<RenderPass>::type createRenderPass2KHR( const RenderPassCreateInfo2KHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12851. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  12852. template<typename Dispatch = DispatchLoaderDefault>
  12853. typename ResultValueType<UniqueHandle<RenderPass,Dispatch>>::type createRenderPass2KHRUnique( const RenderPassCreateInfo2KHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12854. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  12855. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12856. template<typename Dispatch = DispatchLoaderDefault>
  12857. Result createSampler( const SamplerCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, Sampler* pSampler, Dispatch const &d = Dispatch() ) const;
  12858. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12859. template<typename Dispatch = DispatchLoaderDefault>
  12860. ResultValueType<Sampler>::type createSampler( const SamplerCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12861. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  12862. template<typename Dispatch = DispatchLoaderDefault>
  12863. typename ResultValueType<UniqueHandle<Sampler,Dispatch>>::type createSamplerUnique( const SamplerCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12864. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  12865. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12866. template<typename Dispatch = DispatchLoaderDefault>
  12867. Result createSamplerYcbcrConversion( const SamplerYcbcrConversionCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, SamplerYcbcrConversion* pYcbcrConversion, Dispatch const &d = Dispatch() ) const;
  12868. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12869. template<typename Dispatch = DispatchLoaderDefault>
  12870. ResultValueType<SamplerYcbcrConversion>::type createSamplerYcbcrConversion( const SamplerYcbcrConversionCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12871. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  12872. template<typename Dispatch = DispatchLoaderDefault>
  12873. typename ResultValueType<UniqueHandle<SamplerYcbcrConversion,Dispatch>>::type createSamplerYcbcrConversionUnique( const SamplerYcbcrConversionCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12874. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  12875. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12876. template<typename Dispatch = DispatchLoaderDefault>
  12877. Result createSamplerYcbcrConversionKHR( const SamplerYcbcrConversionCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, SamplerYcbcrConversion* pYcbcrConversion, Dispatch const &d = Dispatch() ) const;
  12878. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12879. template<typename Dispatch = DispatchLoaderDefault>
  12880. ResultValueType<SamplerYcbcrConversion>::type createSamplerYcbcrConversionKHR( const SamplerYcbcrConversionCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12881. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  12882. template<typename Dispatch = DispatchLoaderDefault>
  12883. typename ResultValueType<UniqueHandle<SamplerYcbcrConversion,Dispatch>>::type createSamplerYcbcrConversionKHRUnique( const SamplerYcbcrConversionCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12884. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  12885. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12886. template<typename Dispatch = DispatchLoaderDefault>
  12887. Result createSemaphore( const SemaphoreCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, Semaphore* pSemaphore, Dispatch const &d = Dispatch() ) const;
  12888. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12889. template<typename Dispatch = DispatchLoaderDefault>
  12890. ResultValueType<Semaphore>::type createSemaphore( const SemaphoreCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12891. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  12892. template<typename Dispatch = DispatchLoaderDefault>
  12893. typename ResultValueType<UniqueHandle<Semaphore,Dispatch>>::type createSemaphoreUnique( const SemaphoreCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12894. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  12895. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12896. template<typename Dispatch = DispatchLoaderDefault>
  12897. Result createShaderModule( const ShaderModuleCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, ShaderModule* pShaderModule, Dispatch const &d = Dispatch() ) const;
  12898. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12899. template<typename Dispatch = DispatchLoaderDefault>
  12900. ResultValueType<ShaderModule>::type createShaderModule( const ShaderModuleCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12901. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  12902. template<typename Dispatch = DispatchLoaderDefault>
  12903. typename ResultValueType<UniqueHandle<ShaderModule,Dispatch>>::type createShaderModuleUnique( const ShaderModuleCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12904. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  12905. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12906. template<typename Dispatch = DispatchLoaderDefault>
  12907. Result createSharedSwapchainsKHR( uint32_t swapchainCount, const SwapchainCreateInfoKHR* pCreateInfos, const AllocationCallbacks* pAllocator, SwapchainKHR* pSwapchains, Dispatch const &d = Dispatch() ) const;
  12908. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12909. template<typename Allocator = std::allocator<SwapchainKHR>, typename Dispatch = DispatchLoaderDefault>
  12910. typename ResultValueType<std::vector<SwapchainKHR,Allocator>>::type createSharedSwapchainsKHR( ArrayProxy<const SwapchainCreateInfoKHR> createInfos, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12911. template<typename Allocator = std::allocator<SwapchainKHR>, typename Dispatch = DispatchLoaderDefault>
  12912. typename ResultValueType<std::vector<SwapchainKHR,Allocator>>::type createSharedSwapchainsKHR( ArrayProxy<const SwapchainCreateInfoKHR> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const;
  12913. template<typename Dispatch = DispatchLoaderDefault>
  12914. ResultValueType<SwapchainKHR>::type createSharedSwapchainKHR( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12915. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  12916. template<typename Allocator = std::allocator<UniqueSwapchainKHR>, typename Dispatch = DispatchLoaderDefault>
  12917. typename ResultValueType<std::vector<UniqueHandle<SwapchainKHR,Dispatch>,Allocator>>::type createSharedSwapchainsKHRUnique( ArrayProxy<const SwapchainCreateInfoKHR> createInfos, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12918. template<typename Allocator = std::allocator<UniqueSwapchainKHR>, typename Dispatch = DispatchLoaderDefault>
  12919. typename ResultValueType<std::vector<UniqueHandle<SwapchainKHR,Dispatch>,Allocator>>::type createSharedSwapchainsKHRUnique( ArrayProxy<const SwapchainCreateInfoKHR> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const;
  12920. template<typename Dispatch = DispatchLoaderDefault>
  12921. typename ResultValueType<UniqueHandle<SwapchainKHR,Dispatch>>::type createSharedSwapchainKHRUnique( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12922. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  12923. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12924. template<typename Dispatch = DispatchLoaderDefault>
  12925. Result createSwapchainKHR( const SwapchainCreateInfoKHR* pCreateInfo, const AllocationCallbacks* pAllocator, SwapchainKHR* pSwapchain, Dispatch const &d = Dispatch() ) const;
  12926. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12927. template<typename Dispatch = DispatchLoaderDefault>
  12928. ResultValueType<SwapchainKHR>::type createSwapchainKHR( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12929. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  12930. template<typename Dispatch = DispatchLoaderDefault>
  12931. typename ResultValueType<UniqueHandle<SwapchainKHR,Dispatch>>::type createSwapchainKHRUnique( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12932. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  12933. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12934. template<typename Dispatch = DispatchLoaderDefault>
  12935. Result createValidationCacheEXT( const ValidationCacheCreateInfoEXT* pCreateInfo, const AllocationCallbacks* pAllocator, ValidationCacheEXT* pValidationCache, Dispatch const &d = Dispatch() ) const;
  12936. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12937. template<typename Dispatch = DispatchLoaderDefault>
  12938. ResultValueType<ValidationCacheEXT>::type createValidationCacheEXT( const ValidationCacheCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12939. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  12940. template<typename Dispatch = DispatchLoaderDefault>
  12941. typename ResultValueType<UniqueHandle<ValidationCacheEXT,Dispatch>>::type createValidationCacheEXTUnique( const ValidationCacheCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12942. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  12943. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12944. template<typename Dispatch = DispatchLoaderDefault>
  12945. Result debugMarkerSetObjectNameEXT( const DebugMarkerObjectNameInfoEXT* pNameInfo, Dispatch const &d = Dispatch() ) const;
  12946. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12947. template<typename Dispatch = DispatchLoaderDefault>
  12948. ResultValueType<void>::type debugMarkerSetObjectNameEXT( const DebugMarkerObjectNameInfoEXT & nameInfo, Dispatch const &d = Dispatch() ) const;
  12949. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12950. template<typename Dispatch = DispatchLoaderDefault>
  12951. Result debugMarkerSetObjectTagEXT( const DebugMarkerObjectTagInfoEXT* pTagInfo, Dispatch const &d = Dispatch() ) const;
  12952. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12953. template<typename Dispatch = DispatchLoaderDefault>
  12954. ResultValueType<void>::type debugMarkerSetObjectTagEXT( const DebugMarkerObjectTagInfoEXT & tagInfo, Dispatch const &d = Dispatch() ) const;
  12955. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12956. template<typename Dispatch = DispatchLoaderDefault>
  12957. void destroyAccelerationStructureNV( AccelerationStructureNV accelerationStructure, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  12958. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12959. template<typename Dispatch = DispatchLoaderDefault>
  12960. void destroyAccelerationStructureNV( AccelerationStructureNV accelerationStructure, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12961. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12962. template<typename Dispatch = DispatchLoaderDefault>
  12963. void destroy( AccelerationStructureNV accelerationStructure, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  12964. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12965. template<typename Dispatch = DispatchLoaderDefault>
  12966. void destroy( AccelerationStructureNV accelerationStructure, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12967. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12968. template<typename Dispatch = DispatchLoaderDefault>
  12969. void destroyBuffer( Buffer buffer, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  12970. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12971. template<typename Dispatch = DispatchLoaderDefault>
  12972. void destroyBuffer( Buffer buffer, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12973. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12974. template<typename Dispatch = DispatchLoaderDefault>
  12975. void destroy( Buffer buffer, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  12976. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12977. template<typename Dispatch = DispatchLoaderDefault>
  12978. void destroy( Buffer buffer, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12979. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12980. template<typename Dispatch = DispatchLoaderDefault>
  12981. void destroyBufferView( BufferView bufferView, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  12982. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12983. template<typename Dispatch = DispatchLoaderDefault>
  12984. void destroyBufferView( BufferView bufferView, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12985. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12986. template<typename Dispatch = DispatchLoaderDefault>
  12987. void destroy( BufferView bufferView, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  12988. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12989. template<typename Dispatch = DispatchLoaderDefault>
  12990. void destroy( BufferView bufferView, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12991. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12992. template<typename Dispatch = DispatchLoaderDefault>
  12993. void destroyCommandPool( CommandPool commandPool, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  12994. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  12995. template<typename Dispatch = DispatchLoaderDefault>
  12996. void destroyCommandPool( CommandPool commandPool, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  12997. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  12998. template<typename Dispatch = DispatchLoaderDefault>
  12999. void destroy( CommandPool commandPool, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  13000. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13001. template<typename Dispatch = DispatchLoaderDefault>
  13002. void destroy( CommandPool commandPool, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13003. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13004. template<typename Dispatch = DispatchLoaderDefault>
  13005. void destroyDescriptorPool( DescriptorPool descriptorPool, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  13006. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13007. template<typename Dispatch = DispatchLoaderDefault>
  13008. void destroyDescriptorPool( DescriptorPool descriptorPool, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13009. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13010. template<typename Dispatch = DispatchLoaderDefault>
  13011. void destroy( DescriptorPool descriptorPool, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  13012. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13013. template<typename Dispatch = DispatchLoaderDefault>
  13014. void destroy( DescriptorPool descriptorPool, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13015. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13016. template<typename Dispatch = DispatchLoaderDefault>
  13017. void destroyDescriptorSetLayout( DescriptorSetLayout descriptorSetLayout, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  13018. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13019. template<typename Dispatch = DispatchLoaderDefault>
  13020. void destroyDescriptorSetLayout( DescriptorSetLayout descriptorSetLayout, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13021. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13022. template<typename Dispatch = DispatchLoaderDefault>
  13023. void destroy( DescriptorSetLayout descriptorSetLayout, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  13024. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13025. template<typename Dispatch = DispatchLoaderDefault>
  13026. void destroy( DescriptorSetLayout descriptorSetLayout, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13027. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13028. template<typename Dispatch = DispatchLoaderDefault>
  13029. void destroyDescriptorUpdateTemplate( DescriptorUpdateTemplate descriptorUpdateTemplate, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  13030. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13031. template<typename Dispatch = DispatchLoaderDefault>
  13032. void destroyDescriptorUpdateTemplate( DescriptorUpdateTemplate descriptorUpdateTemplate, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13033. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13034. template<typename Dispatch = DispatchLoaderDefault>
  13035. void destroy( DescriptorUpdateTemplate descriptorUpdateTemplate, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  13036. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13037. template<typename Dispatch = DispatchLoaderDefault>
  13038. void destroy( DescriptorUpdateTemplate descriptorUpdateTemplate, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13039. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13040. template<typename Dispatch = DispatchLoaderDefault>
  13041. void destroyDescriptorUpdateTemplateKHR( DescriptorUpdateTemplate descriptorUpdateTemplate, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  13042. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13043. template<typename Dispatch = DispatchLoaderDefault>
  13044. void destroyDescriptorUpdateTemplateKHR( DescriptorUpdateTemplate descriptorUpdateTemplate, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13045. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13046. template<typename Dispatch = DispatchLoaderDefault>
  13047. void destroy( const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  13048. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13049. template<typename Dispatch = DispatchLoaderDefault>
  13050. void destroy( Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13051. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13052. template<typename Dispatch = DispatchLoaderDefault>
  13053. void destroyEvent( Event event, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  13054. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13055. template<typename Dispatch = DispatchLoaderDefault>
  13056. void destroyEvent( Event event, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13057. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13058. template<typename Dispatch = DispatchLoaderDefault>
  13059. void destroy( Event event, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  13060. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13061. template<typename Dispatch = DispatchLoaderDefault>
  13062. void destroy( Event event, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13063. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13064. template<typename Dispatch = DispatchLoaderDefault>
  13065. void destroyFence( Fence fence, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  13066. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13067. template<typename Dispatch = DispatchLoaderDefault>
  13068. void destroyFence( Fence fence, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13069. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13070. template<typename Dispatch = DispatchLoaderDefault>
  13071. void destroy( Fence fence, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  13072. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13073. template<typename Dispatch = DispatchLoaderDefault>
  13074. void destroy( Fence fence, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13075. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13076. template<typename Dispatch = DispatchLoaderDefault>
  13077. void destroyFramebuffer( Framebuffer framebuffer, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  13078. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13079. template<typename Dispatch = DispatchLoaderDefault>
  13080. void destroyFramebuffer( Framebuffer framebuffer, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13081. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13082. template<typename Dispatch = DispatchLoaderDefault>
  13083. void destroy( Framebuffer framebuffer, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  13084. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13085. template<typename Dispatch = DispatchLoaderDefault>
  13086. void destroy( Framebuffer framebuffer, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13087. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13088. template<typename Dispatch = DispatchLoaderDefault>
  13089. void destroyImage( Image image, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  13090. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13091. template<typename Dispatch = DispatchLoaderDefault>
  13092. void destroyImage( Image image, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13093. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13094. template<typename Dispatch = DispatchLoaderDefault>
  13095. void destroy( Image image, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  13096. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13097. template<typename Dispatch = DispatchLoaderDefault>
  13098. void destroy( Image image, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13099. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13100. template<typename Dispatch = DispatchLoaderDefault>
  13101. void destroyImageView( ImageView imageView, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  13102. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13103. template<typename Dispatch = DispatchLoaderDefault>
  13104. void destroyImageView( ImageView imageView, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13105. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13106. template<typename Dispatch = DispatchLoaderDefault>
  13107. void destroy( ImageView imageView, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  13108. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13109. template<typename Dispatch = DispatchLoaderDefault>
  13110. void destroy( ImageView imageView, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13111. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13112. template<typename Dispatch = DispatchLoaderDefault>
  13113. void destroyIndirectCommandsLayoutNVX( IndirectCommandsLayoutNVX indirectCommandsLayout, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  13114. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13115. template<typename Dispatch = DispatchLoaderDefault>
  13116. void destroyIndirectCommandsLayoutNVX( IndirectCommandsLayoutNVX indirectCommandsLayout, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13117. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13118. template<typename Dispatch = DispatchLoaderDefault>
  13119. void destroy( IndirectCommandsLayoutNVX indirectCommandsLayout, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  13120. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13121. template<typename Dispatch = DispatchLoaderDefault>
  13122. void destroy( IndirectCommandsLayoutNVX indirectCommandsLayout, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13123. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13124. template<typename Dispatch = DispatchLoaderDefault>
  13125. void destroyObjectTableNVX( ObjectTableNVX objectTable, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  13126. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13127. template<typename Dispatch = DispatchLoaderDefault>
  13128. void destroyObjectTableNVX( ObjectTableNVX objectTable, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13129. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13130. template<typename Dispatch = DispatchLoaderDefault>
  13131. void destroy( ObjectTableNVX objectTable, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  13132. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13133. template<typename Dispatch = DispatchLoaderDefault>
  13134. void destroy( ObjectTableNVX objectTable, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13135. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13136. template<typename Dispatch = DispatchLoaderDefault>
  13137. void destroyPipeline( Pipeline pipeline, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  13138. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13139. template<typename Dispatch = DispatchLoaderDefault>
  13140. void destroyPipeline( Pipeline pipeline, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13141. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13142. template<typename Dispatch = DispatchLoaderDefault>
  13143. void destroy( Pipeline pipeline, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  13144. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13145. template<typename Dispatch = DispatchLoaderDefault>
  13146. void destroy( Pipeline pipeline, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13147. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13148. template<typename Dispatch = DispatchLoaderDefault>
  13149. void destroyPipelineCache( PipelineCache pipelineCache, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  13150. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13151. template<typename Dispatch = DispatchLoaderDefault>
  13152. void destroyPipelineCache( PipelineCache pipelineCache, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13153. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13154. template<typename Dispatch = DispatchLoaderDefault>
  13155. void destroy( PipelineCache pipelineCache, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  13156. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13157. template<typename Dispatch = DispatchLoaderDefault>
  13158. void destroy( PipelineCache pipelineCache, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13159. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13160. template<typename Dispatch = DispatchLoaderDefault>
  13161. void destroyPipelineLayout( PipelineLayout pipelineLayout, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  13162. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13163. template<typename Dispatch = DispatchLoaderDefault>
  13164. void destroyPipelineLayout( PipelineLayout pipelineLayout, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13165. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13166. template<typename Dispatch = DispatchLoaderDefault>
  13167. void destroy( PipelineLayout pipelineLayout, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  13168. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13169. template<typename Dispatch = DispatchLoaderDefault>
  13170. void destroy( PipelineLayout pipelineLayout, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13171. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13172. template<typename Dispatch = DispatchLoaderDefault>
  13173. void destroyQueryPool( QueryPool queryPool, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  13174. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13175. template<typename Dispatch = DispatchLoaderDefault>
  13176. void destroyQueryPool( QueryPool queryPool, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13177. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13178. template<typename Dispatch = DispatchLoaderDefault>
  13179. void destroy( QueryPool queryPool, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  13180. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13181. template<typename Dispatch = DispatchLoaderDefault>
  13182. void destroy( QueryPool queryPool, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13183. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13184. template<typename Dispatch = DispatchLoaderDefault>
  13185. void destroyRenderPass( RenderPass renderPass, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  13186. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13187. template<typename Dispatch = DispatchLoaderDefault>
  13188. void destroyRenderPass( RenderPass renderPass, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13189. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13190. template<typename Dispatch = DispatchLoaderDefault>
  13191. void destroy( RenderPass renderPass, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  13192. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13193. template<typename Dispatch = DispatchLoaderDefault>
  13194. void destroy( RenderPass renderPass, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13195. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13196. template<typename Dispatch = DispatchLoaderDefault>
  13197. void destroySampler( Sampler sampler, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  13198. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13199. template<typename Dispatch = DispatchLoaderDefault>
  13200. void destroySampler( Sampler sampler, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13201. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13202. template<typename Dispatch = DispatchLoaderDefault>
  13203. void destroy( Sampler sampler, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  13204. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13205. template<typename Dispatch = DispatchLoaderDefault>
  13206. void destroy( Sampler sampler, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13207. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13208. template<typename Dispatch = DispatchLoaderDefault>
  13209. void destroySamplerYcbcrConversion( SamplerYcbcrConversion ycbcrConversion, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  13210. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13211. template<typename Dispatch = DispatchLoaderDefault>
  13212. void destroySamplerYcbcrConversion( SamplerYcbcrConversion ycbcrConversion, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13213. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13214. template<typename Dispatch = DispatchLoaderDefault>
  13215. void destroy( SamplerYcbcrConversion ycbcrConversion, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  13216. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13217. template<typename Dispatch = DispatchLoaderDefault>
  13218. void destroy( SamplerYcbcrConversion ycbcrConversion, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13219. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13220. template<typename Dispatch = DispatchLoaderDefault>
  13221. void destroySamplerYcbcrConversionKHR( SamplerYcbcrConversion ycbcrConversion, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  13222. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13223. template<typename Dispatch = DispatchLoaderDefault>
  13224. void destroySamplerYcbcrConversionKHR( SamplerYcbcrConversion ycbcrConversion, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13225. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13226. template<typename Dispatch = DispatchLoaderDefault>
  13227. void destroySemaphore( Semaphore semaphore, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  13228. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13229. template<typename Dispatch = DispatchLoaderDefault>
  13230. void destroySemaphore( Semaphore semaphore, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13231. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13232. template<typename Dispatch = DispatchLoaderDefault>
  13233. void destroy( Semaphore semaphore, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  13234. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13235. template<typename Dispatch = DispatchLoaderDefault>
  13236. void destroy( Semaphore semaphore, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13237. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13238. template<typename Dispatch = DispatchLoaderDefault>
  13239. void destroyShaderModule( ShaderModule shaderModule, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  13240. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13241. template<typename Dispatch = DispatchLoaderDefault>
  13242. void destroyShaderModule( ShaderModule shaderModule, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13243. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13244. template<typename Dispatch = DispatchLoaderDefault>
  13245. void destroy( ShaderModule shaderModule, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  13246. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13247. template<typename Dispatch = DispatchLoaderDefault>
  13248. void destroy( ShaderModule shaderModule, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13249. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13250. template<typename Dispatch = DispatchLoaderDefault>
  13251. void destroySwapchainKHR( SwapchainKHR swapchain, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  13252. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13253. template<typename Dispatch = DispatchLoaderDefault>
  13254. void destroySwapchainKHR( SwapchainKHR swapchain, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13255. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13256. template<typename Dispatch = DispatchLoaderDefault>
  13257. void destroy( SwapchainKHR swapchain, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  13258. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13259. template<typename Dispatch = DispatchLoaderDefault>
  13260. void destroy( SwapchainKHR swapchain, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13261. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13262. template<typename Dispatch = DispatchLoaderDefault>
  13263. void destroyValidationCacheEXT( ValidationCacheEXT validationCache, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  13264. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13265. template<typename Dispatch = DispatchLoaderDefault>
  13266. void destroyValidationCacheEXT( ValidationCacheEXT validationCache, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13267. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13268. template<typename Dispatch = DispatchLoaderDefault>
  13269. void destroy( ValidationCacheEXT validationCache, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  13270. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13271. template<typename Dispatch = DispatchLoaderDefault>
  13272. void destroy( ValidationCacheEXT validationCache, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13273. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13274. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13275. template<typename Dispatch = DispatchLoaderDefault>
  13276. Result waitIdle(Dispatch const &d = Dispatch() ) const;
  13277. #else
  13278. template<typename Dispatch = DispatchLoaderDefault>
  13279. ResultValueType<void>::type waitIdle(Dispatch const &d = Dispatch() ) const;
  13280. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13281. template<typename Dispatch = DispatchLoaderDefault>
  13282. Result displayPowerControlEXT( DisplayKHR display, const DisplayPowerInfoEXT* pDisplayPowerInfo, Dispatch const &d = Dispatch() ) const;
  13283. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13284. template<typename Dispatch = DispatchLoaderDefault>
  13285. ResultValueType<void>::type displayPowerControlEXT( DisplayKHR display, const DisplayPowerInfoEXT & displayPowerInfo, Dispatch const &d = Dispatch() ) const;
  13286. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13287. template<typename Dispatch = DispatchLoaderDefault>
  13288. Result flushMappedMemoryRanges( uint32_t memoryRangeCount, const MappedMemoryRange* pMemoryRanges, Dispatch const &d = Dispatch() ) const;
  13289. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13290. template<typename Dispatch = DispatchLoaderDefault>
  13291. ResultValueType<void>::type flushMappedMemoryRanges( ArrayProxy<const MappedMemoryRange> memoryRanges, Dispatch const &d = Dispatch() ) const;
  13292. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13293. template<typename Dispatch = DispatchLoaderDefault>
  13294. void freeCommandBuffers( CommandPool commandPool, uint32_t commandBufferCount, const CommandBuffer* pCommandBuffers, Dispatch const &d = Dispatch() ) const;
  13295. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13296. template<typename Dispatch = DispatchLoaderDefault>
  13297. void freeCommandBuffers( CommandPool commandPool, ArrayProxy<const CommandBuffer> commandBuffers, Dispatch const &d = Dispatch() ) const;
  13298. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13299. template<typename Dispatch = DispatchLoaderDefault>
  13300. void free( CommandPool commandPool, uint32_t commandBufferCount, const CommandBuffer* pCommandBuffers, Dispatch const &d = Dispatch() ) const;
  13301. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13302. template<typename Dispatch = DispatchLoaderDefault>
  13303. void free( CommandPool commandPool, ArrayProxy<const CommandBuffer> commandBuffers, Dispatch const &d = Dispatch() ) const;
  13304. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13305. template<typename Dispatch = DispatchLoaderDefault>
  13306. Result freeDescriptorSets( DescriptorPool descriptorPool, uint32_t descriptorSetCount, const DescriptorSet* pDescriptorSets, Dispatch const &d = Dispatch() ) const;
  13307. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13308. template<typename Dispatch = DispatchLoaderDefault>
  13309. ResultValueType<void>::type freeDescriptorSets( DescriptorPool descriptorPool, ArrayProxy<const DescriptorSet> descriptorSets, Dispatch const &d = Dispatch() ) const;
  13310. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13311. template<typename Dispatch = DispatchLoaderDefault>
  13312. Result free( DescriptorPool descriptorPool, uint32_t descriptorSetCount, const DescriptorSet* pDescriptorSets, Dispatch const &d = Dispatch() ) const;
  13313. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13314. template<typename Dispatch = DispatchLoaderDefault>
  13315. ResultValueType<void>::type free( DescriptorPool descriptorPool, ArrayProxy<const DescriptorSet> descriptorSets, Dispatch const &d = Dispatch() ) const;
  13316. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13317. template<typename Dispatch = DispatchLoaderDefault>
  13318. void freeMemory( DeviceMemory memory, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  13319. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13320. template<typename Dispatch = DispatchLoaderDefault>
  13321. void freeMemory( DeviceMemory memory, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13322. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13323. template<typename Dispatch = DispatchLoaderDefault>
  13324. void free( DeviceMemory memory, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  13325. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13326. template<typename Dispatch = DispatchLoaderDefault>
  13327. void free( DeviceMemory memory, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13328. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13329. template<typename Dispatch = DispatchLoaderDefault>
  13330. Result getAccelerationStructureHandleNV( AccelerationStructureNV accelerationStructure, size_t dataSize, void* pData, Dispatch const &d = Dispatch() ) const;
  13331. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13332. template<typename T, typename Dispatch = DispatchLoaderDefault>
  13333. ResultValueType<void>::type getAccelerationStructureHandleNV( AccelerationStructureNV accelerationStructure, ArrayProxy<T> data, Dispatch const &d = Dispatch() ) const;
  13334. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13335. template<typename Dispatch = DispatchLoaderDefault>
  13336. void getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV* pInfo, MemoryRequirements2KHR* pMemoryRequirements, Dispatch const &d = Dispatch() ) const;
  13337. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13338. template<typename Dispatch = DispatchLoaderDefault>
  13339. MemoryRequirements2KHR getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info, Dispatch const &d = Dispatch() ) const;
  13340. template<typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderDefault>
  13341. StructureChain<X, Y, Z...> getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info, Dispatch const &d = Dispatch() ) const;
  13342. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13343. #ifdef VK_USE_PLATFORM_ANDROID_KHR
  13344. template<typename Dispatch = DispatchLoaderDefault>
  13345. Result getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer* buffer, AndroidHardwareBufferPropertiesANDROID* pProperties, Dispatch const &d = Dispatch() ) const;
  13346. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13347. template<typename Dispatch = DispatchLoaderDefault>
  13348. ResultValueType<AndroidHardwareBufferPropertiesANDROID>::type getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, Dispatch const &d = Dispatch() ) const;
  13349. template<typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderDefault>
  13350. typename ResultValueType<StructureChain<X, Y, Z...>>::type getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, Dispatch const &d = Dispatch() ) const;
  13351. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13352. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  13353. template<typename Dispatch = DispatchLoaderDefault>
  13354. DeviceAddress getBufferAddressEXT( const BufferDeviceAddressInfoEXT* pInfo, Dispatch const &d = Dispatch() ) const;
  13355. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13356. template<typename Dispatch = DispatchLoaderDefault>
  13357. DeviceAddress getBufferAddressEXT( const BufferDeviceAddressInfoEXT & info, Dispatch const &d = Dispatch() ) const;
  13358. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13359. template<typename Dispatch = DispatchLoaderDefault>
  13360. void getBufferMemoryRequirements( Buffer buffer, MemoryRequirements* pMemoryRequirements, Dispatch const &d = Dispatch() ) const;
  13361. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13362. template<typename Dispatch = DispatchLoaderDefault>
  13363. MemoryRequirements getBufferMemoryRequirements( Buffer buffer, Dispatch const &d = Dispatch() ) const;
  13364. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13365. template<typename Dispatch = DispatchLoaderDefault>
  13366. void getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2* pInfo, MemoryRequirements2* pMemoryRequirements, Dispatch const &d = Dispatch() ) const;
  13367. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13368. template<typename Dispatch = DispatchLoaderDefault>
  13369. MemoryRequirements2 getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d = Dispatch() ) const;
  13370. template<typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderDefault>
  13371. StructureChain<X, Y, Z...> getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d = Dispatch() ) const;
  13372. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13373. template<typename Dispatch = DispatchLoaderDefault>
  13374. void getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2* pInfo, MemoryRequirements2* pMemoryRequirements, Dispatch const &d = Dispatch() ) const;
  13375. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13376. template<typename Dispatch = DispatchLoaderDefault>
  13377. MemoryRequirements2 getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d = Dispatch() ) const;
  13378. template<typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderDefault>
  13379. StructureChain<X, Y, Z...> getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d = Dispatch() ) const;
  13380. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13381. template<typename Dispatch = DispatchLoaderDefault>
  13382. Result getCalibratedTimestampsEXT( uint32_t timestampCount, const CalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation, Dispatch const &d = Dispatch() ) const;
  13383. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13384. template<typename Dispatch = DispatchLoaderDefault>
  13385. ResultValueType<uint64_t>::type getCalibratedTimestampsEXT( ArrayProxy<const CalibratedTimestampInfoEXT> timestampInfos, ArrayProxy<uint64_t> timestamps, Dispatch const &d = Dispatch() ) const;
  13386. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13387. template<typename Dispatch = DispatchLoaderDefault>
  13388. void getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo* pCreateInfo, DescriptorSetLayoutSupport* pSupport, Dispatch const &d = Dispatch() ) const;
  13389. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13390. template<typename Dispatch = DispatchLoaderDefault>
  13391. DescriptorSetLayoutSupport getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d = Dispatch() ) const;
  13392. template<typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderDefault>
  13393. StructureChain<X, Y, Z...> getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d = Dispatch() ) const;
  13394. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13395. template<typename Dispatch = DispatchLoaderDefault>
  13396. void getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo* pCreateInfo, DescriptorSetLayoutSupport* pSupport, Dispatch const &d = Dispatch() ) const;
  13397. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13398. template<typename Dispatch = DispatchLoaderDefault>
  13399. DescriptorSetLayoutSupport getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d = Dispatch() ) const;
  13400. template<typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderDefault>
  13401. StructureChain<X, Y, Z...> getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d = Dispatch() ) const;
  13402. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13403. template<typename Dispatch = DispatchLoaderDefault>
  13404. void getGroupPeerMemoryFeatures( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, PeerMemoryFeatureFlags* pPeerMemoryFeatures, Dispatch const &d = Dispatch() ) const;
  13405. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13406. template<typename Dispatch = DispatchLoaderDefault>
  13407. PeerMemoryFeatureFlags getGroupPeerMemoryFeatures( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, Dispatch const &d = Dispatch() ) const;
  13408. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13409. template<typename Dispatch = DispatchLoaderDefault>
  13410. void getGroupPeerMemoryFeaturesKHR( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, PeerMemoryFeatureFlags* pPeerMemoryFeatures, Dispatch const &d = Dispatch() ) const;
  13411. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13412. template<typename Dispatch = DispatchLoaderDefault>
  13413. PeerMemoryFeatureFlags getGroupPeerMemoryFeaturesKHR( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, Dispatch const &d = Dispatch() ) const;
  13414. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13415. template<typename Dispatch = DispatchLoaderDefault>
  13416. Result getGroupPresentCapabilitiesKHR( DeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities, Dispatch const &d = Dispatch() ) const;
  13417. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13418. template<typename Dispatch = DispatchLoaderDefault>
  13419. ResultValueType<DeviceGroupPresentCapabilitiesKHR>::type getGroupPresentCapabilitiesKHR(Dispatch const &d = Dispatch() ) const;
  13420. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13421. #ifdef VK_USE_PLATFORM_WIN32_KHR
  13422. template<typename Dispatch = DispatchLoaderDefault>
  13423. Result getGroupSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, DeviceGroupPresentModeFlagsKHR* pModes, Dispatch const &d = Dispatch() ) const;
  13424. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13425. template<typename Dispatch = DispatchLoaderDefault>
  13426. ResultValueType<DeviceGroupPresentModeFlagsKHR>::type getGroupSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d = Dispatch() ) const;
  13427. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13428. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  13429. template<typename Dispatch = DispatchLoaderDefault>
  13430. Result getGroupSurfacePresentModesKHR( SurfaceKHR surface, DeviceGroupPresentModeFlagsKHR* pModes, Dispatch const &d = Dispatch() ) const;
  13431. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13432. template<typename Dispatch = DispatchLoaderDefault>
  13433. ResultValueType<DeviceGroupPresentModeFlagsKHR>::type getGroupSurfacePresentModesKHR( SurfaceKHR surface, Dispatch const &d = Dispatch() ) const;
  13434. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13435. template<typename Dispatch = DispatchLoaderDefault>
  13436. void getMemoryCommitment( DeviceMemory memory, DeviceSize* pCommittedMemoryInBytes, Dispatch const &d = Dispatch() ) const;
  13437. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13438. template<typename Dispatch = DispatchLoaderDefault>
  13439. DeviceSize getMemoryCommitment( DeviceMemory memory, Dispatch const &d = Dispatch() ) const;
  13440. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13441. template<typename Dispatch = DispatchLoaderDefault>
  13442. PFN_vkVoidFunction getProcAddr( const char* pName, Dispatch const &d = Dispatch() ) const;
  13443. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13444. template<typename Dispatch = DispatchLoaderDefault>
  13445. PFN_vkVoidFunction getProcAddr( const std::string & name, Dispatch const &d = Dispatch() ) const;
  13446. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13447. template<typename Dispatch = DispatchLoaderDefault>
  13448. void getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex, Queue* pQueue, Dispatch const &d = Dispatch() ) const;
  13449. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13450. template<typename Dispatch = DispatchLoaderDefault>
  13451. Queue getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex, Dispatch const &d = Dispatch() ) const;
  13452. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13453. template<typename Dispatch = DispatchLoaderDefault>
  13454. void getQueue2( const DeviceQueueInfo2* pQueueInfo, Queue* pQueue, Dispatch const &d = Dispatch() ) const;
  13455. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13456. template<typename Dispatch = DispatchLoaderDefault>
  13457. Queue getQueue2( const DeviceQueueInfo2 & queueInfo, Dispatch const &d = Dispatch() ) const;
  13458. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13459. template<typename Dispatch = DispatchLoaderDefault>
  13460. Result getEventStatus( Event event, Dispatch const &d = Dispatch() ) const;
  13461. template<typename Dispatch = DispatchLoaderDefault>
  13462. Result getFenceFdKHR( const FenceGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const &d = Dispatch() ) const;
  13463. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13464. template<typename Dispatch = DispatchLoaderDefault>
  13465. ResultValueType<int>::type getFenceFdKHR( const FenceGetFdInfoKHR & getFdInfo, Dispatch const &d = Dispatch() ) const;
  13466. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13467. template<typename Dispatch = DispatchLoaderDefault>
  13468. Result getFenceStatus( Fence fence, Dispatch const &d = Dispatch() ) const;
  13469. #ifdef VK_USE_PLATFORM_WIN32_KHR
  13470. template<typename Dispatch = DispatchLoaderDefault>
  13471. Result getFenceWin32HandleKHR( const FenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const &d = Dispatch() ) const;
  13472. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13473. template<typename Dispatch = DispatchLoaderDefault>
  13474. ResultValueType<HANDLE>::type getFenceWin32HandleKHR( const FenceGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const &d = Dispatch() ) const;
  13475. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13476. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  13477. template<typename Dispatch = DispatchLoaderDefault>
  13478. Result getImageDrmFormatModifierPropertiesEXT( Image image, ImageDrmFormatModifierPropertiesEXT* pProperties, Dispatch const &d = Dispatch() ) const;
  13479. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13480. template<typename Dispatch = DispatchLoaderDefault>
  13481. ResultValueType<ImageDrmFormatModifierPropertiesEXT>::type getImageDrmFormatModifierPropertiesEXT( Image image, Dispatch const &d = Dispatch() ) const;
  13482. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13483. template<typename Dispatch = DispatchLoaderDefault>
  13484. void getImageMemoryRequirements( Image image, MemoryRequirements* pMemoryRequirements, Dispatch const &d = Dispatch() ) const;
  13485. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13486. template<typename Dispatch = DispatchLoaderDefault>
  13487. MemoryRequirements getImageMemoryRequirements( Image image, Dispatch const &d = Dispatch() ) const;
  13488. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13489. template<typename Dispatch = DispatchLoaderDefault>
  13490. void getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2* pInfo, MemoryRequirements2* pMemoryRequirements, Dispatch const &d = Dispatch() ) const;
  13491. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13492. template<typename Dispatch = DispatchLoaderDefault>
  13493. MemoryRequirements2 getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d = Dispatch() ) const;
  13494. template<typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderDefault>
  13495. StructureChain<X, Y, Z...> getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d = Dispatch() ) const;
  13496. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13497. template<typename Dispatch = DispatchLoaderDefault>
  13498. void getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2* pInfo, MemoryRequirements2* pMemoryRequirements, Dispatch const &d = Dispatch() ) const;
  13499. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13500. template<typename Dispatch = DispatchLoaderDefault>
  13501. MemoryRequirements2 getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d = Dispatch() ) const;
  13502. template<typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderDefault>
  13503. StructureChain<X, Y, Z...> getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d = Dispatch() ) const;
  13504. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13505. template<typename Dispatch = DispatchLoaderDefault>
  13506. void getImageSparseMemoryRequirements( Image image, uint32_t* pSparseMemoryRequirementCount, SparseImageMemoryRequirements* pSparseMemoryRequirements, Dispatch const &d = Dispatch() ) const;
  13507. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13508. template<typename Allocator = std::allocator<SparseImageMemoryRequirements>, typename Dispatch = DispatchLoaderDefault>
  13509. std::vector<SparseImageMemoryRequirements,Allocator> getImageSparseMemoryRequirements( Image image, Dispatch const &d = Dispatch() ) const;
  13510. template<typename Allocator = std::allocator<SparseImageMemoryRequirements>, typename Dispatch = DispatchLoaderDefault>
  13511. std::vector<SparseImageMemoryRequirements,Allocator> getImageSparseMemoryRequirements( Image image, Allocator const& vectorAllocator, Dispatch const &d ) const;
  13512. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13513. template<typename Dispatch = DispatchLoaderDefault>
  13514. void getImageSparseMemoryRequirements2( const ImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, SparseImageMemoryRequirements2* pSparseMemoryRequirements, Dispatch const &d = Dispatch() ) const;
  13515. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13516. template<typename Allocator = std::allocator<SparseImageMemoryRequirements2>, typename Dispatch = DispatchLoaderDefault>
  13517. std::vector<SparseImageMemoryRequirements2,Allocator> getImageSparseMemoryRequirements2( const ImageSparseMemoryRequirementsInfo2 & info, Dispatch const &d = Dispatch() ) const;
  13518. template<typename Allocator = std::allocator<SparseImageMemoryRequirements2>, typename Dispatch = DispatchLoaderDefault>
  13519. std::vector<SparseImageMemoryRequirements2,Allocator> getImageSparseMemoryRequirements2( const ImageSparseMemoryRequirementsInfo2 & info, Allocator const& vectorAllocator, Dispatch const &d ) const;
  13520. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13521. template<typename Dispatch = DispatchLoaderDefault>
  13522. void getImageSparseMemoryRequirements2KHR( const ImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, SparseImageMemoryRequirements2* pSparseMemoryRequirements, Dispatch const &d = Dispatch() ) const;
  13523. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13524. template<typename Allocator = std::allocator<SparseImageMemoryRequirements2>, typename Dispatch = DispatchLoaderDefault>
  13525. std::vector<SparseImageMemoryRequirements2,Allocator> getImageSparseMemoryRequirements2KHR( const ImageSparseMemoryRequirementsInfo2 & info, Dispatch const &d = Dispatch() ) const;
  13526. template<typename Allocator = std::allocator<SparseImageMemoryRequirements2>, typename Dispatch = DispatchLoaderDefault>
  13527. std::vector<SparseImageMemoryRequirements2,Allocator> getImageSparseMemoryRequirements2KHR( const ImageSparseMemoryRequirementsInfo2 & info, Allocator const& vectorAllocator, Dispatch const &d ) const;
  13528. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13529. template<typename Dispatch = DispatchLoaderDefault>
  13530. void getImageSubresourceLayout( Image image, const ImageSubresource* pSubresource, SubresourceLayout* pLayout, Dispatch const &d = Dispatch() ) const;
  13531. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13532. template<typename Dispatch = DispatchLoaderDefault>
  13533. SubresourceLayout getImageSubresourceLayout( Image image, const ImageSubresource & subresource, Dispatch const &d = Dispatch() ) const;
  13534. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13535. template<typename Dispatch = DispatchLoaderDefault>
  13536. uint32_t getImageViewHandleNVX( const ImageViewHandleInfoNVX* pInfo, Dispatch const &d = Dispatch() ) const;
  13537. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13538. template<typename Dispatch = DispatchLoaderDefault>
  13539. uint32_t getImageViewHandleNVX( const ImageViewHandleInfoNVX & info, Dispatch const &d = Dispatch() ) const;
  13540. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13541. #ifdef VK_USE_PLATFORM_ANDROID_KHR
  13542. template<typename Dispatch = DispatchLoaderDefault>
  13543. Result getMemoryAndroidHardwareBufferANDROID( const MemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct AHardwareBuffer** pBuffer, Dispatch const &d = Dispatch() ) const;
  13544. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13545. template<typename Dispatch = DispatchLoaderDefault>
  13546. ResultValueType<struct AHardwareBuffer*>::type getMemoryAndroidHardwareBufferANDROID( const MemoryGetAndroidHardwareBufferInfoANDROID & info, Dispatch const &d = Dispatch() ) const;
  13547. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13548. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  13549. template<typename Dispatch = DispatchLoaderDefault>
  13550. Result getMemoryFdKHR( const MemoryGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const &d = Dispatch() ) const;
  13551. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13552. template<typename Dispatch = DispatchLoaderDefault>
  13553. ResultValueType<int>::type getMemoryFdKHR( const MemoryGetFdInfoKHR & getFdInfo, Dispatch const &d = Dispatch() ) const;
  13554. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13555. template<typename Dispatch = DispatchLoaderDefault>
  13556. Result getMemoryFdPropertiesKHR( ExternalMemoryHandleTypeFlagBits handleType, int fd, MemoryFdPropertiesKHR* pMemoryFdProperties, Dispatch const &d = Dispatch() ) const;
  13557. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13558. template<typename Dispatch = DispatchLoaderDefault>
  13559. ResultValueType<MemoryFdPropertiesKHR>::type getMemoryFdPropertiesKHR( ExternalMemoryHandleTypeFlagBits handleType, int fd, Dispatch const &d = Dispatch() ) const;
  13560. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13561. template<typename Dispatch = DispatchLoaderDefault>
  13562. Result getMemoryHostPointerPropertiesEXT( ExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, MemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties, Dispatch const &d = Dispatch() ) const;
  13563. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13564. template<typename Dispatch = DispatchLoaderDefault>
  13565. ResultValueType<MemoryHostPointerPropertiesEXT>::type getMemoryHostPointerPropertiesEXT( ExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, Dispatch const &d = Dispatch() ) const;
  13566. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13567. #ifdef VK_USE_PLATFORM_WIN32_KHR
  13568. template<typename Dispatch = DispatchLoaderDefault>
  13569. Result getMemoryWin32HandleKHR( const MemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const &d = Dispatch() ) const;
  13570. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13571. template<typename Dispatch = DispatchLoaderDefault>
  13572. ResultValueType<HANDLE>::type getMemoryWin32HandleKHR( const MemoryGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const &d = Dispatch() ) const;
  13573. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13574. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  13575. #ifdef VK_USE_PLATFORM_WIN32_KHR
  13576. template<typename Dispatch = DispatchLoaderDefault>
  13577. Result getMemoryWin32HandleNV( DeviceMemory memory, ExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle, Dispatch const &d = Dispatch() ) const;
  13578. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13579. template<typename Dispatch = DispatchLoaderDefault>
  13580. ResultValueType<HANDLE>::type getMemoryWin32HandleNV( DeviceMemory memory, ExternalMemoryHandleTypeFlagsNV handleType, Dispatch const &d = Dispatch() ) const;
  13581. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13582. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  13583. #ifdef VK_USE_PLATFORM_WIN32_KHR
  13584. template<typename Dispatch = DispatchLoaderDefault>
  13585. Result getMemoryWin32HandlePropertiesKHR( ExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, MemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties, Dispatch const &d = Dispatch() ) const;
  13586. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13587. template<typename Dispatch = DispatchLoaderDefault>
  13588. ResultValueType<MemoryWin32HandlePropertiesKHR>::type getMemoryWin32HandlePropertiesKHR( ExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, Dispatch const &d = Dispatch() ) const;
  13589. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13590. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  13591. template<typename Dispatch = DispatchLoaderDefault>
  13592. Result getPastPresentationTimingGOOGLE( SwapchainKHR swapchain, uint32_t* pPresentationTimingCount, PastPresentationTimingGOOGLE* pPresentationTimings, Dispatch const &d = Dispatch() ) const;
  13593. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13594. template<typename Allocator = std::allocator<PastPresentationTimingGOOGLE>, typename Dispatch = DispatchLoaderDefault>
  13595. typename ResultValueType<std::vector<PastPresentationTimingGOOGLE,Allocator>>::type getPastPresentationTimingGOOGLE( SwapchainKHR swapchain, Dispatch const &d = Dispatch() ) const;
  13596. template<typename Allocator = std::allocator<PastPresentationTimingGOOGLE>, typename Dispatch = DispatchLoaderDefault>
  13597. typename ResultValueType<std::vector<PastPresentationTimingGOOGLE,Allocator>>::type getPastPresentationTimingGOOGLE( SwapchainKHR swapchain, Allocator const& vectorAllocator, Dispatch const &d ) const;
  13598. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13599. template<typename Dispatch = DispatchLoaderDefault>
  13600. Result getPerformanceParameterINTEL( PerformanceParameterTypeINTEL parameter, PerformanceValueINTEL* pValue, Dispatch const &d = Dispatch() ) const;
  13601. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13602. template<typename Dispatch = DispatchLoaderDefault>
  13603. ResultValueType<PerformanceValueINTEL>::type getPerformanceParameterINTEL( PerformanceParameterTypeINTEL parameter, Dispatch const &d = Dispatch() ) const;
  13604. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13605. template<typename Dispatch = DispatchLoaderDefault>
  13606. Result getPipelineCacheData( PipelineCache pipelineCache, size_t* pDataSize, void* pData, Dispatch const &d = Dispatch() ) const;
  13607. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13608. template<typename Allocator = std::allocator<uint8_t>, typename Dispatch = DispatchLoaderDefault>
  13609. typename ResultValueType<std::vector<uint8_t,Allocator>>::type getPipelineCacheData( PipelineCache pipelineCache, Dispatch const &d = Dispatch() ) const;
  13610. template<typename Allocator = std::allocator<uint8_t>, typename Dispatch = DispatchLoaderDefault>
  13611. typename ResultValueType<std::vector<uint8_t,Allocator>>::type getPipelineCacheData( PipelineCache pipelineCache, Allocator const& vectorAllocator, Dispatch const &d ) const;
  13612. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13613. template<typename Dispatch = DispatchLoaderDefault>
  13614. Result getQueryPoolResults( QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, DeviceSize stride, QueryResultFlags flags, Dispatch const &d = Dispatch() ) const;
  13615. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13616. template<typename T, typename Dispatch = DispatchLoaderDefault>
  13617. Result getQueryPoolResults( QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, ArrayProxy<T> data, DeviceSize stride, QueryResultFlags flags, Dispatch const &d = Dispatch() ) const;
  13618. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13619. template<typename Dispatch = DispatchLoaderDefault>
  13620. Result getRayTracingShaderGroupHandlesNV( Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData, Dispatch const &d = Dispatch() ) const;
  13621. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13622. template<typename T, typename Dispatch = DispatchLoaderDefault>
  13623. ResultValueType<void>::type getRayTracingShaderGroupHandlesNV( Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, ArrayProxy<T> data, Dispatch const &d = Dispatch() ) const;
  13624. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13625. template<typename Dispatch = DispatchLoaderDefault>
  13626. Result getRefreshCycleDurationGOOGLE( SwapchainKHR swapchain, RefreshCycleDurationGOOGLE* pDisplayTimingProperties, Dispatch const &d = Dispatch() ) const;
  13627. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13628. template<typename Dispatch = DispatchLoaderDefault>
  13629. ResultValueType<RefreshCycleDurationGOOGLE>::type getRefreshCycleDurationGOOGLE( SwapchainKHR swapchain, Dispatch const &d = Dispatch() ) const;
  13630. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13631. template<typename Dispatch = DispatchLoaderDefault>
  13632. void getRenderAreaGranularity( RenderPass renderPass, Extent2D* pGranularity, Dispatch const &d = Dispatch() ) const;
  13633. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13634. template<typename Dispatch = DispatchLoaderDefault>
  13635. Extent2D getRenderAreaGranularity( RenderPass renderPass, Dispatch const &d = Dispatch() ) const;
  13636. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13637. template<typename Dispatch = DispatchLoaderDefault>
  13638. Result getSemaphoreFdKHR( const SemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const &d = Dispatch() ) const;
  13639. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13640. template<typename Dispatch = DispatchLoaderDefault>
  13641. ResultValueType<int>::type getSemaphoreFdKHR( const SemaphoreGetFdInfoKHR & getFdInfo, Dispatch const &d = Dispatch() ) const;
  13642. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13643. #ifdef VK_USE_PLATFORM_WIN32_KHR
  13644. template<typename Dispatch = DispatchLoaderDefault>
  13645. Result getSemaphoreWin32HandleKHR( const SemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const &d = Dispatch() ) const;
  13646. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13647. template<typename Dispatch = DispatchLoaderDefault>
  13648. ResultValueType<HANDLE>::type getSemaphoreWin32HandleKHR( const SemaphoreGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const &d = Dispatch() ) const;
  13649. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13650. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  13651. template<typename Dispatch = DispatchLoaderDefault>
  13652. Result getShaderInfoAMD( Pipeline pipeline, ShaderStageFlagBits shaderStage, ShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo, Dispatch const &d = Dispatch() ) const;
  13653. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13654. template<typename Allocator = std::allocator<uint8_t>, typename Dispatch = DispatchLoaderDefault>
  13655. typename ResultValueType<std::vector<uint8_t,Allocator>>::type getShaderInfoAMD( Pipeline pipeline, ShaderStageFlagBits shaderStage, ShaderInfoTypeAMD infoType, Dispatch const &d = Dispatch() ) const;
  13656. template<typename Allocator = std::allocator<uint8_t>, typename Dispatch = DispatchLoaderDefault>
  13657. typename ResultValueType<std::vector<uint8_t,Allocator>>::type getShaderInfoAMD( Pipeline pipeline, ShaderStageFlagBits shaderStage, ShaderInfoTypeAMD infoType, Allocator const& vectorAllocator, Dispatch const &d ) const;
  13658. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13659. template<typename Dispatch = DispatchLoaderDefault>
  13660. Result getSwapchainCounterEXT( SwapchainKHR swapchain, SurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue, Dispatch const &d = Dispatch() ) const;
  13661. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13662. template<typename Dispatch = DispatchLoaderDefault>
  13663. ResultValueType<uint64_t>::type getSwapchainCounterEXT( SwapchainKHR swapchain, SurfaceCounterFlagBitsEXT counter, Dispatch const &d = Dispatch() ) const;
  13664. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13665. template<typename Dispatch = DispatchLoaderDefault>
  13666. Result getSwapchainImagesKHR( SwapchainKHR swapchain, uint32_t* pSwapchainImageCount, Image* pSwapchainImages, Dispatch const &d = Dispatch() ) const;
  13667. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13668. template<typename Allocator = std::allocator<Image>, typename Dispatch = DispatchLoaderDefault>
  13669. typename ResultValueType<std::vector<Image,Allocator>>::type getSwapchainImagesKHR( SwapchainKHR swapchain, Dispatch const &d = Dispatch() ) const;
  13670. template<typename Allocator = std::allocator<Image>, typename Dispatch = DispatchLoaderDefault>
  13671. typename ResultValueType<std::vector<Image,Allocator>>::type getSwapchainImagesKHR( SwapchainKHR swapchain, Allocator const& vectorAllocator, Dispatch const &d ) const;
  13672. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13673. template<typename Dispatch = DispatchLoaderDefault>
  13674. Result getSwapchainStatusKHR( SwapchainKHR swapchain, Dispatch const &d = Dispatch() ) const;
  13675. template<typename Dispatch = DispatchLoaderDefault>
  13676. Result getValidationCacheDataEXT( ValidationCacheEXT validationCache, size_t* pDataSize, void* pData, Dispatch const &d = Dispatch() ) const;
  13677. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13678. template<typename Allocator = std::allocator<uint8_t>, typename Dispatch = DispatchLoaderDefault>
  13679. typename ResultValueType<std::vector<uint8_t,Allocator>>::type getValidationCacheDataEXT( ValidationCacheEXT validationCache, Dispatch const &d = Dispatch() ) const;
  13680. template<typename Allocator = std::allocator<uint8_t>, typename Dispatch = DispatchLoaderDefault>
  13681. typename ResultValueType<std::vector<uint8_t,Allocator>>::type getValidationCacheDataEXT( ValidationCacheEXT validationCache, Allocator const& vectorAllocator, Dispatch const &d ) const;
  13682. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13683. template<typename Dispatch = DispatchLoaderDefault>
  13684. Result importFenceFdKHR( const ImportFenceFdInfoKHR* pImportFenceFdInfo, Dispatch const &d = Dispatch() ) const;
  13685. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13686. template<typename Dispatch = DispatchLoaderDefault>
  13687. ResultValueType<void>::type importFenceFdKHR( const ImportFenceFdInfoKHR & importFenceFdInfo, Dispatch const &d = Dispatch() ) const;
  13688. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13689. #ifdef VK_USE_PLATFORM_WIN32_KHR
  13690. template<typename Dispatch = DispatchLoaderDefault>
  13691. Result importFenceWin32HandleKHR( const ImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo, Dispatch const &d = Dispatch() ) const;
  13692. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13693. template<typename Dispatch = DispatchLoaderDefault>
  13694. ResultValueType<void>::type importFenceWin32HandleKHR( const ImportFenceWin32HandleInfoKHR & importFenceWin32HandleInfo, Dispatch const &d = Dispatch() ) const;
  13695. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13696. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  13697. template<typename Dispatch = DispatchLoaderDefault>
  13698. Result importSemaphoreFdKHR( const ImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo, Dispatch const &d = Dispatch() ) const;
  13699. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13700. template<typename Dispatch = DispatchLoaderDefault>
  13701. ResultValueType<void>::type importSemaphoreFdKHR( const ImportSemaphoreFdInfoKHR & importSemaphoreFdInfo, Dispatch const &d = Dispatch() ) const;
  13702. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13703. #ifdef VK_USE_PLATFORM_WIN32_KHR
  13704. template<typename Dispatch = DispatchLoaderDefault>
  13705. Result importSemaphoreWin32HandleKHR( const ImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo, Dispatch const &d = Dispatch() ) const;
  13706. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13707. template<typename Dispatch = DispatchLoaderDefault>
  13708. ResultValueType<void>::type importSemaphoreWin32HandleKHR( const ImportSemaphoreWin32HandleInfoKHR & importSemaphoreWin32HandleInfo, Dispatch const &d = Dispatch() ) const;
  13709. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13710. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  13711. template<typename Dispatch = DispatchLoaderDefault>
  13712. Result initializePerformanceApiINTEL( const InitializePerformanceApiInfoINTEL* pInitializeInfo, Dispatch const &d = Dispatch() ) const;
  13713. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13714. template<typename Dispatch = DispatchLoaderDefault>
  13715. ResultValueType<void>::type initializePerformanceApiINTEL( const InitializePerformanceApiInfoINTEL & initializeInfo, Dispatch const &d = Dispatch() ) const;
  13716. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13717. template<typename Dispatch = DispatchLoaderDefault>
  13718. Result invalidateMappedMemoryRanges( uint32_t memoryRangeCount, const MappedMemoryRange* pMemoryRanges, Dispatch const &d = Dispatch() ) const;
  13719. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13720. template<typename Dispatch = DispatchLoaderDefault>
  13721. ResultValueType<void>::type invalidateMappedMemoryRanges( ArrayProxy<const MappedMemoryRange> memoryRanges, Dispatch const &d = Dispatch() ) const;
  13722. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13723. template<typename Dispatch = DispatchLoaderDefault>
  13724. Result mapMemory( DeviceMemory memory, DeviceSize offset, DeviceSize size, MemoryMapFlags flags, void** ppData, Dispatch const &d = Dispatch() ) const;
  13725. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13726. template<typename Dispatch = DispatchLoaderDefault>
  13727. ResultValueType<void*>::type mapMemory( DeviceMemory memory, DeviceSize offset, DeviceSize size, MemoryMapFlags flags = MemoryMapFlags(), Dispatch const &d = Dispatch() ) const;
  13728. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13729. template<typename Dispatch = DispatchLoaderDefault>
  13730. Result mergePipelineCaches( PipelineCache dstCache, uint32_t srcCacheCount, const PipelineCache* pSrcCaches, Dispatch const &d = Dispatch() ) const;
  13731. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13732. template<typename Dispatch = DispatchLoaderDefault>
  13733. ResultValueType<void>::type mergePipelineCaches( PipelineCache dstCache, ArrayProxy<const PipelineCache> srcCaches, Dispatch const &d = Dispatch() ) const;
  13734. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13735. template<typename Dispatch = DispatchLoaderDefault>
  13736. Result mergeValidationCachesEXT( ValidationCacheEXT dstCache, uint32_t srcCacheCount, const ValidationCacheEXT* pSrcCaches, Dispatch const &d = Dispatch() ) const;
  13737. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13738. template<typename Dispatch = DispatchLoaderDefault>
  13739. ResultValueType<void>::type mergeValidationCachesEXT( ValidationCacheEXT dstCache, ArrayProxy<const ValidationCacheEXT> srcCaches, Dispatch const &d = Dispatch() ) const;
  13740. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13741. template<typename Dispatch = DispatchLoaderDefault>
  13742. Result registerEventEXT( const DeviceEventInfoEXT* pDeviceEventInfo, const AllocationCallbacks* pAllocator, Fence* pFence, Dispatch const &d = Dispatch() ) const;
  13743. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13744. template<typename Dispatch = DispatchLoaderDefault>
  13745. ResultValueType<Fence>::type registerEventEXT( const DeviceEventInfoEXT & deviceEventInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13746. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13747. template<typename Dispatch = DispatchLoaderDefault>
  13748. Result registerDisplayEventEXT( DisplayKHR display, const DisplayEventInfoEXT* pDisplayEventInfo, const AllocationCallbacks* pAllocator, Fence* pFence, Dispatch const &d = Dispatch() ) const;
  13749. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13750. template<typename Dispatch = DispatchLoaderDefault>
  13751. ResultValueType<Fence>::type registerDisplayEventEXT( DisplayKHR display, const DisplayEventInfoEXT & displayEventInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13752. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13753. template<typename Dispatch = DispatchLoaderDefault>
  13754. Result registerObjectsNVX( ObjectTableNVX objectTable, uint32_t objectCount, const ObjectTableEntryNVX* const* ppObjectTableEntries, const uint32_t* pObjectIndices, Dispatch const &d = Dispatch() ) const;
  13755. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13756. template<typename Dispatch = DispatchLoaderDefault>
  13757. ResultValueType<void>::type registerObjectsNVX( ObjectTableNVX objectTable, ArrayProxy<const ObjectTableEntryNVX* const> pObjectTableEntries, ArrayProxy<const uint32_t> objectIndices, Dispatch const &d = Dispatch() ) const;
  13758. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13759. #ifdef VK_USE_PLATFORM_WIN32_KHR
  13760. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13761. template<typename Dispatch = DispatchLoaderDefault>
  13762. Result releaseFullScreenExclusiveModeEXT( SwapchainKHR swapchain, Dispatch const &d = Dispatch() ) const;
  13763. #else
  13764. template<typename Dispatch = DispatchLoaderDefault>
  13765. ResultValueType<void>::type releaseFullScreenExclusiveModeEXT( SwapchainKHR swapchain, Dispatch const &d = Dispatch() ) const;
  13766. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13767. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  13768. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13769. template<typename Dispatch = DispatchLoaderDefault>
  13770. Result releasePerformanceConfigurationINTEL( PerformanceConfigurationINTEL configuration, Dispatch const &d = Dispatch() ) const;
  13771. #else
  13772. template<typename Dispatch = DispatchLoaderDefault>
  13773. ResultValueType<void>::type releasePerformanceConfigurationINTEL( PerformanceConfigurationINTEL configuration, Dispatch const &d = Dispatch() ) const;
  13774. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13775. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13776. template<typename Dispatch = DispatchLoaderDefault>
  13777. Result resetCommandPool( CommandPool commandPool, CommandPoolResetFlags flags, Dispatch const &d = Dispatch() ) const;
  13778. #else
  13779. template<typename Dispatch = DispatchLoaderDefault>
  13780. ResultValueType<void>::type resetCommandPool( CommandPool commandPool, CommandPoolResetFlags flags, Dispatch const &d = Dispatch() ) const;
  13781. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13782. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13783. template<typename Dispatch = DispatchLoaderDefault>
  13784. Result resetDescriptorPool( DescriptorPool descriptorPool, DescriptorPoolResetFlags flags = DescriptorPoolResetFlags(), Dispatch const &d = Dispatch() ) const;
  13785. #else
  13786. template<typename Dispatch = DispatchLoaderDefault>
  13787. ResultValueType<void>::type resetDescriptorPool( DescriptorPool descriptorPool, DescriptorPoolResetFlags flags = DescriptorPoolResetFlags(), Dispatch const &d = Dispatch() ) const;
  13788. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13789. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13790. template<typename Dispatch = DispatchLoaderDefault>
  13791. Result resetEvent( Event event, Dispatch const &d = Dispatch() ) const;
  13792. #else
  13793. template<typename Dispatch = DispatchLoaderDefault>
  13794. ResultValueType<void>::type resetEvent( Event event, Dispatch const &d = Dispatch() ) const;
  13795. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13796. template<typename Dispatch = DispatchLoaderDefault>
  13797. Result resetFences( uint32_t fenceCount, const Fence* pFences, Dispatch const &d = Dispatch() ) const;
  13798. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13799. template<typename Dispatch = DispatchLoaderDefault>
  13800. ResultValueType<void>::type resetFences( ArrayProxy<const Fence> fences, Dispatch const &d = Dispatch() ) const;
  13801. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13802. template<typename Dispatch = DispatchLoaderDefault>
  13803. void resetQueryPoolEXT( QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const &d = Dispatch() ) const;
  13804. template<typename Dispatch = DispatchLoaderDefault>
  13805. Result setDebugUtilsObjectNameEXT( const DebugUtilsObjectNameInfoEXT* pNameInfo, Dispatch const &d = Dispatch() ) const;
  13806. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13807. template<typename Dispatch = DispatchLoaderDefault>
  13808. ResultValueType<void>::type setDebugUtilsObjectNameEXT( const DebugUtilsObjectNameInfoEXT & nameInfo, Dispatch const &d = Dispatch() ) const;
  13809. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13810. template<typename Dispatch = DispatchLoaderDefault>
  13811. Result setDebugUtilsObjectTagEXT( const DebugUtilsObjectTagInfoEXT* pTagInfo, Dispatch const &d = Dispatch() ) const;
  13812. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13813. template<typename Dispatch = DispatchLoaderDefault>
  13814. ResultValueType<void>::type setDebugUtilsObjectTagEXT( const DebugUtilsObjectTagInfoEXT & tagInfo, Dispatch const &d = Dispatch() ) const;
  13815. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13816. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13817. template<typename Dispatch = DispatchLoaderDefault>
  13818. Result setEvent( Event event, Dispatch const &d = Dispatch() ) const;
  13819. #else
  13820. template<typename Dispatch = DispatchLoaderDefault>
  13821. ResultValueType<void>::type setEvent( Event event, Dispatch const &d = Dispatch() ) const;
  13822. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13823. template<typename Dispatch = DispatchLoaderDefault>
  13824. void setHdrMetadataEXT( uint32_t swapchainCount, const SwapchainKHR* pSwapchains, const HdrMetadataEXT* pMetadata, Dispatch const &d = Dispatch() ) const;
  13825. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13826. template<typename Dispatch = DispatchLoaderDefault>
  13827. void setHdrMetadataEXT( ArrayProxy<const SwapchainKHR> swapchains, ArrayProxy<const HdrMetadataEXT> metadata, Dispatch const &d = Dispatch() ) const;
  13828. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13829. template<typename Dispatch = DispatchLoaderDefault>
  13830. void setLocalDimmingAMD( SwapchainKHR swapChain, Bool32 localDimmingEnable, Dispatch const &d = Dispatch() ) const;
  13831. template<typename Dispatch = DispatchLoaderDefault>
  13832. void trimCommandPool( CommandPool commandPool, CommandPoolTrimFlags flags = CommandPoolTrimFlags(), Dispatch const &d = Dispatch() ) const;
  13833. template<typename Dispatch = DispatchLoaderDefault>
  13834. void trimCommandPoolKHR( CommandPool commandPool, CommandPoolTrimFlags flags = CommandPoolTrimFlags(), Dispatch const &d = Dispatch() ) const;
  13835. template<typename Dispatch = DispatchLoaderDefault>
  13836. void uninitializePerformanceApiINTEL(Dispatch const &d = Dispatch() ) const;
  13837. template<typename Dispatch = DispatchLoaderDefault>
  13838. void unmapMemory( DeviceMemory memory, Dispatch const &d = Dispatch() ) const;
  13839. template<typename Dispatch = DispatchLoaderDefault>
  13840. Result unregisterObjectsNVX( ObjectTableNVX objectTable, uint32_t objectCount, const ObjectEntryTypeNVX* pObjectEntryTypes, const uint32_t* pObjectIndices, Dispatch const &d = Dispatch() ) const;
  13841. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13842. template<typename Dispatch = DispatchLoaderDefault>
  13843. ResultValueType<void>::type unregisterObjectsNVX( ObjectTableNVX objectTable, ArrayProxy<const ObjectEntryTypeNVX> objectEntryTypes, ArrayProxy<const uint32_t> objectIndices, Dispatch const &d = Dispatch() ) const;
  13844. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13845. template<typename Dispatch = DispatchLoaderDefault>
  13846. void updateDescriptorSetWithTemplate( DescriptorSet descriptorSet, DescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData, Dispatch const &d = Dispatch() ) const;
  13847. template<typename Dispatch = DispatchLoaderDefault>
  13848. void updateDescriptorSetWithTemplateKHR( DescriptorSet descriptorSet, DescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData, Dispatch const &d = Dispatch() ) const;
  13849. template<typename Dispatch = DispatchLoaderDefault>
  13850. void updateDescriptorSets( uint32_t descriptorWriteCount, const WriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const CopyDescriptorSet* pDescriptorCopies, Dispatch const &d = Dispatch() ) const;
  13851. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13852. template<typename Dispatch = DispatchLoaderDefault>
  13853. void updateDescriptorSets( ArrayProxy<const WriteDescriptorSet> descriptorWrites, ArrayProxy<const CopyDescriptorSet> descriptorCopies, Dispatch const &d = Dispatch() ) const;
  13854. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13855. template<typename Dispatch = DispatchLoaderDefault>
  13856. Result waitForFences( uint32_t fenceCount, const Fence* pFences, Bool32 waitAll, uint64_t timeout, Dispatch const &d = Dispatch() ) const;
  13857. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13858. template<typename Dispatch = DispatchLoaderDefault>
  13859. Result waitForFences( ArrayProxy<const Fence> fences, Bool32 waitAll, uint64_t timeout, Dispatch const &d = Dispatch() ) const;
  13860. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13861. VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDevice() const
  13862. {
  13863. return m_device;
  13864. }
  13865. explicit operator bool() const
  13866. {
  13867. return m_device != VK_NULL_HANDLE;
  13868. }
  13869. bool operator!() const
  13870. {
  13871. return m_device == VK_NULL_HANDLE;
  13872. }
  13873. private:
  13874. VkDevice m_device;
  13875. };
  13876. static_assert( sizeof( Device ) == sizeof( VkDevice ), "handle and wrapper have different size!" );
  13877. class DisplayModeKHR
  13878. {
  13879. public:
  13880. using CType = VkDisplayModeKHR;
  13881. public:
  13882. VULKAN_HPP_CONSTEXPR DisplayModeKHR()
  13883. : m_displayModeKHR(VK_NULL_HANDLE)
  13884. {}
  13885. VULKAN_HPP_CONSTEXPR DisplayModeKHR( std::nullptr_t )
  13886. : m_displayModeKHR(VK_NULL_HANDLE)
  13887. {}
  13888. VULKAN_HPP_TYPESAFE_EXPLICIT DisplayModeKHR( VkDisplayModeKHR displayModeKHR )
  13889. : m_displayModeKHR( displayModeKHR )
  13890. {}
  13891. #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
  13892. DisplayModeKHR & operator=(VkDisplayModeKHR displayModeKHR)
  13893. {
  13894. m_displayModeKHR = displayModeKHR;
  13895. return *this;
  13896. }
  13897. #endif
  13898. DisplayModeKHR & operator=( std::nullptr_t )
  13899. {
  13900. m_displayModeKHR = VK_NULL_HANDLE;
  13901. return *this;
  13902. }
  13903. bool operator==( DisplayModeKHR const & rhs ) const
  13904. {
  13905. return m_displayModeKHR == rhs.m_displayModeKHR;
  13906. }
  13907. bool operator!=(DisplayModeKHR const & rhs ) const
  13908. {
  13909. return m_displayModeKHR != rhs.m_displayModeKHR;
  13910. }
  13911. bool operator<(DisplayModeKHR const & rhs ) const
  13912. {
  13913. return m_displayModeKHR < rhs.m_displayModeKHR;
  13914. }
  13915. VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDisplayModeKHR() const
  13916. {
  13917. return m_displayModeKHR;
  13918. }
  13919. explicit operator bool() const
  13920. {
  13921. return m_displayModeKHR != VK_NULL_HANDLE;
  13922. }
  13923. bool operator!() const
  13924. {
  13925. return m_displayModeKHR == VK_NULL_HANDLE;
  13926. }
  13927. private:
  13928. VkDisplayModeKHR m_displayModeKHR;
  13929. };
  13930. static_assert( sizeof( DisplayModeKHR ) == sizeof( VkDisplayModeKHR ), "handle and wrapper have different size!" );
  13931. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  13932. template <typename Dispatch> class UniqueHandleTraits<Device, Dispatch> { public: using deleter = ObjectDestroy<NoParent, Dispatch>; };
  13933. using UniqueDevice = UniqueHandle<Device, DispatchLoaderDefault>;
  13934. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  13935. class PhysicalDevice
  13936. {
  13937. public:
  13938. using CType = VkPhysicalDevice;
  13939. public:
  13940. VULKAN_HPP_CONSTEXPR PhysicalDevice()
  13941. : m_physicalDevice(VK_NULL_HANDLE)
  13942. {}
  13943. VULKAN_HPP_CONSTEXPR PhysicalDevice( std::nullptr_t )
  13944. : m_physicalDevice(VK_NULL_HANDLE)
  13945. {}
  13946. VULKAN_HPP_TYPESAFE_EXPLICIT PhysicalDevice( VkPhysicalDevice physicalDevice )
  13947. : m_physicalDevice( physicalDevice )
  13948. {}
  13949. #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
  13950. PhysicalDevice & operator=(VkPhysicalDevice physicalDevice)
  13951. {
  13952. m_physicalDevice = physicalDevice;
  13953. return *this;
  13954. }
  13955. #endif
  13956. PhysicalDevice & operator=( std::nullptr_t )
  13957. {
  13958. m_physicalDevice = VK_NULL_HANDLE;
  13959. return *this;
  13960. }
  13961. bool operator==( PhysicalDevice const & rhs ) const
  13962. {
  13963. return m_physicalDevice == rhs.m_physicalDevice;
  13964. }
  13965. bool operator!=(PhysicalDevice const & rhs ) const
  13966. {
  13967. return m_physicalDevice != rhs.m_physicalDevice;
  13968. }
  13969. bool operator<(PhysicalDevice const & rhs ) const
  13970. {
  13971. return m_physicalDevice < rhs.m_physicalDevice;
  13972. }
  13973. #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
  13974. template<typename Dispatch = DispatchLoaderDefault>
  13975. Result acquireXlibDisplayEXT( Display* dpy, DisplayKHR display, Dispatch const &d = Dispatch() ) const;
  13976. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13977. template<typename Dispatch = DispatchLoaderDefault>
  13978. ResultValueType<Display>::type acquireXlibDisplayEXT( DisplayKHR display, Dispatch const &d = Dispatch() ) const;
  13979. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13980. #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
  13981. template<typename Dispatch = DispatchLoaderDefault>
  13982. Result createDevice( const DeviceCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, Device* pDevice, Dispatch const &d = Dispatch() ) const;
  13983. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13984. template<typename Dispatch = DispatchLoaderDefault>
  13985. ResultValueType<Device>::type createDevice( const DeviceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13986. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  13987. template<typename Dispatch = DispatchLoaderDefault>
  13988. typename ResultValueType<UniqueHandle<Device,Dispatch>>::type createDeviceUnique( const DeviceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13989. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  13990. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13991. template<typename Dispatch = DispatchLoaderDefault>
  13992. Result createDisplayModeKHR( DisplayKHR display, const DisplayModeCreateInfoKHR* pCreateInfo, const AllocationCallbacks* pAllocator, DisplayModeKHR* pMode, Dispatch const &d = Dispatch() ) const;
  13993. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  13994. template<typename Dispatch = DispatchLoaderDefault>
  13995. ResultValueType<DisplayModeKHR>::type createDisplayModeKHR( DisplayKHR display, const DisplayModeCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  13996. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  13997. template<typename Dispatch = DispatchLoaderDefault>
  13998. Result enumerateDeviceExtensionProperties( const char* pLayerName, uint32_t* pPropertyCount, ExtensionProperties* pProperties, Dispatch const &d = Dispatch() ) const;
  13999. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14000. template<typename Allocator = std::allocator<ExtensionProperties>, typename Dispatch = DispatchLoaderDefault>
  14001. typename ResultValueType<std::vector<ExtensionProperties,Allocator>>::type enumerateDeviceExtensionProperties( Optional<const std::string> layerName = nullptr, Dispatch const &d = Dispatch() ) const;
  14002. template<typename Allocator = std::allocator<ExtensionProperties>, typename Dispatch = DispatchLoaderDefault>
  14003. typename ResultValueType<std::vector<ExtensionProperties,Allocator>>::type enumerateDeviceExtensionProperties( Optional<const std::string> layerName, Allocator const& vectorAllocator, Dispatch const &d ) const;
  14004. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14005. template<typename Dispatch = DispatchLoaderDefault>
  14006. Result enumerateDeviceLayerProperties( uint32_t* pPropertyCount, LayerProperties* pProperties, Dispatch const &d = Dispatch() ) const;
  14007. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14008. template<typename Allocator = std::allocator<LayerProperties>, typename Dispatch = DispatchLoaderDefault>
  14009. typename ResultValueType<std::vector<LayerProperties,Allocator>>::type enumerateDeviceLayerProperties(Dispatch const &d = Dispatch() ) const;
  14010. template<typename Allocator = std::allocator<LayerProperties>, typename Dispatch = DispatchLoaderDefault>
  14011. typename ResultValueType<std::vector<LayerProperties,Allocator>>::type enumerateDeviceLayerProperties(Allocator const& vectorAllocator, Dispatch const &d ) const;
  14012. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14013. template<typename Dispatch = DispatchLoaderDefault>
  14014. Result getDisplayModeProperties2KHR( DisplayKHR display, uint32_t* pPropertyCount, DisplayModeProperties2KHR* pProperties, Dispatch const &d = Dispatch() ) const;
  14015. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14016. template<typename Allocator = std::allocator<DisplayModeProperties2KHR>, typename Dispatch = DispatchLoaderDefault>
  14017. typename ResultValueType<std::vector<DisplayModeProperties2KHR,Allocator>>::type getDisplayModeProperties2KHR( DisplayKHR display, Dispatch const &d = Dispatch() ) const;
  14018. template<typename Allocator = std::allocator<DisplayModeProperties2KHR>, typename Dispatch = DispatchLoaderDefault>
  14019. typename ResultValueType<std::vector<DisplayModeProperties2KHR,Allocator>>::type getDisplayModeProperties2KHR( DisplayKHR display, Allocator const& vectorAllocator, Dispatch const &d ) const;
  14020. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14021. template<typename Dispatch = DispatchLoaderDefault>
  14022. Result getDisplayModePropertiesKHR( DisplayKHR display, uint32_t* pPropertyCount, DisplayModePropertiesKHR* pProperties, Dispatch const &d = Dispatch() ) const;
  14023. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14024. template<typename Allocator = std::allocator<DisplayModePropertiesKHR>, typename Dispatch = DispatchLoaderDefault>
  14025. typename ResultValueType<std::vector<DisplayModePropertiesKHR,Allocator>>::type getDisplayModePropertiesKHR( DisplayKHR display, Dispatch const &d = Dispatch() ) const;
  14026. template<typename Allocator = std::allocator<DisplayModePropertiesKHR>, typename Dispatch = DispatchLoaderDefault>
  14027. typename ResultValueType<std::vector<DisplayModePropertiesKHR,Allocator>>::type getDisplayModePropertiesKHR( DisplayKHR display, Allocator const& vectorAllocator, Dispatch const &d ) const;
  14028. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14029. template<typename Dispatch = DispatchLoaderDefault>
  14030. Result getDisplayPlaneCapabilities2KHR( const DisplayPlaneInfo2KHR* pDisplayPlaneInfo, DisplayPlaneCapabilities2KHR* pCapabilities, Dispatch const &d = Dispatch() ) const;
  14031. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14032. template<typename Dispatch = DispatchLoaderDefault>
  14033. ResultValueType<DisplayPlaneCapabilities2KHR>::type getDisplayPlaneCapabilities2KHR( const DisplayPlaneInfo2KHR & displayPlaneInfo, Dispatch const &d = Dispatch() ) const;
  14034. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14035. template<typename Dispatch = DispatchLoaderDefault>
  14036. Result getDisplayPlaneCapabilitiesKHR( DisplayModeKHR mode, uint32_t planeIndex, DisplayPlaneCapabilitiesKHR* pCapabilities, Dispatch const &d = Dispatch() ) const;
  14037. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14038. template<typename Dispatch = DispatchLoaderDefault>
  14039. ResultValueType<DisplayPlaneCapabilitiesKHR>::type getDisplayPlaneCapabilitiesKHR( DisplayModeKHR mode, uint32_t planeIndex, Dispatch const &d = Dispatch() ) const;
  14040. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14041. template<typename Dispatch = DispatchLoaderDefault>
  14042. Result getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, uint32_t* pDisplayCount, DisplayKHR* pDisplays, Dispatch const &d = Dispatch() ) const;
  14043. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14044. template<typename Allocator = std::allocator<DisplayKHR>, typename Dispatch = DispatchLoaderDefault>
  14045. typename ResultValueType<std::vector<DisplayKHR,Allocator>>::type getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, Dispatch const &d = Dispatch() ) const;
  14046. template<typename Allocator = std::allocator<DisplayKHR>, typename Dispatch = DispatchLoaderDefault>
  14047. typename ResultValueType<std::vector<DisplayKHR,Allocator>>::type getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, Allocator const& vectorAllocator, Dispatch const &d ) const;
  14048. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14049. template<typename Dispatch = DispatchLoaderDefault>
  14050. Result getCalibrateableTimeDomainsEXT( uint32_t* pTimeDomainCount, TimeDomainEXT* pTimeDomains, Dispatch const &d = Dispatch() ) const;
  14051. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14052. template<typename Allocator = std::allocator<TimeDomainEXT>, typename Dispatch = DispatchLoaderDefault>
  14053. typename ResultValueType<std::vector<TimeDomainEXT,Allocator>>::type getCalibrateableTimeDomainsEXT(Dispatch const &d = Dispatch() ) const;
  14054. template<typename Allocator = std::allocator<TimeDomainEXT>, typename Dispatch = DispatchLoaderDefault>
  14055. typename ResultValueType<std::vector<TimeDomainEXT,Allocator>>::type getCalibrateableTimeDomainsEXT(Allocator const& vectorAllocator, Dispatch const &d ) const;
  14056. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14057. template<typename Dispatch = DispatchLoaderDefault>
  14058. Result getCooperativeMatrixPropertiesNV( uint32_t* pPropertyCount, CooperativeMatrixPropertiesNV* pProperties, Dispatch const &d = Dispatch() ) const;
  14059. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14060. template<typename Allocator = std::allocator<CooperativeMatrixPropertiesNV>, typename Dispatch = DispatchLoaderDefault>
  14061. typename ResultValueType<std::vector<CooperativeMatrixPropertiesNV,Allocator>>::type getCooperativeMatrixPropertiesNV(Dispatch const &d = Dispatch() ) const;
  14062. template<typename Allocator = std::allocator<CooperativeMatrixPropertiesNV>, typename Dispatch = DispatchLoaderDefault>
  14063. typename ResultValueType<std::vector<CooperativeMatrixPropertiesNV,Allocator>>::type getCooperativeMatrixPropertiesNV(Allocator const& vectorAllocator, Dispatch const &d ) const;
  14064. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14065. template<typename Dispatch = DispatchLoaderDefault>
  14066. Result getDisplayPlaneProperties2KHR( uint32_t* pPropertyCount, DisplayPlaneProperties2KHR* pProperties, Dispatch const &d = Dispatch() ) const;
  14067. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14068. template<typename Allocator = std::allocator<DisplayPlaneProperties2KHR>, typename Dispatch = DispatchLoaderDefault>
  14069. typename ResultValueType<std::vector<DisplayPlaneProperties2KHR,Allocator>>::type getDisplayPlaneProperties2KHR(Dispatch const &d = Dispatch() ) const;
  14070. template<typename Allocator = std::allocator<DisplayPlaneProperties2KHR>, typename Dispatch = DispatchLoaderDefault>
  14071. typename ResultValueType<std::vector<DisplayPlaneProperties2KHR,Allocator>>::type getDisplayPlaneProperties2KHR(Allocator const& vectorAllocator, Dispatch const &d ) const;
  14072. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14073. template<typename Dispatch = DispatchLoaderDefault>
  14074. Result getDisplayPlanePropertiesKHR( uint32_t* pPropertyCount, DisplayPlanePropertiesKHR* pProperties, Dispatch const &d = Dispatch() ) const;
  14075. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14076. template<typename Allocator = std::allocator<DisplayPlanePropertiesKHR>, typename Dispatch = DispatchLoaderDefault>
  14077. typename ResultValueType<std::vector<DisplayPlanePropertiesKHR,Allocator>>::type getDisplayPlanePropertiesKHR(Dispatch const &d = Dispatch() ) const;
  14078. template<typename Allocator = std::allocator<DisplayPlanePropertiesKHR>, typename Dispatch = DispatchLoaderDefault>
  14079. typename ResultValueType<std::vector<DisplayPlanePropertiesKHR,Allocator>>::type getDisplayPlanePropertiesKHR(Allocator const& vectorAllocator, Dispatch const &d ) const;
  14080. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14081. template<typename Dispatch = DispatchLoaderDefault>
  14082. Result getDisplayProperties2KHR( uint32_t* pPropertyCount, DisplayProperties2KHR* pProperties, Dispatch const &d = Dispatch() ) const;
  14083. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14084. template<typename Allocator = std::allocator<DisplayProperties2KHR>, typename Dispatch = DispatchLoaderDefault>
  14085. typename ResultValueType<std::vector<DisplayProperties2KHR,Allocator>>::type getDisplayProperties2KHR(Dispatch const &d = Dispatch() ) const;
  14086. template<typename Allocator = std::allocator<DisplayProperties2KHR>, typename Dispatch = DispatchLoaderDefault>
  14087. typename ResultValueType<std::vector<DisplayProperties2KHR,Allocator>>::type getDisplayProperties2KHR(Allocator const& vectorAllocator, Dispatch const &d ) const;
  14088. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14089. template<typename Dispatch = DispatchLoaderDefault>
  14090. Result getDisplayPropertiesKHR( uint32_t* pPropertyCount, DisplayPropertiesKHR* pProperties, Dispatch const &d = Dispatch() ) const;
  14091. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14092. template<typename Allocator = std::allocator<DisplayPropertiesKHR>, typename Dispatch = DispatchLoaderDefault>
  14093. typename ResultValueType<std::vector<DisplayPropertiesKHR,Allocator>>::type getDisplayPropertiesKHR(Dispatch const &d = Dispatch() ) const;
  14094. template<typename Allocator = std::allocator<DisplayPropertiesKHR>, typename Dispatch = DispatchLoaderDefault>
  14095. typename ResultValueType<std::vector<DisplayPropertiesKHR,Allocator>>::type getDisplayPropertiesKHR(Allocator const& vectorAllocator, Dispatch const &d ) const;
  14096. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14097. template<typename Dispatch = DispatchLoaderDefault>
  14098. void getExternalBufferProperties( const PhysicalDeviceExternalBufferInfo* pExternalBufferInfo, ExternalBufferProperties* pExternalBufferProperties, Dispatch const &d = Dispatch() ) const;
  14099. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14100. template<typename Dispatch = DispatchLoaderDefault>
  14101. ExternalBufferProperties getExternalBufferProperties( const PhysicalDeviceExternalBufferInfo & externalBufferInfo, Dispatch const &d = Dispatch() ) const;
  14102. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14103. template<typename Dispatch = DispatchLoaderDefault>
  14104. void getExternalBufferPropertiesKHR( const PhysicalDeviceExternalBufferInfo* pExternalBufferInfo, ExternalBufferProperties* pExternalBufferProperties, Dispatch const &d = Dispatch() ) const;
  14105. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14106. template<typename Dispatch = DispatchLoaderDefault>
  14107. ExternalBufferProperties getExternalBufferPropertiesKHR( const PhysicalDeviceExternalBufferInfo & externalBufferInfo, Dispatch const &d = Dispatch() ) const;
  14108. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14109. template<typename Dispatch = DispatchLoaderDefault>
  14110. void getExternalFenceProperties( const PhysicalDeviceExternalFenceInfo* pExternalFenceInfo, ExternalFenceProperties* pExternalFenceProperties, Dispatch const &d = Dispatch() ) const;
  14111. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14112. template<typename Dispatch = DispatchLoaderDefault>
  14113. ExternalFenceProperties getExternalFenceProperties( const PhysicalDeviceExternalFenceInfo & externalFenceInfo, Dispatch const &d = Dispatch() ) const;
  14114. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14115. template<typename Dispatch = DispatchLoaderDefault>
  14116. void getExternalFencePropertiesKHR( const PhysicalDeviceExternalFenceInfo* pExternalFenceInfo, ExternalFenceProperties* pExternalFenceProperties, Dispatch const &d = Dispatch() ) const;
  14117. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14118. template<typename Dispatch = DispatchLoaderDefault>
  14119. ExternalFenceProperties getExternalFencePropertiesKHR( const PhysicalDeviceExternalFenceInfo & externalFenceInfo, Dispatch const &d = Dispatch() ) const;
  14120. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14121. template<typename Dispatch = DispatchLoaderDefault>
  14122. Result getExternalImageFormatPropertiesNV( Format format, ImageType type, ImageTiling tiling, ImageUsageFlags usage, ImageCreateFlags flags, ExternalMemoryHandleTypeFlagsNV externalHandleType, ExternalImageFormatPropertiesNV* pExternalImageFormatProperties, Dispatch const &d = Dispatch() ) const;
  14123. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14124. template<typename Dispatch = DispatchLoaderDefault>
  14125. ResultValueType<ExternalImageFormatPropertiesNV>::type getExternalImageFormatPropertiesNV( Format format, ImageType type, ImageTiling tiling, ImageUsageFlags usage, ImageCreateFlags flags, ExternalMemoryHandleTypeFlagsNV externalHandleType, Dispatch const &d = Dispatch() ) const;
  14126. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14127. template<typename Dispatch = DispatchLoaderDefault>
  14128. void getExternalSemaphoreProperties( const PhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, ExternalSemaphoreProperties* pExternalSemaphoreProperties, Dispatch const &d = Dispatch() ) const;
  14129. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14130. template<typename Dispatch = DispatchLoaderDefault>
  14131. ExternalSemaphoreProperties getExternalSemaphoreProperties( const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, Dispatch const &d = Dispatch() ) const;
  14132. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14133. template<typename Dispatch = DispatchLoaderDefault>
  14134. void getExternalSemaphorePropertiesKHR( const PhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, ExternalSemaphoreProperties* pExternalSemaphoreProperties, Dispatch const &d = Dispatch() ) const;
  14135. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14136. template<typename Dispatch = DispatchLoaderDefault>
  14137. ExternalSemaphoreProperties getExternalSemaphorePropertiesKHR( const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, Dispatch const &d = Dispatch() ) const;
  14138. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14139. template<typename Dispatch = DispatchLoaderDefault>
  14140. void getFeatures( PhysicalDeviceFeatures* pFeatures, Dispatch const &d = Dispatch() ) const;
  14141. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14142. template<typename Dispatch = DispatchLoaderDefault>
  14143. PhysicalDeviceFeatures getFeatures(Dispatch const &d = Dispatch() ) const;
  14144. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14145. template<typename Dispatch = DispatchLoaderDefault>
  14146. void getFeatures2( PhysicalDeviceFeatures2* pFeatures, Dispatch const &d = Dispatch() ) const;
  14147. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14148. template<typename Dispatch = DispatchLoaderDefault>
  14149. PhysicalDeviceFeatures2 getFeatures2(Dispatch const &d = Dispatch() ) const;
  14150. template<typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderDefault>
  14151. StructureChain<X, Y, Z...> getFeatures2(Dispatch const &d = Dispatch() ) const;
  14152. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14153. template<typename Dispatch = DispatchLoaderDefault>
  14154. void getFeatures2KHR( PhysicalDeviceFeatures2* pFeatures, Dispatch const &d = Dispatch() ) const;
  14155. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14156. template<typename Dispatch = DispatchLoaderDefault>
  14157. PhysicalDeviceFeatures2 getFeatures2KHR(Dispatch const &d = Dispatch() ) const;
  14158. template<typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderDefault>
  14159. StructureChain<X, Y, Z...> getFeatures2KHR(Dispatch const &d = Dispatch() ) const;
  14160. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14161. template<typename Dispatch = DispatchLoaderDefault>
  14162. void getFormatProperties( Format format, FormatProperties* pFormatProperties, Dispatch const &d = Dispatch() ) const;
  14163. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14164. template<typename Dispatch = DispatchLoaderDefault>
  14165. FormatProperties getFormatProperties( Format format, Dispatch const &d = Dispatch() ) const;
  14166. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14167. template<typename Dispatch = DispatchLoaderDefault>
  14168. void getFormatProperties2( Format format, FormatProperties2* pFormatProperties, Dispatch const &d = Dispatch() ) const;
  14169. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14170. template<typename Dispatch = DispatchLoaderDefault>
  14171. FormatProperties2 getFormatProperties2( Format format, Dispatch const &d = Dispatch() ) const;
  14172. template<typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderDefault>
  14173. StructureChain<X, Y, Z...> getFormatProperties2( Format format, Dispatch const &d = Dispatch() ) const;
  14174. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14175. template<typename Dispatch = DispatchLoaderDefault>
  14176. void getFormatProperties2KHR( Format format, FormatProperties2* pFormatProperties, Dispatch const &d = Dispatch() ) const;
  14177. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14178. template<typename Dispatch = DispatchLoaderDefault>
  14179. FormatProperties2 getFormatProperties2KHR( Format format, Dispatch const &d = Dispatch() ) const;
  14180. template<typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderDefault>
  14181. StructureChain<X, Y, Z...> getFormatProperties2KHR( Format format, Dispatch const &d = Dispatch() ) const;
  14182. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14183. template<typename Dispatch = DispatchLoaderDefault>
  14184. void getGeneratedCommandsPropertiesNVX( DeviceGeneratedCommandsFeaturesNVX* pFeatures, DeviceGeneratedCommandsLimitsNVX* pLimits, Dispatch const &d = Dispatch() ) const;
  14185. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14186. template<typename Dispatch = DispatchLoaderDefault>
  14187. DeviceGeneratedCommandsLimitsNVX getGeneratedCommandsPropertiesNVX( DeviceGeneratedCommandsFeaturesNVX & features, Dispatch const &d = Dispatch() ) const;
  14188. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14189. template<typename Dispatch = DispatchLoaderDefault>
  14190. Result getImageFormatProperties( Format format, ImageType type, ImageTiling tiling, ImageUsageFlags usage, ImageCreateFlags flags, ImageFormatProperties* pImageFormatProperties, Dispatch const &d = Dispatch() ) const;
  14191. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14192. template<typename Dispatch = DispatchLoaderDefault>
  14193. ResultValueType<ImageFormatProperties>::type getImageFormatProperties( Format format, ImageType type, ImageTiling tiling, ImageUsageFlags usage, ImageCreateFlags flags, Dispatch const &d = Dispatch() ) const;
  14194. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14195. template<typename Dispatch = DispatchLoaderDefault>
  14196. Result getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2* pImageFormatInfo, ImageFormatProperties2* pImageFormatProperties, Dispatch const &d = Dispatch() ) const;
  14197. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14198. template<typename Dispatch = DispatchLoaderDefault>
  14199. ResultValueType<ImageFormatProperties2>::type getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const &d = Dispatch() ) const;
  14200. template<typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderDefault>
  14201. typename ResultValueType<StructureChain<X, Y, Z...>>::type getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const &d = Dispatch() ) const;
  14202. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14203. template<typename Dispatch = DispatchLoaderDefault>
  14204. Result getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2* pImageFormatInfo, ImageFormatProperties2* pImageFormatProperties, Dispatch const &d = Dispatch() ) const;
  14205. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14206. template<typename Dispatch = DispatchLoaderDefault>
  14207. ResultValueType<ImageFormatProperties2>::type getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const &d = Dispatch() ) const;
  14208. template<typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderDefault>
  14209. typename ResultValueType<StructureChain<X, Y, Z...>>::type getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const &d = Dispatch() ) const;
  14210. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14211. template<typename Dispatch = DispatchLoaderDefault>
  14212. void getMemoryProperties( PhysicalDeviceMemoryProperties* pMemoryProperties, Dispatch const &d = Dispatch() ) const;
  14213. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14214. template<typename Dispatch = DispatchLoaderDefault>
  14215. PhysicalDeviceMemoryProperties getMemoryProperties(Dispatch const &d = Dispatch() ) const;
  14216. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14217. template<typename Dispatch = DispatchLoaderDefault>
  14218. void getMemoryProperties2( PhysicalDeviceMemoryProperties2* pMemoryProperties, Dispatch const &d = Dispatch() ) const;
  14219. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14220. template<typename Dispatch = DispatchLoaderDefault>
  14221. PhysicalDeviceMemoryProperties2 getMemoryProperties2(Dispatch const &d = Dispatch() ) const;
  14222. template<typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderDefault>
  14223. StructureChain<X, Y, Z...> getMemoryProperties2(Dispatch const &d = Dispatch() ) const;
  14224. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14225. template<typename Dispatch = DispatchLoaderDefault>
  14226. void getMemoryProperties2KHR( PhysicalDeviceMemoryProperties2* pMemoryProperties, Dispatch const &d = Dispatch() ) const;
  14227. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14228. template<typename Dispatch = DispatchLoaderDefault>
  14229. PhysicalDeviceMemoryProperties2 getMemoryProperties2KHR(Dispatch const &d = Dispatch() ) const;
  14230. template<typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderDefault>
  14231. StructureChain<X, Y, Z...> getMemoryProperties2KHR(Dispatch const &d = Dispatch() ) const;
  14232. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14233. template<typename Dispatch = DispatchLoaderDefault>
  14234. void getMultisamplePropertiesEXT( SampleCountFlagBits samples, MultisamplePropertiesEXT* pMultisampleProperties, Dispatch const &d = Dispatch() ) const;
  14235. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14236. template<typename Dispatch = DispatchLoaderDefault>
  14237. MultisamplePropertiesEXT getMultisamplePropertiesEXT( SampleCountFlagBits samples, Dispatch const &d = Dispatch() ) const;
  14238. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14239. template<typename Dispatch = DispatchLoaderDefault>
  14240. Result getPresentRectanglesKHR( SurfaceKHR surface, uint32_t* pRectCount, Rect2D* pRects, Dispatch const &d = Dispatch() ) const;
  14241. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14242. template<typename Allocator = std::allocator<Rect2D>, typename Dispatch = DispatchLoaderDefault>
  14243. typename ResultValueType<std::vector<Rect2D,Allocator>>::type getPresentRectanglesKHR( SurfaceKHR surface, Dispatch const &d = Dispatch() ) const;
  14244. template<typename Allocator = std::allocator<Rect2D>, typename Dispatch = DispatchLoaderDefault>
  14245. typename ResultValueType<std::vector<Rect2D,Allocator>>::type getPresentRectanglesKHR( SurfaceKHR surface, Allocator const& vectorAllocator, Dispatch const &d ) const;
  14246. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14247. template<typename Dispatch = DispatchLoaderDefault>
  14248. void getProperties( PhysicalDeviceProperties* pProperties, Dispatch const &d = Dispatch() ) const;
  14249. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14250. template<typename Dispatch = DispatchLoaderDefault>
  14251. PhysicalDeviceProperties getProperties(Dispatch const &d = Dispatch() ) const;
  14252. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14253. template<typename Dispatch = DispatchLoaderDefault>
  14254. void getProperties2( PhysicalDeviceProperties2* pProperties, Dispatch const &d = Dispatch() ) const;
  14255. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14256. template<typename Dispatch = DispatchLoaderDefault>
  14257. PhysicalDeviceProperties2 getProperties2(Dispatch const &d = Dispatch() ) const;
  14258. template<typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderDefault>
  14259. StructureChain<X, Y, Z...> getProperties2(Dispatch const &d = Dispatch() ) const;
  14260. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14261. template<typename Dispatch = DispatchLoaderDefault>
  14262. void getProperties2KHR( PhysicalDeviceProperties2* pProperties, Dispatch const &d = Dispatch() ) const;
  14263. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14264. template<typename Dispatch = DispatchLoaderDefault>
  14265. PhysicalDeviceProperties2 getProperties2KHR(Dispatch const &d = Dispatch() ) const;
  14266. template<typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderDefault>
  14267. StructureChain<X, Y, Z...> getProperties2KHR(Dispatch const &d = Dispatch() ) const;
  14268. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14269. template<typename Dispatch = DispatchLoaderDefault>
  14270. void getQueueFamilyProperties( uint32_t* pQueueFamilyPropertyCount, QueueFamilyProperties* pQueueFamilyProperties, Dispatch const &d = Dispatch() ) const;
  14271. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14272. template<typename Allocator = std::allocator<QueueFamilyProperties>, typename Dispatch = DispatchLoaderDefault>
  14273. std::vector<QueueFamilyProperties,Allocator> getQueueFamilyProperties(Dispatch const &d = Dispatch() ) const;
  14274. template<typename Allocator = std::allocator<QueueFamilyProperties>, typename Dispatch = DispatchLoaderDefault>
  14275. std::vector<QueueFamilyProperties,Allocator> getQueueFamilyProperties(Allocator const& vectorAllocator, Dispatch const &d ) const;
  14276. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14277. template<typename Dispatch = DispatchLoaderDefault>
  14278. void getQueueFamilyProperties2( uint32_t* pQueueFamilyPropertyCount, QueueFamilyProperties2* pQueueFamilyProperties, Dispatch const &d = Dispatch() ) const;
  14279. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14280. template<typename Allocator = std::allocator<QueueFamilyProperties2>, typename Dispatch = DispatchLoaderDefault>
  14281. std::vector<QueueFamilyProperties2,Allocator> getQueueFamilyProperties2(Dispatch const &d = Dispatch() ) const;
  14282. template<typename Allocator = std::allocator<QueueFamilyProperties2>, typename Dispatch = DispatchLoaderDefault>
  14283. std::vector<QueueFamilyProperties2,Allocator> getQueueFamilyProperties2(Allocator const& vectorAllocator, Dispatch const &d ) const;
  14284. template<typename StructureChain, typename Allocator = std::allocator<StructureChain>, typename Dispatch = DispatchLoaderDefault>
  14285. std::vector<StructureChain,Allocator> getQueueFamilyProperties2(Dispatch const &d = Dispatch() ) const;
  14286. template<typename StructureChain, typename Allocator = std::allocator<StructureChain>, typename Dispatch = DispatchLoaderDefault>
  14287. std::vector<StructureChain,Allocator> getQueueFamilyProperties2(Allocator const& vectorAllocator, Dispatch const &d ) const;
  14288. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14289. template<typename Dispatch = DispatchLoaderDefault>
  14290. void getQueueFamilyProperties2KHR( uint32_t* pQueueFamilyPropertyCount, QueueFamilyProperties2* pQueueFamilyProperties, Dispatch const &d = Dispatch() ) const;
  14291. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14292. template<typename Allocator = std::allocator<QueueFamilyProperties2>, typename Dispatch = DispatchLoaderDefault>
  14293. std::vector<QueueFamilyProperties2,Allocator> getQueueFamilyProperties2KHR(Dispatch const &d = Dispatch() ) const;
  14294. template<typename Allocator = std::allocator<QueueFamilyProperties2>, typename Dispatch = DispatchLoaderDefault>
  14295. std::vector<QueueFamilyProperties2,Allocator> getQueueFamilyProperties2KHR(Allocator const& vectorAllocator, Dispatch const &d ) const;
  14296. template<typename StructureChain, typename Allocator = std::allocator<StructureChain>, typename Dispatch = DispatchLoaderDefault>
  14297. std::vector<StructureChain,Allocator> getQueueFamilyProperties2KHR(Dispatch const &d = Dispatch() ) const;
  14298. template<typename StructureChain, typename Allocator = std::allocator<StructureChain>, typename Dispatch = DispatchLoaderDefault>
  14299. std::vector<StructureChain,Allocator> getQueueFamilyProperties2KHR(Allocator const& vectorAllocator, Dispatch const &d ) const;
  14300. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14301. template<typename Dispatch = DispatchLoaderDefault>
  14302. void getSparseImageFormatProperties( Format format, ImageType type, SampleCountFlagBits samples, ImageUsageFlags usage, ImageTiling tiling, uint32_t* pPropertyCount, SparseImageFormatProperties* pProperties, Dispatch const &d = Dispatch() ) const;
  14303. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14304. template<typename Allocator = std::allocator<SparseImageFormatProperties>, typename Dispatch = DispatchLoaderDefault>
  14305. std::vector<SparseImageFormatProperties,Allocator> getSparseImageFormatProperties( Format format, ImageType type, SampleCountFlagBits samples, ImageUsageFlags usage, ImageTiling tiling, Dispatch const &d = Dispatch() ) const;
  14306. template<typename Allocator = std::allocator<SparseImageFormatProperties>, typename Dispatch = DispatchLoaderDefault>
  14307. std::vector<SparseImageFormatProperties,Allocator> getSparseImageFormatProperties( Format format, ImageType type, SampleCountFlagBits samples, ImageUsageFlags usage, ImageTiling tiling, Allocator const& vectorAllocator, Dispatch const &d ) const;
  14308. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14309. template<typename Dispatch = DispatchLoaderDefault>
  14310. void getSparseImageFormatProperties2( const PhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, SparseImageFormatProperties2* pProperties, Dispatch const &d = Dispatch() ) const;
  14311. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14312. template<typename Allocator = std::allocator<SparseImageFormatProperties2>, typename Dispatch = DispatchLoaderDefault>
  14313. std::vector<SparseImageFormatProperties2,Allocator> getSparseImageFormatProperties2( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Dispatch const &d = Dispatch() ) const;
  14314. template<typename Allocator = std::allocator<SparseImageFormatProperties2>, typename Dispatch = DispatchLoaderDefault>
  14315. std::vector<SparseImageFormatProperties2,Allocator> getSparseImageFormatProperties2( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Allocator const& vectorAllocator, Dispatch const &d ) const;
  14316. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14317. template<typename Dispatch = DispatchLoaderDefault>
  14318. void getSparseImageFormatProperties2KHR( const PhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, SparseImageFormatProperties2* pProperties, Dispatch const &d = Dispatch() ) const;
  14319. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14320. template<typename Allocator = std::allocator<SparseImageFormatProperties2>, typename Dispatch = DispatchLoaderDefault>
  14321. std::vector<SparseImageFormatProperties2,Allocator> getSparseImageFormatProperties2KHR( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Dispatch const &d = Dispatch() ) const;
  14322. template<typename Allocator = std::allocator<SparseImageFormatProperties2>, typename Dispatch = DispatchLoaderDefault>
  14323. std::vector<SparseImageFormatProperties2,Allocator> getSparseImageFormatProperties2KHR( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Allocator const& vectorAllocator, Dispatch const &d ) const;
  14324. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14325. template<typename Dispatch = DispatchLoaderDefault>
  14326. Result getSupportedFramebufferMixedSamplesCombinationsNV( uint32_t* pCombinationCount, FramebufferMixedSamplesCombinationNV* pCombinations, Dispatch const &d = Dispatch() ) const;
  14327. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14328. template<typename Allocator = std::allocator<FramebufferMixedSamplesCombinationNV>, typename Dispatch = DispatchLoaderDefault>
  14329. typename ResultValueType<std::vector<FramebufferMixedSamplesCombinationNV,Allocator>>::type getSupportedFramebufferMixedSamplesCombinationsNV(Dispatch const &d = Dispatch() ) const;
  14330. template<typename Allocator = std::allocator<FramebufferMixedSamplesCombinationNV>, typename Dispatch = DispatchLoaderDefault>
  14331. typename ResultValueType<std::vector<FramebufferMixedSamplesCombinationNV,Allocator>>::type getSupportedFramebufferMixedSamplesCombinationsNV(Allocator const& vectorAllocator, Dispatch const &d ) const;
  14332. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14333. template<typename Dispatch = DispatchLoaderDefault>
  14334. Result getSurfaceCapabilities2EXT( SurfaceKHR surface, SurfaceCapabilities2EXT* pSurfaceCapabilities, Dispatch const &d = Dispatch() ) const;
  14335. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14336. template<typename Dispatch = DispatchLoaderDefault>
  14337. ResultValueType<SurfaceCapabilities2EXT>::type getSurfaceCapabilities2EXT( SurfaceKHR surface, Dispatch const &d = Dispatch() ) const;
  14338. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14339. template<typename Dispatch = DispatchLoaderDefault>
  14340. Result getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, SurfaceCapabilities2KHR* pSurfaceCapabilities, Dispatch const &d = Dispatch() ) const;
  14341. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14342. template<typename Dispatch = DispatchLoaderDefault>
  14343. ResultValueType<SurfaceCapabilities2KHR>::type getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d = Dispatch() ) const;
  14344. template<typename X, typename Y, typename ...Z, typename Dispatch = DispatchLoaderDefault>
  14345. typename ResultValueType<StructureChain<X, Y, Z...>>::type getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d = Dispatch() ) const;
  14346. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14347. template<typename Dispatch = DispatchLoaderDefault>
  14348. Result getSurfaceCapabilitiesKHR( SurfaceKHR surface, SurfaceCapabilitiesKHR* pSurfaceCapabilities, Dispatch const &d = Dispatch() ) const;
  14349. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14350. template<typename Dispatch = DispatchLoaderDefault>
  14351. ResultValueType<SurfaceCapabilitiesKHR>::type getSurfaceCapabilitiesKHR( SurfaceKHR surface, Dispatch const &d = Dispatch() ) const;
  14352. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14353. template<typename Dispatch = DispatchLoaderDefault>
  14354. Result getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, SurfaceFormat2KHR* pSurfaceFormats, Dispatch const &d = Dispatch() ) const;
  14355. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14356. template<typename Allocator = std::allocator<SurfaceFormat2KHR>, typename Dispatch = DispatchLoaderDefault>
  14357. typename ResultValueType<std::vector<SurfaceFormat2KHR,Allocator>>::type getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d = Dispatch() ) const;
  14358. template<typename Allocator = std::allocator<SurfaceFormat2KHR>, typename Dispatch = DispatchLoaderDefault>
  14359. typename ResultValueType<std::vector<SurfaceFormat2KHR,Allocator>>::type getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Allocator const& vectorAllocator, Dispatch const &d ) const;
  14360. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14361. template<typename Dispatch = DispatchLoaderDefault>
  14362. Result getSurfaceFormatsKHR( SurfaceKHR surface, uint32_t* pSurfaceFormatCount, SurfaceFormatKHR* pSurfaceFormats, Dispatch const &d = Dispatch() ) const;
  14363. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14364. template<typename Allocator = std::allocator<SurfaceFormatKHR>, typename Dispatch = DispatchLoaderDefault>
  14365. typename ResultValueType<std::vector<SurfaceFormatKHR,Allocator>>::type getSurfaceFormatsKHR( SurfaceKHR surface, Dispatch const &d = Dispatch() ) const;
  14366. template<typename Allocator = std::allocator<SurfaceFormatKHR>, typename Dispatch = DispatchLoaderDefault>
  14367. typename ResultValueType<std::vector<SurfaceFormatKHR,Allocator>>::type getSurfaceFormatsKHR( SurfaceKHR surface, Allocator const& vectorAllocator, Dispatch const &d ) const;
  14368. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14369. #ifdef VK_USE_PLATFORM_WIN32_KHR
  14370. template<typename Dispatch = DispatchLoaderDefault>
  14371. Result getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, PresentModeKHR* pPresentModes, Dispatch const &d = Dispatch() ) const;
  14372. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14373. template<typename Allocator = std::allocator<PresentModeKHR>, typename Dispatch = DispatchLoaderDefault>
  14374. typename ResultValueType<std::vector<PresentModeKHR,Allocator>>::type getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d = Dispatch() ) const;
  14375. template<typename Allocator = std::allocator<PresentModeKHR>, typename Dispatch = DispatchLoaderDefault>
  14376. typename ResultValueType<std::vector<PresentModeKHR,Allocator>>::type getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Allocator const& vectorAllocator, Dispatch const &d ) const;
  14377. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14378. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  14379. template<typename Dispatch = DispatchLoaderDefault>
  14380. Result getSurfacePresentModesKHR( SurfaceKHR surface, uint32_t* pPresentModeCount, PresentModeKHR* pPresentModes, Dispatch const &d = Dispatch() ) const;
  14381. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14382. template<typename Allocator = std::allocator<PresentModeKHR>, typename Dispatch = DispatchLoaderDefault>
  14383. typename ResultValueType<std::vector<PresentModeKHR,Allocator>>::type getSurfacePresentModesKHR( SurfaceKHR surface, Dispatch const &d = Dispatch() ) const;
  14384. template<typename Allocator = std::allocator<PresentModeKHR>, typename Dispatch = DispatchLoaderDefault>
  14385. typename ResultValueType<std::vector<PresentModeKHR,Allocator>>::type getSurfacePresentModesKHR( SurfaceKHR surface, Allocator const& vectorAllocator, Dispatch const &d ) const;
  14386. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14387. template<typename Dispatch = DispatchLoaderDefault>
  14388. Result getSurfaceSupportKHR( uint32_t queueFamilyIndex, SurfaceKHR surface, Bool32* pSupported, Dispatch const &d = Dispatch() ) const;
  14389. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14390. template<typename Dispatch = DispatchLoaderDefault>
  14391. ResultValueType<Bool32>::type getSurfaceSupportKHR( uint32_t queueFamilyIndex, SurfaceKHR surface, Dispatch const &d = Dispatch() ) const;
  14392. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14393. #ifdef VK_USE_PLATFORM_WAYLAND_KHR
  14394. template<typename Dispatch = DispatchLoaderDefault>
  14395. Bool32 getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display* display, Dispatch const &d = Dispatch() ) const;
  14396. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14397. template<typename Dispatch = DispatchLoaderDefault>
  14398. Bool32 getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display & display, Dispatch const &d = Dispatch() ) const;
  14399. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14400. #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
  14401. #ifdef VK_USE_PLATFORM_WIN32_KHR
  14402. template<typename Dispatch = DispatchLoaderDefault>
  14403. Bool32 getWin32PresentationSupportKHR( uint32_t queueFamilyIndex, Dispatch const &d = Dispatch() ) const;
  14404. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  14405. #ifdef VK_USE_PLATFORM_XCB_KHR
  14406. template<typename Dispatch = DispatchLoaderDefault>
  14407. Bool32 getXcbPresentationSupportKHR( uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id, Dispatch const &d = Dispatch() ) const;
  14408. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14409. template<typename Dispatch = DispatchLoaderDefault>
  14410. Bool32 getXcbPresentationSupportKHR( uint32_t queueFamilyIndex, xcb_connection_t & connection, xcb_visualid_t visual_id, Dispatch const &d = Dispatch() ) const;
  14411. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14412. #endif /*VK_USE_PLATFORM_XCB_KHR*/
  14413. #ifdef VK_USE_PLATFORM_XLIB_KHR
  14414. template<typename Dispatch = DispatchLoaderDefault>
  14415. Bool32 getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display* dpy, VisualID visualID, Dispatch const &d = Dispatch() ) const;
  14416. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14417. template<typename Dispatch = DispatchLoaderDefault>
  14418. Bool32 getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display & dpy, VisualID visualID, Dispatch const &d = Dispatch() ) const;
  14419. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14420. #endif /*VK_USE_PLATFORM_XLIB_KHR*/
  14421. #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
  14422. template<typename Dispatch = DispatchLoaderDefault>
  14423. Result getRandROutputDisplayEXT( Display* dpy, RROutput rrOutput, DisplayKHR* pDisplay, Dispatch const &d = Dispatch() ) const;
  14424. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14425. template<typename Dispatch = DispatchLoaderDefault>
  14426. ResultValueType<DisplayKHR>::type getRandROutputDisplayEXT( Display & dpy, RROutput rrOutput, Dispatch const &d = Dispatch() ) const;
  14427. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14428. #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
  14429. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14430. template<typename Dispatch = DispatchLoaderDefault>
  14431. Result releaseDisplayEXT( DisplayKHR display, Dispatch const &d = Dispatch() ) const;
  14432. #else
  14433. template<typename Dispatch = DispatchLoaderDefault>
  14434. ResultValueType<void>::type releaseDisplayEXT( DisplayKHR display, Dispatch const &d = Dispatch() ) const;
  14435. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14436. VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPhysicalDevice() const
  14437. {
  14438. return m_physicalDevice;
  14439. }
  14440. explicit operator bool() const
  14441. {
  14442. return m_physicalDevice != VK_NULL_HANDLE;
  14443. }
  14444. bool operator!() const
  14445. {
  14446. return m_physicalDevice == VK_NULL_HANDLE;
  14447. }
  14448. private:
  14449. VkPhysicalDevice m_physicalDevice;
  14450. };
  14451. static_assert( sizeof( PhysicalDevice ) == sizeof( VkPhysicalDevice ), "handle and wrapper have different size!" );
  14452. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  14453. class Instance;
  14454. template <typename Dispatch> class UniqueHandleTraits<DebugReportCallbackEXT, Dispatch> { public: using deleter = ObjectDestroy<Instance, Dispatch>; };
  14455. using UniqueDebugReportCallbackEXT = UniqueHandle<DebugReportCallbackEXT, DispatchLoaderDefault>;
  14456. template <typename Dispatch> class UniqueHandleTraits<DebugUtilsMessengerEXT, Dispatch> { public: using deleter = ObjectDestroy<Instance, Dispatch>; };
  14457. using UniqueDebugUtilsMessengerEXT = UniqueHandle<DebugUtilsMessengerEXT, DispatchLoaderDefault>;
  14458. template <typename Dispatch> class UniqueHandleTraits<SurfaceKHR, Dispatch> { public: using deleter = ObjectDestroy<Instance, Dispatch>; };
  14459. using UniqueSurfaceKHR = UniqueHandle<SurfaceKHR, DispatchLoaderDefault>;
  14460. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  14461. class Instance
  14462. {
  14463. public:
  14464. using CType = VkInstance;
  14465. public:
  14466. VULKAN_HPP_CONSTEXPR Instance()
  14467. : m_instance(VK_NULL_HANDLE)
  14468. {}
  14469. VULKAN_HPP_CONSTEXPR Instance( std::nullptr_t )
  14470. : m_instance(VK_NULL_HANDLE)
  14471. {}
  14472. VULKAN_HPP_TYPESAFE_EXPLICIT Instance( VkInstance instance )
  14473. : m_instance( instance )
  14474. {}
  14475. #if defined(VULKAN_HPP_TYPESAFE_CONVERSION)
  14476. Instance & operator=(VkInstance instance)
  14477. {
  14478. m_instance = instance;
  14479. return *this;
  14480. }
  14481. #endif
  14482. Instance & operator=( std::nullptr_t )
  14483. {
  14484. m_instance = VK_NULL_HANDLE;
  14485. return *this;
  14486. }
  14487. bool operator==( Instance const & rhs ) const
  14488. {
  14489. return m_instance == rhs.m_instance;
  14490. }
  14491. bool operator!=(Instance const & rhs ) const
  14492. {
  14493. return m_instance != rhs.m_instance;
  14494. }
  14495. bool operator<(Instance const & rhs ) const
  14496. {
  14497. return m_instance < rhs.m_instance;
  14498. }
  14499. #ifdef VK_USE_PLATFORM_ANDROID_KHR
  14500. template<typename Dispatch = DispatchLoaderDefault>
  14501. Result createAndroidSurfaceKHR( const AndroidSurfaceCreateInfoKHR* pCreateInfo, const AllocationCallbacks* pAllocator, SurfaceKHR* pSurface, Dispatch const &d = Dispatch() ) const;
  14502. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14503. template<typename Dispatch = DispatchLoaderDefault>
  14504. ResultValueType<SurfaceKHR>::type createAndroidSurfaceKHR( const AndroidSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  14505. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  14506. template<typename Dispatch = DispatchLoaderDefault>
  14507. typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createAndroidSurfaceKHRUnique( const AndroidSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  14508. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  14509. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14510. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  14511. template<typename Dispatch = DispatchLoaderDefault>
  14512. Result createDebugReportCallbackEXT( const DebugReportCallbackCreateInfoEXT* pCreateInfo, const AllocationCallbacks* pAllocator, DebugReportCallbackEXT* pCallback, Dispatch const &d = Dispatch() ) const;
  14513. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14514. template<typename Dispatch = DispatchLoaderDefault>
  14515. ResultValueType<DebugReportCallbackEXT>::type createDebugReportCallbackEXT( const DebugReportCallbackCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  14516. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  14517. template<typename Dispatch = DispatchLoaderDefault>
  14518. typename ResultValueType<UniqueHandle<DebugReportCallbackEXT,Dispatch>>::type createDebugReportCallbackEXTUnique( const DebugReportCallbackCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  14519. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  14520. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14521. template<typename Dispatch = DispatchLoaderDefault>
  14522. Result createDebugUtilsMessengerEXT( const DebugUtilsMessengerCreateInfoEXT* pCreateInfo, const AllocationCallbacks* pAllocator, DebugUtilsMessengerEXT* pMessenger, Dispatch const &d = Dispatch() ) const;
  14523. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14524. template<typename Dispatch = DispatchLoaderDefault>
  14525. ResultValueType<DebugUtilsMessengerEXT>::type createDebugUtilsMessengerEXT( const DebugUtilsMessengerCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  14526. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  14527. template<typename Dispatch = DispatchLoaderDefault>
  14528. typename ResultValueType<UniqueHandle<DebugUtilsMessengerEXT,Dispatch>>::type createDebugUtilsMessengerEXTUnique( const DebugUtilsMessengerCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  14529. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  14530. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14531. template<typename Dispatch = DispatchLoaderDefault>
  14532. Result createDisplayPlaneSurfaceKHR( const DisplaySurfaceCreateInfoKHR* pCreateInfo, const AllocationCallbacks* pAllocator, SurfaceKHR* pSurface, Dispatch const &d = Dispatch() ) const;
  14533. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14534. template<typename Dispatch = DispatchLoaderDefault>
  14535. ResultValueType<SurfaceKHR>::type createDisplayPlaneSurfaceKHR( const DisplaySurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  14536. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  14537. template<typename Dispatch = DispatchLoaderDefault>
  14538. typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createDisplayPlaneSurfaceKHRUnique( const DisplaySurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  14539. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  14540. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14541. template<typename Dispatch = DispatchLoaderDefault>
  14542. Result createHeadlessSurfaceEXT( const HeadlessSurfaceCreateInfoEXT* pCreateInfo, const AllocationCallbacks* pAllocator, SurfaceKHR* pSurface, Dispatch const &d = Dispatch() ) const;
  14543. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14544. template<typename Dispatch = DispatchLoaderDefault>
  14545. ResultValueType<SurfaceKHR>::type createHeadlessSurfaceEXT( const HeadlessSurfaceCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  14546. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  14547. template<typename Dispatch = DispatchLoaderDefault>
  14548. typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createHeadlessSurfaceEXTUnique( const HeadlessSurfaceCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  14549. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  14550. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14551. #ifdef VK_USE_PLATFORM_IOS_MVK
  14552. template<typename Dispatch = DispatchLoaderDefault>
  14553. Result createIOSSurfaceMVK( const IOSSurfaceCreateInfoMVK* pCreateInfo, const AllocationCallbacks* pAllocator, SurfaceKHR* pSurface, Dispatch const &d = Dispatch() ) const;
  14554. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14555. template<typename Dispatch = DispatchLoaderDefault>
  14556. ResultValueType<SurfaceKHR>::type createIOSSurfaceMVK( const IOSSurfaceCreateInfoMVK & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  14557. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  14558. template<typename Dispatch = DispatchLoaderDefault>
  14559. typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createIOSSurfaceMVKUnique( const IOSSurfaceCreateInfoMVK & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  14560. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  14561. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14562. #endif /*VK_USE_PLATFORM_IOS_MVK*/
  14563. #ifdef VK_USE_PLATFORM_FUCHSIA
  14564. template<typename Dispatch = DispatchLoaderDefault>
  14565. Result createImagePipeSurfaceFUCHSIA( const ImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const AllocationCallbacks* pAllocator, SurfaceKHR* pSurface, Dispatch const &d = Dispatch() ) const;
  14566. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14567. template<typename Dispatch = DispatchLoaderDefault>
  14568. ResultValueType<SurfaceKHR>::type createImagePipeSurfaceFUCHSIA( const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  14569. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  14570. template<typename Dispatch = DispatchLoaderDefault>
  14571. typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createImagePipeSurfaceFUCHSIAUnique( const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  14572. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  14573. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14574. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  14575. #ifdef VK_USE_PLATFORM_MACOS_MVK
  14576. template<typename Dispatch = DispatchLoaderDefault>
  14577. Result createMacOSSurfaceMVK( const MacOSSurfaceCreateInfoMVK* pCreateInfo, const AllocationCallbacks* pAllocator, SurfaceKHR* pSurface, Dispatch const &d = Dispatch() ) const;
  14578. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14579. template<typename Dispatch = DispatchLoaderDefault>
  14580. ResultValueType<SurfaceKHR>::type createMacOSSurfaceMVK( const MacOSSurfaceCreateInfoMVK & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  14581. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  14582. template<typename Dispatch = DispatchLoaderDefault>
  14583. typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createMacOSSurfaceMVKUnique( const MacOSSurfaceCreateInfoMVK & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  14584. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  14585. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14586. #endif /*VK_USE_PLATFORM_MACOS_MVK*/
  14587. #ifdef VK_USE_PLATFORM_METAL_EXT
  14588. template<typename Dispatch = DispatchLoaderDefault>
  14589. Result createMetalSurfaceEXT( const MetalSurfaceCreateInfoEXT* pCreateInfo, const AllocationCallbacks* pAllocator, SurfaceKHR* pSurface, Dispatch const &d = Dispatch() ) const;
  14590. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14591. template<typename Dispatch = DispatchLoaderDefault>
  14592. ResultValueType<SurfaceKHR>::type createMetalSurfaceEXT( const MetalSurfaceCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  14593. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  14594. template<typename Dispatch = DispatchLoaderDefault>
  14595. typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createMetalSurfaceEXTUnique( const MetalSurfaceCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  14596. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  14597. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14598. #endif /*VK_USE_PLATFORM_METAL_EXT*/
  14599. #ifdef VK_USE_PLATFORM_GGP
  14600. template<typename Dispatch = DispatchLoaderDefault>
  14601. Result createStreamDescriptorSurfaceGGP( const StreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, const AllocationCallbacks* pAllocator, SurfaceKHR* pSurface, Dispatch const &d = Dispatch() ) const;
  14602. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14603. template<typename Dispatch = DispatchLoaderDefault>
  14604. ResultValueType<SurfaceKHR>::type createStreamDescriptorSurfaceGGP( const StreamDescriptorSurfaceCreateInfoGGP & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  14605. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  14606. template<typename Dispatch = DispatchLoaderDefault>
  14607. typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createStreamDescriptorSurfaceGGPUnique( const StreamDescriptorSurfaceCreateInfoGGP & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  14608. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  14609. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14610. #endif /*VK_USE_PLATFORM_GGP*/
  14611. #ifdef VK_USE_PLATFORM_VI_NN
  14612. template<typename Dispatch = DispatchLoaderDefault>
  14613. Result createViSurfaceNN( const ViSurfaceCreateInfoNN* pCreateInfo, const AllocationCallbacks* pAllocator, SurfaceKHR* pSurface, Dispatch const &d = Dispatch() ) const;
  14614. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14615. template<typename Dispatch = DispatchLoaderDefault>
  14616. ResultValueType<SurfaceKHR>::type createViSurfaceNN( const ViSurfaceCreateInfoNN & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  14617. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  14618. template<typename Dispatch = DispatchLoaderDefault>
  14619. typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createViSurfaceNNUnique( const ViSurfaceCreateInfoNN & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  14620. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  14621. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14622. #endif /*VK_USE_PLATFORM_VI_NN*/
  14623. #ifdef VK_USE_PLATFORM_WAYLAND_KHR
  14624. template<typename Dispatch = DispatchLoaderDefault>
  14625. Result createWaylandSurfaceKHR( const WaylandSurfaceCreateInfoKHR* pCreateInfo, const AllocationCallbacks* pAllocator, SurfaceKHR* pSurface, Dispatch const &d = Dispatch() ) const;
  14626. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14627. template<typename Dispatch = DispatchLoaderDefault>
  14628. ResultValueType<SurfaceKHR>::type createWaylandSurfaceKHR( const WaylandSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  14629. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  14630. template<typename Dispatch = DispatchLoaderDefault>
  14631. typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createWaylandSurfaceKHRUnique( const WaylandSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  14632. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  14633. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14634. #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
  14635. #ifdef VK_USE_PLATFORM_WIN32_KHR
  14636. template<typename Dispatch = DispatchLoaderDefault>
  14637. Result createWin32SurfaceKHR( const Win32SurfaceCreateInfoKHR* pCreateInfo, const AllocationCallbacks* pAllocator, SurfaceKHR* pSurface, Dispatch const &d = Dispatch() ) const;
  14638. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14639. template<typename Dispatch = DispatchLoaderDefault>
  14640. ResultValueType<SurfaceKHR>::type createWin32SurfaceKHR( const Win32SurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  14641. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  14642. template<typename Dispatch = DispatchLoaderDefault>
  14643. typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createWin32SurfaceKHRUnique( const Win32SurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  14644. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  14645. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14646. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  14647. #ifdef VK_USE_PLATFORM_XCB_KHR
  14648. template<typename Dispatch = DispatchLoaderDefault>
  14649. Result createXcbSurfaceKHR( const XcbSurfaceCreateInfoKHR* pCreateInfo, const AllocationCallbacks* pAllocator, SurfaceKHR* pSurface, Dispatch const &d = Dispatch() ) const;
  14650. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14651. template<typename Dispatch = DispatchLoaderDefault>
  14652. ResultValueType<SurfaceKHR>::type createXcbSurfaceKHR( const XcbSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  14653. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  14654. template<typename Dispatch = DispatchLoaderDefault>
  14655. typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createXcbSurfaceKHRUnique( const XcbSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  14656. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  14657. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14658. #endif /*VK_USE_PLATFORM_XCB_KHR*/
  14659. #ifdef VK_USE_PLATFORM_XLIB_KHR
  14660. template<typename Dispatch = DispatchLoaderDefault>
  14661. Result createXlibSurfaceKHR( const XlibSurfaceCreateInfoKHR* pCreateInfo, const AllocationCallbacks* pAllocator, SurfaceKHR* pSurface, Dispatch const &d = Dispatch() ) const;
  14662. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14663. template<typename Dispatch = DispatchLoaderDefault>
  14664. ResultValueType<SurfaceKHR>::type createXlibSurfaceKHR( const XlibSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  14665. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  14666. template<typename Dispatch = DispatchLoaderDefault>
  14667. typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type createXlibSurfaceKHRUnique( const XlibSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  14668. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  14669. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14670. #endif /*VK_USE_PLATFORM_XLIB_KHR*/
  14671. template<typename Dispatch = DispatchLoaderDefault>
  14672. void debugReportMessageEXT( DebugReportFlagsEXT flags, DebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage, Dispatch const &d = Dispatch() ) const;
  14673. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14674. template<typename Dispatch = DispatchLoaderDefault>
  14675. void debugReportMessageEXT( DebugReportFlagsEXT flags, DebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const std::string & layerPrefix, const std::string & message, Dispatch const &d = Dispatch() ) const;
  14676. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14677. template<typename Dispatch = DispatchLoaderDefault>
  14678. void destroyDebugReportCallbackEXT( DebugReportCallbackEXT callback, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  14679. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14680. template<typename Dispatch = DispatchLoaderDefault>
  14681. void destroyDebugReportCallbackEXT( DebugReportCallbackEXT callback, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  14682. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14683. template<typename Dispatch = DispatchLoaderDefault>
  14684. void destroy( DebugReportCallbackEXT callback, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  14685. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14686. template<typename Dispatch = DispatchLoaderDefault>
  14687. void destroy( DebugReportCallbackEXT callback, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  14688. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14689. template<typename Dispatch = DispatchLoaderDefault>
  14690. void destroyDebugUtilsMessengerEXT( DebugUtilsMessengerEXT messenger, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  14691. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14692. template<typename Dispatch = DispatchLoaderDefault>
  14693. void destroyDebugUtilsMessengerEXT( DebugUtilsMessengerEXT messenger, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  14694. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14695. template<typename Dispatch = DispatchLoaderDefault>
  14696. void destroy( DebugUtilsMessengerEXT messenger, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  14697. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14698. template<typename Dispatch = DispatchLoaderDefault>
  14699. void destroy( DebugUtilsMessengerEXT messenger, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  14700. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14701. template<typename Dispatch = DispatchLoaderDefault>
  14702. void destroy( const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  14703. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14704. template<typename Dispatch = DispatchLoaderDefault>
  14705. void destroy( Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  14706. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14707. template<typename Dispatch = DispatchLoaderDefault>
  14708. void destroySurfaceKHR( SurfaceKHR surface, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  14709. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14710. template<typename Dispatch = DispatchLoaderDefault>
  14711. void destroySurfaceKHR( SurfaceKHR surface, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  14712. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14713. template<typename Dispatch = DispatchLoaderDefault>
  14714. void destroy( SurfaceKHR surface, const AllocationCallbacks* pAllocator, Dispatch const &d = Dispatch() ) const;
  14715. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14716. template<typename Dispatch = DispatchLoaderDefault>
  14717. void destroy( SurfaceKHR surface, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() ) const;
  14718. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14719. template<typename Dispatch = DispatchLoaderDefault>
  14720. Result enumeratePhysicalDeviceGroups( uint32_t* pPhysicalDeviceGroupCount, PhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties, Dispatch const &d = Dispatch() ) const;
  14721. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14722. template<typename Allocator = std::allocator<PhysicalDeviceGroupProperties>, typename Dispatch = DispatchLoaderDefault>
  14723. typename ResultValueType<std::vector<PhysicalDeviceGroupProperties,Allocator>>::type enumeratePhysicalDeviceGroups(Dispatch const &d = Dispatch() ) const;
  14724. template<typename Allocator = std::allocator<PhysicalDeviceGroupProperties>, typename Dispatch = DispatchLoaderDefault>
  14725. typename ResultValueType<std::vector<PhysicalDeviceGroupProperties,Allocator>>::type enumeratePhysicalDeviceGroups(Allocator const& vectorAllocator, Dispatch const &d ) const;
  14726. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14727. template<typename Dispatch = DispatchLoaderDefault>
  14728. Result enumeratePhysicalDeviceGroupsKHR( uint32_t* pPhysicalDeviceGroupCount, PhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties, Dispatch const &d = Dispatch() ) const;
  14729. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14730. template<typename Allocator = std::allocator<PhysicalDeviceGroupProperties>, typename Dispatch = DispatchLoaderDefault>
  14731. typename ResultValueType<std::vector<PhysicalDeviceGroupProperties,Allocator>>::type enumeratePhysicalDeviceGroupsKHR(Dispatch const &d = Dispatch() ) const;
  14732. template<typename Allocator = std::allocator<PhysicalDeviceGroupProperties>, typename Dispatch = DispatchLoaderDefault>
  14733. typename ResultValueType<std::vector<PhysicalDeviceGroupProperties,Allocator>>::type enumeratePhysicalDeviceGroupsKHR(Allocator const& vectorAllocator, Dispatch const &d ) const;
  14734. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14735. template<typename Dispatch = DispatchLoaderDefault>
  14736. Result enumeratePhysicalDevices( uint32_t* pPhysicalDeviceCount, PhysicalDevice* pPhysicalDevices, Dispatch const &d = Dispatch() ) const;
  14737. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14738. template<typename Allocator = std::allocator<PhysicalDevice>, typename Dispatch = DispatchLoaderDefault>
  14739. typename ResultValueType<std::vector<PhysicalDevice,Allocator>>::type enumeratePhysicalDevices(Dispatch const &d = Dispatch() ) const;
  14740. template<typename Allocator = std::allocator<PhysicalDevice>, typename Dispatch = DispatchLoaderDefault>
  14741. typename ResultValueType<std::vector<PhysicalDevice,Allocator>>::type enumeratePhysicalDevices(Allocator const& vectorAllocator, Dispatch const &d ) const;
  14742. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14743. template<typename Dispatch = DispatchLoaderDefault>
  14744. PFN_vkVoidFunction getProcAddr( const char* pName, Dispatch const &d = Dispatch() ) const;
  14745. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14746. template<typename Dispatch = DispatchLoaderDefault>
  14747. PFN_vkVoidFunction getProcAddr( const std::string & name, Dispatch const &d = Dispatch() ) const;
  14748. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14749. template<typename Dispatch = DispatchLoaderDefault>
  14750. void submitDebugUtilsMessageEXT( DebugUtilsMessageSeverityFlagBitsEXT messageSeverity, DebugUtilsMessageTypeFlagsEXT messageTypes, const DebugUtilsMessengerCallbackDataEXT* pCallbackData, Dispatch const &d = Dispatch() ) const;
  14751. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14752. template<typename Dispatch = DispatchLoaderDefault>
  14753. void submitDebugUtilsMessageEXT( DebugUtilsMessageSeverityFlagBitsEXT messageSeverity, DebugUtilsMessageTypeFlagsEXT messageTypes, const DebugUtilsMessengerCallbackDataEXT & callbackData, Dispatch const &d = Dispatch() ) const;
  14754. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14755. VULKAN_HPP_TYPESAFE_EXPLICIT operator VkInstance() const
  14756. {
  14757. return m_instance;
  14758. }
  14759. explicit operator bool() const
  14760. {
  14761. return m_instance != VK_NULL_HANDLE;
  14762. }
  14763. bool operator!() const
  14764. {
  14765. return m_instance == VK_NULL_HANDLE;
  14766. }
  14767. private:
  14768. VkInstance m_instance;
  14769. };
  14770. static_assert( sizeof( Instance ) == sizeof( VkInstance ), "handle and wrapper have different size!" );
  14771. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  14772. template <typename Dispatch> class UniqueHandleTraits<Instance, Dispatch> { public: using deleter = ObjectDestroy<NoParent, Dispatch>; };
  14773. using UniqueInstance = UniqueHandle<Instance, DispatchLoaderDefault>;
  14774. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  14775. template<typename Dispatch = DispatchLoaderDefault>
  14776. Result createInstance( const InstanceCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, Instance* pInstance, Dispatch const &d = Dispatch() );
  14777. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14778. template<typename Dispatch = DispatchLoaderDefault>
  14779. ResultValueType<Instance>::type createInstance( const InstanceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() );
  14780. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  14781. template<typename Dispatch = DispatchLoaderDefault>
  14782. typename ResultValueType<UniqueHandle<Instance,Dispatch>>::type createInstanceUnique( const InstanceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator = nullptr, Dispatch const &d = Dispatch() );
  14783. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  14784. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14785. template<typename Dispatch = DispatchLoaderDefault>
  14786. Result enumerateInstanceExtensionProperties( const char* pLayerName, uint32_t* pPropertyCount, ExtensionProperties* pProperties, Dispatch const &d = Dispatch() );
  14787. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14788. template<typename Allocator = std::allocator<ExtensionProperties>, typename Dispatch = DispatchLoaderDefault>
  14789. typename ResultValueType<std::vector<ExtensionProperties,Allocator>>::type enumerateInstanceExtensionProperties( Optional<const std::string> layerName = nullptr, Dispatch const &d = Dispatch() );
  14790. template<typename Allocator = std::allocator<ExtensionProperties>, typename Dispatch = DispatchLoaderDefault>
  14791. typename ResultValueType<std::vector<ExtensionProperties,Allocator>>::type enumerateInstanceExtensionProperties( Optional<const std::string> layerName, Allocator const& vectorAllocator, Dispatch const &d );
  14792. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14793. template<typename Dispatch = DispatchLoaderDefault>
  14794. Result enumerateInstanceLayerProperties( uint32_t* pPropertyCount, LayerProperties* pProperties, Dispatch const &d = Dispatch() );
  14795. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14796. template<typename Allocator = std::allocator<LayerProperties>, typename Dispatch = DispatchLoaderDefault>
  14797. typename ResultValueType<std::vector<LayerProperties,Allocator>>::type enumerateInstanceLayerProperties(Dispatch const &d = Dispatch() );
  14798. template<typename Allocator = std::allocator<LayerProperties>, typename Dispatch = DispatchLoaderDefault>
  14799. typename ResultValueType<std::vector<LayerProperties,Allocator>>::type enumerateInstanceLayerProperties(Allocator const& vectorAllocator, Dispatch const &d );
  14800. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14801. template<typename Dispatch = DispatchLoaderDefault>
  14802. Result enumerateInstanceVersion( uint32_t* pApiVersion, Dispatch const &d = Dispatch() );
  14803. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  14804. template<typename Dispatch = DispatchLoaderDefault>
  14805. ResultValueType<uint32_t>::type enumerateInstanceVersion(Dispatch const &d = Dispatch() );
  14806. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  14807. struct GeometryTrianglesNV
  14808. {
  14809. GeometryTrianglesNV( Buffer vertexData_ = Buffer(),
  14810. DeviceSize vertexOffset_ = 0,
  14811. uint32_t vertexCount_ = 0,
  14812. DeviceSize vertexStride_ = 0,
  14813. Format vertexFormat_ = Format::eUndefined,
  14814. Buffer indexData_ = Buffer(),
  14815. DeviceSize indexOffset_ = 0,
  14816. uint32_t indexCount_ = 0,
  14817. IndexType indexType_ = IndexType::eUint16,
  14818. Buffer transformData_ = Buffer(),
  14819. DeviceSize transformOffset_ = 0 )
  14820. : vertexData( vertexData_ )
  14821. , vertexOffset( vertexOffset_ )
  14822. , vertexCount( vertexCount_ )
  14823. , vertexStride( vertexStride_ )
  14824. , vertexFormat( vertexFormat_ )
  14825. , indexData( indexData_ )
  14826. , indexOffset( indexOffset_ )
  14827. , indexCount( indexCount_ )
  14828. , indexType( indexType_ )
  14829. , transformData( transformData_ )
  14830. , transformOffset( transformOffset_ )
  14831. {}
  14832. GeometryTrianglesNV( VkGeometryTrianglesNV const & rhs )
  14833. {
  14834. *reinterpret_cast<VkGeometryTrianglesNV*>(this) = rhs;
  14835. }
  14836. GeometryTrianglesNV& operator=( VkGeometryTrianglesNV const & rhs )
  14837. {
  14838. *reinterpret_cast<VkGeometryTrianglesNV*>(this) = rhs;
  14839. return *this;
  14840. }
  14841. GeometryTrianglesNV & setPNext( const void* pNext_ )
  14842. {
  14843. pNext = pNext_;
  14844. return *this;
  14845. }
  14846. GeometryTrianglesNV & setVertexData( Buffer vertexData_ )
  14847. {
  14848. vertexData = vertexData_;
  14849. return *this;
  14850. }
  14851. GeometryTrianglesNV & setVertexOffset( DeviceSize vertexOffset_ )
  14852. {
  14853. vertexOffset = vertexOffset_;
  14854. return *this;
  14855. }
  14856. GeometryTrianglesNV & setVertexCount( uint32_t vertexCount_ )
  14857. {
  14858. vertexCount = vertexCount_;
  14859. return *this;
  14860. }
  14861. GeometryTrianglesNV & setVertexStride( DeviceSize vertexStride_ )
  14862. {
  14863. vertexStride = vertexStride_;
  14864. return *this;
  14865. }
  14866. GeometryTrianglesNV & setVertexFormat( Format vertexFormat_ )
  14867. {
  14868. vertexFormat = vertexFormat_;
  14869. return *this;
  14870. }
  14871. GeometryTrianglesNV & setIndexData( Buffer indexData_ )
  14872. {
  14873. indexData = indexData_;
  14874. return *this;
  14875. }
  14876. GeometryTrianglesNV & setIndexOffset( DeviceSize indexOffset_ )
  14877. {
  14878. indexOffset = indexOffset_;
  14879. return *this;
  14880. }
  14881. GeometryTrianglesNV & setIndexCount( uint32_t indexCount_ )
  14882. {
  14883. indexCount = indexCount_;
  14884. return *this;
  14885. }
  14886. GeometryTrianglesNV & setIndexType( IndexType indexType_ )
  14887. {
  14888. indexType = indexType_;
  14889. return *this;
  14890. }
  14891. GeometryTrianglesNV & setTransformData( Buffer transformData_ )
  14892. {
  14893. transformData = transformData_;
  14894. return *this;
  14895. }
  14896. GeometryTrianglesNV & setTransformOffset( DeviceSize transformOffset_ )
  14897. {
  14898. transformOffset = transformOffset_;
  14899. return *this;
  14900. }
  14901. operator VkGeometryTrianglesNV const&() const
  14902. {
  14903. return *reinterpret_cast<const VkGeometryTrianglesNV*>( this );
  14904. }
  14905. operator VkGeometryTrianglesNV &()
  14906. {
  14907. return *reinterpret_cast<VkGeometryTrianglesNV*>( this );
  14908. }
  14909. bool operator==( GeometryTrianglesNV const& rhs ) const
  14910. {
  14911. return ( sType == rhs.sType )
  14912. && ( pNext == rhs.pNext )
  14913. && ( vertexData == rhs.vertexData )
  14914. && ( vertexOffset == rhs.vertexOffset )
  14915. && ( vertexCount == rhs.vertexCount )
  14916. && ( vertexStride == rhs.vertexStride )
  14917. && ( vertexFormat == rhs.vertexFormat )
  14918. && ( indexData == rhs.indexData )
  14919. && ( indexOffset == rhs.indexOffset )
  14920. && ( indexCount == rhs.indexCount )
  14921. && ( indexType == rhs.indexType )
  14922. && ( transformData == rhs.transformData )
  14923. && ( transformOffset == rhs.transformOffset );
  14924. }
  14925. bool operator!=( GeometryTrianglesNV const& rhs ) const
  14926. {
  14927. return !operator==( rhs );
  14928. }
  14929. private:
  14930. StructureType sType = StructureType::eGeometryTrianglesNV;
  14931. public:
  14932. const void* pNext = nullptr;
  14933. Buffer vertexData;
  14934. DeviceSize vertexOffset;
  14935. uint32_t vertexCount;
  14936. DeviceSize vertexStride;
  14937. Format vertexFormat;
  14938. Buffer indexData;
  14939. DeviceSize indexOffset;
  14940. uint32_t indexCount;
  14941. IndexType indexType;
  14942. Buffer transformData;
  14943. DeviceSize transformOffset;
  14944. };
  14945. static_assert( sizeof( GeometryTrianglesNV ) == sizeof( VkGeometryTrianglesNV ), "struct and wrapper have different size!" );
  14946. struct GeometryAABBNV
  14947. {
  14948. GeometryAABBNV( Buffer aabbData_ = Buffer(),
  14949. uint32_t numAABBs_ = 0,
  14950. uint32_t stride_ = 0,
  14951. DeviceSize offset_ = 0 )
  14952. : aabbData( aabbData_ )
  14953. , numAABBs( numAABBs_ )
  14954. , stride( stride_ )
  14955. , offset( offset_ )
  14956. {}
  14957. GeometryAABBNV( VkGeometryAABBNV const & rhs )
  14958. {
  14959. *reinterpret_cast<VkGeometryAABBNV*>(this) = rhs;
  14960. }
  14961. GeometryAABBNV& operator=( VkGeometryAABBNV const & rhs )
  14962. {
  14963. *reinterpret_cast<VkGeometryAABBNV*>(this) = rhs;
  14964. return *this;
  14965. }
  14966. GeometryAABBNV & setPNext( const void* pNext_ )
  14967. {
  14968. pNext = pNext_;
  14969. return *this;
  14970. }
  14971. GeometryAABBNV & setAabbData( Buffer aabbData_ )
  14972. {
  14973. aabbData = aabbData_;
  14974. return *this;
  14975. }
  14976. GeometryAABBNV & setNumAABBs( uint32_t numAABBs_ )
  14977. {
  14978. numAABBs = numAABBs_;
  14979. return *this;
  14980. }
  14981. GeometryAABBNV & setStride( uint32_t stride_ )
  14982. {
  14983. stride = stride_;
  14984. return *this;
  14985. }
  14986. GeometryAABBNV & setOffset( DeviceSize offset_ )
  14987. {
  14988. offset = offset_;
  14989. return *this;
  14990. }
  14991. operator VkGeometryAABBNV const&() const
  14992. {
  14993. return *reinterpret_cast<const VkGeometryAABBNV*>( this );
  14994. }
  14995. operator VkGeometryAABBNV &()
  14996. {
  14997. return *reinterpret_cast<VkGeometryAABBNV*>( this );
  14998. }
  14999. bool operator==( GeometryAABBNV const& rhs ) const
  15000. {
  15001. return ( sType == rhs.sType )
  15002. && ( pNext == rhs.pNext )
  15003. && ( aabbData == rhs.aabbData )
  15004. && ( numAABBs == rhs.numAABBs )
  15005. && ( stride == rhs.stride )
  15006. && ( offset == rhs.offset );
  15007. }
  15008. bool operator!=( GeometryAABBNV const& rhs ) const
  15009. {
  15010. return !operator==( rhs );
  15011. }
  15012. private:
  15013. StructureType sType = StructureType::eGeometryAabbNV;
  15014. public:
  15015. const void* pNext = nullptr;
  15016. Buffer aabbData;
  15017. uint32_t numAABBs;
  15018. uint32_t stride;
  15019. DeviceSize offset;
  15020. };
  15021. static_assert( sizeof( GeometryAABBNV ) == sizeof( VkGeometryAABBNV ), "struct and wrapper have different size!" );
  15022. struct GeometryDataNV
  15023. {
  15024. GeometryDataNV( GeometryTrianglesNV triangles_ = GeometryTrianglesNV(),
  15025. GeometryAABBNV aabbs_ = GeometryAABBNV() )
  15026. : triangles( triangles_ )
  15027. , aabbs( aabbs_ )
  15028. {}
  15029. GeometryDataNV( VkGeometryDataNV const & rhs )
  15030. {
  15031. *reinterpret_cast<VkGeometryDataNV*>(this) = rhs;
  15032. }
  15033. GeometryDataNV& operator=( VkGeometryDataNV const & rhs )
  15034. {
  15035. *reinterpret_cast<VkGeometryDataNV*>(this) = rhs;
  15036. return *this;
  15037. }
  15038. GeometryDataNV & setTriangles( GeometryTrianglesNV triangles_ )
  15039. {
  15040. triangles = triangles_;
  15041. return *this;
  15042. }
  15043. GeometryDataNV & setAabbs( GeometryAABBNV aabbs_ )
  15044. {
  15045. aabbs = aabbs_;
  15046. return *this;
  15047. }
  15048. operator VkGeometryDataNV const&() const
  15049. {
  15050. return *reinterpret_cast<const VkGeometryDataNV*>( this );
  15051. }
  15052. operator VkGeometryDataNV &()
  15053. {
  15054. return *reinterpret_cast<VkGeometryDataNV*>( this );
  15055. }
  15056. bool operator==( GeometryDataNV const& rhs ) const
  15057. {
  15058. return ( triangles == rhs.triangles )
  15059. && ( aabbs == rhs.aabbs );
  15060. }
  15061. bool operator!=( GeometryDataNV const& rhs ) const
  15062. {
  15063. return !operator==( rhs );
  15064. }
  15065. GeometryTrianglesNV triangles;
  15066. GeometryAABBNV aabbs;
  15067. };
  15068. static_assert( sizeof( GeometryDataNV ) == sizeof( VkGeometryDataNV ), "struct and wrapper have different size!" );
  15069. struct GeometryNV
  15070. {
  15071. GeometryNV( GeometryTypeNV geometryType_ = GeometryTypeNV::eTriangles,
  15072. GeometryDataNV geometry_ = GeometryDataNV(),
  15073. GeometryFlagsNV flags_ = GeometryFlagsNV() )
  15074. : geometryType( geometryType_ )
  15075. , geometry( geometry_ )
  15076. , flags( flags_ )
  15077. {}
  15078. GeometryNV( VkGeometryNV const & rhs )
  15079. {
  15080. *reinterpret_cast<VkGeometryNV*>(this) = rhs;
  15081. }
  15082. GeometryNV& operator=( VkGeometryNV const & rhs )
  15083. {
  15084. *reinterpret_cast<VkGeometryNV*>(this) = rhs;
  15085. return *this;
  15086. }
  15087. GeometryNV & setPNext( const void* pNext_ )
  15088. {
  15089. pNext = pNext_;
  15090. return *this;
  15091. }
  15092. GeometryNV & setGeometryType( GeometryTypeNV geometryType_ )
  15093. {
  15094. geometryType = geometryType_;
  15095. return *this;
  15096. }
  15097. GeometryNV & setGeometry( GeometryDataNV geometry_ )
  15098. {
  15099. geometry = geometry_;
  15100. return *this;
  15101. }
  15102. GeometryNV & setFlags( GeometryFlagsNV flags_ )
  15103. {
  15104. flags = flags_;
  15105. return *this;
  15106. }
  15107. operator VkGeometryNV const&() const
  15108. {
  15109. return *reinterpret_cast<const VkGeometryNV*>( this );
  15110. }
  15111. operator VkGeometryNV &()
  15112. {
  15113. return *reinterpret_cast<VkGeometryNV*>( this );
  15114. }
  15115. bool operator==( GeometryNV const& rhs ) const
  15116. {
  15117. return ( sType == rhs.sType )
  15118. && ( pNext == rhs.pNext )
  15119. && ( geometryType == rhs.geometryType )
  15120. && ( geometry == rhs.geometry )
  15121. && ( flags == rhs.flags );
  15122. }
  15123. bool operator!=( GeometryNV const& rhs ) const
  15124. {
  15125. return !operator==( rhs );
  15126. }
  15127. private:
  15128. StructureType sType = StructureType::eGeometryNV;
  15129. public:
  15130. const void* pNext = nullptr;
  15131. GeometryTypeNV geometryType;
  15132. GeometryDataNV geometry;
  15133. GeometryFlagsNV flags;
  15134. };
  15135. static_assert( sizeof( GeometryNV ) == sizeof( VkGeometryNV ), "struct and wrapper have different size!" );
  15136. struct AccelerationStructureInfoNV
  15137. {
  15138. AccelerationStructureInfoNV( AccelerationStructureTypeNV type_ = AccelerationStructureTypeNV::eTopLevel,
  15139. BuildAccelerationStructureFlagsNV flags_ = BuildAccelerationStructureFlagsNV(),
  15140. uint32_t instanceCount_ = 0,
  15141. uint32_t geometryCount_ = 0,
  15142. const GeometryNV* pGeometries_ = nullptr )
  15143. : type( type_ )
  15144. , flags( flags_ )
  15145. , instanceCount( instanceCount_ )
  15146. , geometryCount( geometryCount_ )
  15147. , pGeometries( pGeometries_ )
  15148. {}
  15149. AccelerationStructureInfoNV( VkAccelerationStructureInfoNV const & rhs )
  15150. {
  15151. *reinterpret_cast<VkAccelerationStructureInfoNV*>(this) = rhs;
  15152. }
  15153. AccelerationStructureInfoNV& operator=( VkAccelerationStructureInfoNV const & rhs )
  15154. {
  15155. *reinterpret_cast<VkAccelerationStructureInfoNV*>(this) = rhs;
  15156. return *this;
  15157. }
  15158. AccelerationStructureInfoNV & setPNext( const void* pNext_ )
  15159. {
  15160. pNext = pNext_;
  15161. return *this;
  15162. }
  15163. AccelerationStructureInfoNV & setType( AccelerationStructureTypeNV type_ )
  15164. {
  15165. type = type_;
  15166. return *this;
  15167. }
  15168. AccelerationStructureInfoNV & setFlags( BuildAccelerationStructureFlagsNV flags_ )
  15169. {
  15170. flags = flags_;
  15171. return *this;
  15172. }
  15173. AccelerationStructureInfoNV & setInstanceCount( uint32_t instanceCount_ )
  15174. {
  15175. instanceCount = instanceCount_;
  15176. return *this;
  15177. }
  15178. AccelerationStructureInfoNV & setGeometryCount( uint32_t geometryCount_ )
  15179. {
  15180. geometryCount = geometryCount_;
  15181. return *this;
  15182. }
  15183. AccelerationStructureInfoNV & setPGeometries( const GeometryNV* pGeometries_ )
  15184. {
  15185. pGeometries = pGeometries_;
  15186. return *this;
  15187. }
  15188. operator VkAccelerationStructureInfoNV const&() const
  15189. {
  15190. return *reinterpret_cast<const VkAccelerationStructureInfoNV*>( this );
  15191. }
  15192. operator VkAccelerationStructureInfoNV &()
  15193. {
  15194. return *reinterpret_cast<VkAccelerationStructureInfoNV*>( this );
  15195. }
  15196. bool operator==( AccelerationStructureInfoNV const& rhs ) const
  15197. {
  15198. return ( sType == rhs.sType )
  15199. && ( pNext == rhs.pNext )
  15200. && ( type == rhs.type )
  15201. && ( flags == rhs.flags )
  15202. && ( instanceCount == rhs.instanceCount )
  15203. && ( geometryCount == rhs.geometryCount )
  15204. && ( pGeometries == rhs.pGeometries );
  15205. }
  15206. bool operator!=( AccelerationStructureInfoNV const& rhs ) const
  15207. {
  15208. return !operator==( rhs );
  15209. }
  15210. private:
  15211. StructureType sType = StructureType::eAccelerationStructureInfoNV;
  15212. public:
  15213. const void* pNext = nullptr;
  15214. AccelerationStructureTypeNV type;
  15215. BuildAccelerationStructureFlagsNV flags;
  15216. uint32_t instanceCount;
  15217. uint32_t geometryCount;
  15218. const GeometryNV* pGeometries;
  15219. };
  15220. static_assert( sizeof( AccelerationStructureInfoNV ) == sizeof( VkAccelerationStructureInfoNV ), "struct and wrapper have different size!" );
  15221. struct AccelerationStructureCreateInfoNV
  15222. {
  15223. AccelerationStructureCreateInfoNV( DeviceSize compactedSize_ = 0,
  15224. AccelerationStructureInfoNV info_ = AccelerationStructureInfoNV() )
  15225. : compactedSize( compactedSize_ )
  15226. , info( info_ )
  15227. {}
  15228. AccelerationStructureCreateInfoNV( VkAccelerationStructureCreateInfoNV const & rhs )
  15229. {
  15230. *reinterpret_cast<VkAccelerationStructureCreateInfoNV*>(this) = rhs;
  15231. }
  15232. AccelerationStructureCreateInfoNV& operator=( VkAccelerationStructureCreateInfoNV const & rhs )
  15233. {
  15234. *reinterpret_cast<VkAccelerationStructureCreateInfoNV*>(this) = rhs;
  15235. return *this;
  15236. }
  15237. AccelerationStructureCreateInfoNV & setPNext( const void* pNext_ )
  15238. {
  15239. pNext = pNext_;
  15240. return *this;
  15241. }
  15242. AccelerationStructureCreateInfoNV & setCompactedSize( DeviceSize compactedSize_ )
  15243. {
  15244. compactedSize = compactedSize_;
  15245. return *this;
  15246. }
  15247. AccelerationStructureCreateInfoNV & setInfo( AccelerationStructureInfoNV info_ )
  15248. {
  15249. info = info_;
  15250. return *this;
  15251. }
  15252. operator VkAccelerationStructureCreateInfoNV const&() const
  15253. {
  15254. return *reinterpret_cast<const VkAccelerationStructureCreateInfoNV*>( this );
  15255. }
  15256. operator VkAccelerationStructureCreateInfoNV &()
  15257. {
  15258. return *reinterpret_cast<VkAccelerationStructureCreateInfoNV*>( this );
  15259. }
  15260. bool operator==( AccelerationStructureCreateInfoNV const& rhs ) const
  15261. {
  15262. return ( sType == rhs.sType )
  15263. && ( pNext == rhs.pNext )
  15264. && ( compactedSize == rhs.compactedSize )
  15265. && ( info == rhs.info );
  15266. }
  15267. bool operator!=( AccelerationStructureCreateInfoNV const& rhs ) const
  15268. {
  15269. return !operator==( rhs );
  15270. }
  15271. private:
  15272. StructureType sType = StructureType::eAccelerationStructureCreateInfoNV;
  15273. public:
  15274. const void* pNext = nullptr;
  15275. DeviceSize compactedSize;
  15276. AccelerationStructureInfoNV info;
  15277. };
  15278. static_assert( sizeof( AccelerationStructureCreateInfoNV ) == sizeof( VkAccelerationStructureCreateInfoNV ), "struct and wrapper have different size!" );
  15279. struct AccelerationStructureMemoryRequirementsInfoNV
  15280. {
  15281. AccelerationStructureMemoryRequirementsInfoNV( AccelerationStructureMemoryRequirementsTypeNV type_ = AccelerationStructureMemoryRequirementsTypeNV::eObject,
  15282. AccelerationStructureNV accelerationStructure_ = AccelerationStructureNV() )
  15283. : type( type_ )
  15284. , accelerationStructure( accelerationStructure_ )
  15285. {}
  15286. AccelerationStructureMemoryRequirementsInfoNV( VkAccelerationStructureMemoryRequirementsInfoNV const & rhs )
  15287. {
  15288. *reinterpret_cast<VkAccelerationStructureMemoryRequirementsInfoNV*>(this) = rhs;
  15289. }
  15290. AccelerationStructureMemoryRequirementsInfoNV& operator=( VkAccelerationStructureMemoryRequirementsInfoNV const & rhs )
  15291. {
  15292. *reinterpret_cast<VkAccelerationStructureMemoryRequirementsInfoNV*>(this) = rhs;
  15293. return *this;
  15294. }
  15295. AccelerationStructureMemoryRequirementsInfoNV & setPNext( const void* pNext_ )
  15296. {
  15297. pNext = pNext_;
  15298. return *this;
  15299. }
  15300. AccelerationStructureMemoryRequirementsInfoNV & setType( AccelerationStructureMemoryRequirementsTypeNV type_ )
  15301. {
  15302. type = type_;
  15303. return *this;
  15304. }
  15305. AccelerationStructureMemoryRequirementsInfoNV & setAccelerationStructure( AccelerationStructureNV accelerationStructure_ )
  15306. {
  15307. accelerationStructure = accelerationStructure_;
  15308. return *this;
  15309. }
  15310. operator VkAccelerationStructureMemoryRequirementsInfoNV const&() const
  15311. {
  15312. return *reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNV*>( this );
  15313. }
  15314. operator VkAccelerationStructureMemoryRequirementsInfoNV &()
  15315. {
  15316. return *reinterpret_cast<VkAccelerationStructureMemoryRequirementsInfoNV*>( this );
  15317. }
  15318. bool operator==( AccelerationStructureMemoryRequirementsInfoNV const& rhs ) const
  15319. {
  15320. return ( sType == rhs.sType )
  15321. && ( pNext == rhs.pNext )
  15322. && ( type == rhs.type )
  15323. && ( accelerationStructure == rhs.accelerationStructure );
  15324. }
  15325. bool operator!=( AccelerationStructureMemoryRequirementsInfoNV const& rhs ) const
  15326. {
  15327. return !operator==( rhs );
  15328. }
  15329. private:
  15330. StructureType sType = StructureType::eAccelerationStructureMemoryRequirementsInfoNV;
  15331. public:
  15332. const void* pNext = nullptr;
  15333. AccelerationStructureMemoryRequirementsTypeNV type;
  15334. AccelerationStructureNV accelerationStructure;
  15335. };
  15336. static_assert( sizeof( AccelerationStructureMemoryRequirementsInfoNV ) == sizeof( VkAccelerationStructureMemoryRequirementsInfoNV ), "struct and wrapper have different size!" );
  15337. struct AcquireNextImageInfoKHR
  15338. {
  15339. AcquireNextImageInfoKHR( SwapchainKHR swapchain_ = SwapchainKHR(),
  15340. uint64_t timeout_ = 0,
  15341. Semaphore semaphore_ = Semaphore(),
  15342. Fence fence_ = Fence(),
  15343. uint32_t deviceMask_ = 0 )
  15344. : swapchain( swapchain_ )
  15345. , timeout( timeout_ )
  15346. , semaphore( semaphore_ )
  15347. , fence( fence_ )
  15348. , deviceMask( deviceMask_ )
  15349. {}
  15350. AcquireNextImageInfoKHR( VkAcquireNextImageInfoKHR const & rhs )
  15351. {
  15352. *reinterpret_cast<VkAcquireNextImageInfoKHR*>(this) = rhs;
  15353. }
  15354. AcquireNextImageInfoKHR& operator=( VkAcquireNextImageInfoKHR const & rhs )
  15355. {
  15356. *reinterpret_cast<VkAcquireNextImageInfoKHR*>(this) = rhs;
  15357. return *this;
  15358. }
  15359. AcquireNextImageInfoKHR & setPNext( const void* pNext_ )
  15360. {
  15361. pNext = pNext_;
  15362. return *this;
  15363. }
  15364. AcquireNextImageInfoKHR & setSwapchain( SwapchainKHR swapchain_ )
  15365. {
  15366. swapchain = swapchain_;
  15367. return *this;
  15368. }
  15369. AcquireNextImageInfoKHR & setTimeout( uint64_t timeout_ )
  15370. {
  15371. timeout = timeout_;
  15372. return *this;
  15373. }
  15374. AcquireNextImageInfoKHR & setSemaphore( Semaphore semaphore_ )
  15375. {
  15376. semaphore = semaphore_;
  15377. return *this;
  15378. }
  15379. AcquireNextImageInfoKHR & setFence( Fence fence_ )
  15380. {
  15381. fence = fence_;
  15382. return *this;
  15383. }
  15384. AcquireNextImageInfoKHR & setDeviceMask( uint32_t deviceMask_ )
  15385. {
  15386. deviceMask = deviceMask_;
  15387. return *this;
  15388. }
  15389. operator VkAcquireNextImageInfoKHR const&() const
  15390. {
  15391. return *reinterpret_cast<const VkAcquireNextImageInfoKHR*>( this );
  15392. }
  15393. operator VkAcquireNextImageInfoKHR &()
  15394. {
  15395. return *reinterpret_cast<VkAcquireNextImageInfoKHR*>( this );
  15396. }
  15397. bool operator==( AcquireNextImageInfoKHR const& rhs ) const
  15398. {
  15399. return ( sType == rhs.sType )
  15400. && ( pNext == rhs.pNext )
  15401. && ( swapchain == rhs.swapchain )
  15402. && ( timeout == rhs.timeout )
  15403. && ( semaphore == rhs.semaphore )
  15404. && ( fence == rhs.fence )
  15405. && ( deviceMask == rhs.deviceMask );
  15406. }
  15407. bool operator!=( AcquireNextImageInfoKHR const& rhs ) const
  15408. {
  15409. return !operator==( rhs );
  15410. }
  15411. private:
  15412. StructureType sType = StructureType::eAcquireNextImageInfoKHR;
  15413. public:
  15414. const void* pNext = nullptr;
  15415. SwapchainKHR swapchain;
  15416. uint64_t timeout;
  15417. Semaphore semaphore;
  15418. Fence fence;
  15419. uint32_t deviceMask;
  15420. };
  15421. static_assert( sizeof( AcquireNextImageInfoKHR ) == sizeof( VkAcquireNextImageInfoKHR ), "struct and wrapper have different size!" );
  15422. struct AllocationCallbacks
  15423. {
  15424. AllocationCallbacks( void* pUserData_ = nullptr,
  15425. PFN_vkAllocationFunction pfnAllocation_ = nullptr,
  15426. PFN_vkReallocationFunction pfnReallocation_ = nullptr,
  15427. PFN_vkFreeFunction pfnFree_ = nullptr,
  15428. PFN_vkInternalAllocationNotification pfnInternalAllocation_ = nullptr,
  15429. PFN_vkInternalFreeNotification pfnInternalFree_ = nullptr )
  15430. : pUserData( pUserData_ )
  15431. , pfnAllocation( pfnAllocation_ )
  15432. , pfnReallocation( pfnReallocation_ )
  15433. , pfnFree( pfnFree_ )
  15434. , pfnInternalAllocation( pfnInternalAllocation_ )
  15435. , pfnInternalFree( pfnInternalFree_ )
  15436. {}
  15437. AllocationCallbacks( VkAllocationCallbacks const & rhs )
  15438. {
  15439. *reinterpret_cast<VkAllocationCallbacks*>(this) = rhs;
  15440. }
  15441. AllocationCallbacks& operator=( VkAllocationCallbacks const & rhs )
  15442. {
  15443. *reinterpret_cast<VkAllocationCallbacks*>(this) = rhs;
  15444. return *this;
  15445. }
  15446. AllocationCallbacks & setPUserData( void* pUserData_ )
  15447. {
  15448. pUserData = pUserData_;
  15449. return *this;
  15450. }
  15451. AllocationCallbacks & setPfnAllocation( PFN_vkAllocationFunction pfnAllocation_ )
  15452. {
  15453. pfnAllocation = pfnAllocation_;
  15454. return *this;
  15455. }
  15456. AllocationCallbacks & setPfnReallocation( PFN_vkReallocationFunction pfnReallocation_ )
  15457. {
  15458. pfnReallocation = pfnReallocation_;
  15459. return *this;
  15460. }
  15461. AllocationCallbacks & setPfnFree( PFN_vkFreeFunction pfnFree_ )
  15462. {
  15463. pfnFree = pfnFree_;
  15464. return *this;
  15465. }
  15466. AllocationCallbacks & setPfnInternalAllocation( PFN_vkInternalAllocationNotification pfnInternalAllocation_ )
  15467. {
  15468. pfnInternalAllocation = pfnInternalAllocation_;
  15469. return *this;
  15470. }
  15471. AllocationCallbacks & setPfnInternalFree( PFN_vkInternalFreeNotification pfnInternalFree_ )
  15472. {
  15473. pfnInternalFree = pfnInternalFree_;
  15474. return *this;
  15475. }
  15476. operator VkAllocationCallbacks const&() const
  15477. {
  15478. return *reinterpret_cast<const VkAllocationCallbacks*>( this );
  15479. }
  15480. operator VkAllocationCallbacks &()
  15481. {
  15482. return *reinterpret_cast<VkAllocationCallbacks*>( this );
  15483. }
  15484. bool operator==( AllocationCallbacks const& rhs ) const
  15485. {
  15486. return ( pUserData == rhs.pUserData )
  15487. && ( pfnAllocation == rhs.pfnAllocation )
  15488. && ( pfnReallocation == rhs.pfnReallocation )
  15489. && ( pfnFree == rhs.pfnFree )
  15490. && ( pfnInternalAllocation == rhs.pfnInternalAllocation )
  15491. && ( pfnInternalFree == rhs.pfnInternalFree );
  15492. }
  15493. bool operator!=( AllocationCallbacks const& rhs ) const
  15494. {
  15495. return !operator==( rhs );
  15496. }
  15497. void* pUserData;
  15498. PFN_vkAllocationFunction pfnAllocation;
  15499. PFN_vkReallocationFunction pfnReallocation;
  15500. PFN_vkFreeFunction pfnFree;
  15501. PFN_vkInternalAllocationNotification pfnInternalAllocation;
  15502. PFN_vkInternalFreeNotification pfnInternalFree;
  15503. };
  15504. static_assert( sizeof( AllocationCallbacks ) == sizeof( VkAllocationCallbacks ), "struct and wrapper have different size!" );
  15505. struct ComponentMapping
  15506. {
  15507. ComponentMapping( ComponentSwizzle r_ = ComponentSwizzle::eIdentity,
  15508. ComponentSwizzle g_ = ComponentSwizzle::eIdentity,
  15509. ComponentSwizzle b_ = ComponentSwizzle::eIdentity,
  15510. ComponentSwizzle a_ = ComponentSwizzle::eIdentity )
  15511. : r( r_ )
  15512. , g( g_ )
  15513. , b( b_ )
  15514. , a( a_ )
  15515. {}
  15516. ComponentMapping( VkComponentMapping const & rhs )
  15517. {
  15518. *reinterpret_cast<VkComponentMapping*>(this) = rhs;
  15519. }
  15520. ComponentMapping& operator=( VkComponentMapping const & rhs )
  15521. {
  15522. *reinterpret_cast<VkComponentMapping*>(this) = rhs;
  15523. return *this;
  15524. }
  15525. ComponentMapping & setR( ComponentSwizzle r_ )
  15526. {
  15527. r = r_;
  15528. return *this;
  15529. }
  15530. ComponentMapping & setG( ComponentSwizzle g_ )
  15531. {
  15532. g = g_;
  15533. return *this;
  15534. }
  15535. ComponentMapping & setB( ComponentSwizzle b_ )
  15536. {
  15537. b = b_;
  15538. return *this;
  15539. }
  15540. ComponentMapping & setA( ComponentSwizzle a_ )
  15541. {
  15542. a = a_;
  15543. return *this;
  15544. }
  15545. operator VkComponentMapping const&() const
  15546. {
  15547. return *reinterpret_cast<const VkComponentMapping*>( this );
  15548. }
  15549. operator VkComponentMapping &()
  15550. {
  15551. return *reinterpret_cast<VkComponentMapping*>( this );
  15552. }
  15553. bool operator==( ComponentMapping const& rhs ) const
  15554. {
  15555. return ( r == rhs.r )
  15556. && ( g == rhs.g )
  15557. && ( b == rhs.b )
  15558. && ( a == rhs.a );
  15559. }
  15560. bool operator!=( ComponentMapping const& rhs ) const
  15561. {
  15562. return !operator==( rhs );
  15563. }
  15564. ComponentSwizzle r;
  15565. ComponentSwizzle g;
  15566. ComponentSwizzle b;
  15567. ComponentSwizzle a;
  15568. };
  15569. static_assert( sizeof( ComponentMapping ) == sizeof( VkComponentMapping ), "struct and wrapper have different size!" );
  15570. #ifdef VK_USE_PLATFORM_ANDROID_KHR
  15571. struct AndroidHardwareBufferFormatPropertiesANDROID
  15572. {
  15573. operator VkAndroidHardwareBufferFormatPropertiesANDROID const&() const
  15574. {
  15575. return *reinterpret_cast<const VkAndroidHardwareBufferFormatPropertiesANDROID*>( this );
  15576. }
  15577. operator VkAndroidHardwareBufferFormatPropertiesANDROID &()
  15578. {
  15579. return *reinterpret_cast<VkAndroidHardwareBufferFormatPropertiesANDROID*>( this );
  15580. }
  15581. bool operator==( AndroidHardwareBufferFormatPropertiesANDROID const& rhs ) const
  15582. {
  15583. return ( sType == rhs.sType )
  15584. && ( pNext == rhs.pNext )
  15585. && ( format == rhs.format )
  15586. && ( externalFormat == rhs.externalFormat )
  15587. && ( formatFeatures == rhs.formatFeatures )
  15588. && ( samplerYcbcrConversionComponents == rhs.samplerYcbcrConversionComponents )
  15589. && ( suggestedYcbcrModel == rhs.suggestedYcbcrModel )
  15590. && ( suggestedYcbcrRange == rhs.suggestedYcbcrRange )
  15591. && ( suggestedXChromaOffset == rhs.suggestedXChromaOffset )
  15592. && ( suggestedYChromaOffset == rhs.suggestedYChromaOffset );
  15593. }
  15594. bool operator!=( AndroidHardwareBufferFormatPropertiesANDROID const& rhs ) const
  15595. {
  15596. return !operator==( rhs );
  15597. }
  15598. private:
  15599. StructureType sType = StructureType::eAndroidHardwareBufferFormatPropertiesANDROID;
  15600. public:
  15601. void* pNext = nullptr;
  15602. Format format;
  15603. uint64_t externalFormat;
  15604. FormatFeatureFlags formatFeatures;
  15605. ComponentMapping samplerYcbcrConversionComponents;
  15606. SamplerYcbcrModelConversion suggestedYcbcrModel;
  15607. SamplerYcbcrRange suggestedYcbcrRange;
  15608. ChromaLocation suggestedXChromaOffset;
  15609. ChromaLocation suggestedYChromaOffset;
  15610. };
  15611. static_assert( sizeof( AndroidHardwareBufferFormatPropertiesANDROID ) == sizeof( VkAndroidHardwareBufferFormatPropertiesANDROID ), "struct and wrapper have different size!" );
  15612. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  15613. #ifdef VK_USE_PLATFORM_ANDROID_KHR
  15614. struct AndroidHardwareBufferPropertiesANDROID
  15615. {
  15616. operator VkAndroidHardwareBufferPropertiesANDROID const&() const
  15617. {
  15618. return *reinterpret_cast<const VkAndroidHardwareBufferPropertiesANDROID*>( this );
  15619. }
  15620. operator VkAndroidHardwareBufferPropertiesANDROID &()
  15621. {
  15622. return *reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID*>( this );
  15623. }
  15624. bool operator==( AndroidHardwareBufferPropertiesANDROID const& rhs ) const
  15625. {
  15626. return ( sType == rhs.sType )
  15627. && ( pNext == rhs.pNext )
  15628. && ( allocationSize == rhs.allocationSize )
  15629. && ( memoryTypeBits == rhs.memoryTypeBits );
  15630. }
  15631. bool operator!=( AndroidHardwareBufferPropertiesANDROID const& rhs ) const
  15632. {
  15633. return !operator==( rhs );
  15634. }
  15635. private:
  15636. StructureType sType = StructureType::eAndroidHardwareBufferPropertiesANDROID;
  15637. public:
  15638. void* pNext = nullptr;
  15639. DeviceSize allocationSize;
  15640. uint32_t memoryTypeBits;
  15641. };
  15642. static_assert( sizeof( AndroidHardwareBufferPropertiesANDROID ) == sizeof( VkAndroidHardwareBufferPropertiesANDROID ), "struct and wrapper have different size!" );
  15643. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  15644. #ifdef VK_USE_PLATFORM_ANDROID_KHR
  15645. struct AndroidHardwareBufferUsageANDROID
  15646. {
  15647. operator VkAndroidHardwareBufferUsageANDROID const&() const
  15648. {
  15649. return *reinterpret_cast<const VkAndroidHardwareBufferUsageANDROID*>( this );
  15650. }
  15651. operator VkAndroidHardwareBufferUsageANDROID &()
  15652. {
  15653. return *reinterpret_cast<VkAndroidHardwareBufferUsageANDROID*>( this );
  15654. }
  15655. bool operator==( AndroidHardwareBufferUsageANDROID const& rhs ) const
  15656. {
  15657. return ( sType == rhs.sType )
  15658. && ( pNext == rhs.pNext )
  15659. && ( androidHardwareBufferUsage == rhs.androidHardwareBufferUsage );
  15660. }
  15661. bool operator!=( AndroidHardwareBufferUsageANDROID const& rhs ) const
  15662. {
  15663. return !operator==( rhs );
  15664. }
  15665. private:
  15666. StructureType sType = StructureType::eAndroidHardwareBufferUsageANDROID;
  15667. public:
  15668. void* pNext = nullptr;
  15669. uint64_t androidHardwareBufferUsage;
  15670. };
  15671. static_assert( sizeof( AndroidHardwareBufferUsageANDROID ) == sizeof( VkAndroidHardwareBufferUsageANDROID ), "struct and wrapper have different size!" );
  15672. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  15673. #ifdef VK_USE_PLATFORM_ANDROID_KHR
  15674. struct AndroidSurfaceCreateInfoKHR
  15675. {
  15676. AndroidSurfaceCreateInfoKHR( AndroidSurfaceCreateFlagsKHR flags_ = AndroidSurfaceCreateFlagsKHR(),
  15677. struct ANativeWindow* window_ = nullptr )
  15678. : flags( flags_ )
  15679. , window( window_ )
  15680. {}
  15681. AndroidSurfaceCreateInfoKHR( VkAndroidSurfaceCreateInfoKHR const & rhs )
  15682. {
  15683. *reinterpret_cast<VkAndroidSurfaceCreateInfoKHR*>(this) = rhs;
  15684. }
  15685. AndroidSurfaceCreateInfoKHR& operator=( VkAndroidSurfaceCreateInfoKHR const & rhs )
  15686. {
  15687. *reinterpret_cast<VkAndroidSurfaceCreateInfoKHR*>(this) = rhs;
  15688. return *this;
  15689. }
  15690. AndroidSurfaceCreateInfoKHR & setPNext( const void* pNext_ )
  15691. {
  15692. pNext = pNext_;
  15693. return *this;
  15694. }
  15695. AndroidSurfaceCreateInfoKHR & setFlags( AndroidSurfaceCreateFlagsKHR flags_ )
  15696. {
  15697. flags = flags_;
  15698. return *this;
  15699. }
  15700. AndroidSurfaceCreateInfoKHR & setWindow( struct ANativeWindow* window_ )
  15701. {
  15702. window = window_;
  15703. return *this;
  15704. }
  15705. operator VkAndroidSurfaceCreateInfoKHR const&() const
  15706. {
  15707. return *reinterpret_cast<const VkAndroidSurfaceCreateInfoKHR*>( this );
  15708. }
  15709. operator VkAndroidSurfaceCreateInfoKHR &()
  15710. {
  15711. return *reinterpret_cast<VkAndroidSurfaceCreateInfoKHR*>( this );
  15712. }
  15713. bool operator==( AndroidSurfaceCreateInfoKHR const& rhs ) const
  15714. {
  15715. return ( sType == rhs.sType )
  15716. && ( pNext == rhs.pNext )
  15717. && ( flags == rhs.flags )
  15718. && ( window == rhs.window );
  15719. }
  15720. bool operator!=( AndroidSurfaceCreateInfoKHR const& rhs ) const
  15721. {
  15722. return !operator==( rhs );
  15723. }
  15724. private:
  15725. StructureType sType = StructureType::eAndroidSurfaceCreateInfoKHR;
  15726. public:
  15727. const void* pNext = nullptr;
  15728. AndroidSurfaceCreateFlagsKHR flags;
  15729. struct ANativeWindow* window;
  15730. };
  15731. static_assert( sizeof( AndroidSurfaceCreateInfoKHR ) == sizeof( VkAndroidSurfaceCreateInfoKHR ), "struct and wrapper have different size!" );
  15732. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  15733. struct ApplicationInfo
  15734. {
  15735. ApplicationInfo( const char* pApplicationName_ = nullptr,
  15736. uint32_t applicationVersion_ = 0,
  15737. const char* pEngineName_ = nullptr,
  15738. uint32_t engineVersion_ = 0,
  15739. uint32_t apiVersion_ = 0 )
  15740. : pApplicationName( pApplicationName_ )
  15741. , applicationVersion( applicationVersion_ )
  15742. , pEngineName( pEngineName_ )
  15743. , engineVersion( engineVersion_ )
  15744. , apiVersion( apiVersion_ )
  15745. {}
  15746. ApplicationInfo( VkApplicationInfo const & rhs )
  15747. {
  15748. *reinterpret_cast<VkApplicationInfo*>(this) = rhs;
  15749. }
  15750. ApplicationInfo& operator=( VkApplicationInfo const & rhs )
  15751. {
  15752. *reinterpret_cast<VkApplicationInfo*>(this) = rhs;
  15753. return *this;
  15754. }
  15755. ApplicationInfo & setPNext( const void* pNext_ )
  15756. {
  15757. pNext = pNext_;
  15758. return *this;
  15759. }
  15760. ApplicationInfo & setPApplicationName( const char* pApplicationName_ )
  15761. {
  15762. pApplicationName = pApplicationName_;
  15763. return *this;
  15764. }
  15765. ApplicationInfo & setApplicationVersion( uint32_t applicationVersion_ )
  15766. {
  15767. applicationVersion = applicationVersion_;
  15768. return *this;
  15769. }
  15770. ApplicationInfo & setPEngineName( const char* pEngineName_ )
  15771. {
  15772. pEngineName = pEngineName_;
  15773. return *this;
  15774. }
  15775. ApplicationInfo & setEngineVersion( uint32_t engineVersion_ )
  15776. {
  15777. engineVersion = engineVersion_;
  15778. return *this;
  15779. }
  15780. ApplicationInfo & setApiVersion( uint32_t apiVersion_ )
  15781. {
  15782. apiVersion = apiVersion_;
  15783. return *this;
  15784. }
  15785. operator VkApplicationInfo const&() const
  15786. {
  15787. return *reinterpret_cast<const VkApplicationInfo*>( this );
  15788. }
  15789. operator VkApplicationInfo &()
  15790. {
  15791. return *reinterpret_cast<VkApplicationInfo*>( this );
  15792. }
  15793. bool operator==( ApplicationInfo const& rhs ) const
  15794. {
  15795. return ( sType == rhs.sType )
  15796. && ( pNext == rhs.pNext )
  15797. && ( pApplicationName == rhs.pApplicationName )
  15798. && ( applicationVersion == rhs.applicationVersion )
  15799. && ( pEngineName == rhs.pEngineName )
  15800. && ( engineVersion == rhs.engineVersion )
  15801. && ( apiVersion == rhs.apiVersion );
  15802. }
  15803. bool operator!=( ApplicationInfo const& rhs ) const
  15804. {
  15805. return !operator==( rhs );
  15806. }
  15807. private:
  15808. StructureType sType = StructureType::eApplicationInfo;
  15809. public:
  15810. const void* pNext = nullptr;
  15811. const char* pApplicationName;
  15812. uint32_t applicationVersion;
  15813. const char* pEngineName;
  15814. uint32_t engineVersion;
  15815. uint32_t apiVersion;
  15816. };
  15817. static_assert( sizeof( ApplicationInfo ) == sizeof( VkApplicationInfo ), "struct and wrapper have different size!" );
  15818. struct AttachmentDescription
  15819. {
  15820. AttachmentDescription( AttachmentDescriptionFlags flags_ = AttachmentDescriptionFlags(),
  15821. Format format_ = Format::eUndefined,
  15822. SampleCountFlagBits samples_ = SampleCountFlagBits::e1,
  15823. AttachmentLoadOp loadOp_ = AttachmentLoadOp::eLoad,
  15824. AttachmentStoreOp storeOp_ = AttachmentStoreOp::eStore,
  15825. AttachmentLoadOp stencilLoadOp_ = AttachmentLoadOp::eLoad,
  15826. AttachmentStoreOp stencilStoreOp_ = AttachmentStoreOp::eStore,
  15827. ImageLayout initialLayout_ = ImageLayout::eUndefined,
  15828. ImageLayout finalLayout_ = ImageLayout::eUndefined )
  15829. : flags( flags_ )
  15830. , format( format_ )
  15831. , samples( samples_ )
  15832. , loadOp( loadOp_ )
  15833. , storeOp( storeOp_ )
  15834. , stencilLoadOp( stencilLoadOp_ )
  15835. , stencilStoreOp( stencilStoreOp_ )
  15836. , initialLayout( initialLayout_ )
  15837. , finalLayout( finalLayout_ )
  15838. {}
  15839. AttachmentDescription( VkAttachmentDescription const & rhs )
  15840. {
  15841. *reinterpret_cast<VkAttachmentDescription*>(this) = rhs;
  15842. }
  15843. AttachmentDescription& operator=( VkAttachmentDescription const & rhs )
  15844. {
  15845. *reinterpret_cast<VkAttachmentDescription*>(this) = rhs;
  15846. return *this;
  15847. }
  15848. AttachmentDescription & setFlags( AttachmentDescriptionFlags flags_ )
  15849. {
  15850. flags = flags_;
  15851. return *this;
  15852. }
  15853. AttachmentDescription & setFormat( Format format_ )
  15854. {
  15855. format = format_;
  15856. return *this;
  15857. }
  15858. AttachmentDescription & setSamples( SampleCountFlagBits samples_ )
  15859. {
  15860. samples = samples_;
  15861. return *this;
  15862. }
  15863. AttachmentDescription & setLoadOp( AttachmentLoadOp loadOp_ )
  15864. {
  15865. loadOp = loadOp_;
  15866. return *this;
  15867. }
  15868. AttachmentDescription & setStoreOp( AttachmentStoreOp storeOp_ )
  15869. {
  15870. storeOp = storeOp_;
  15871. return *this;
  15872. }
  15873. AttachmentDescription & setStencilLoadOp( AttachmentLoadOp stencilLoadOp_ )
  15874. {
  15875. stencilLoadOp = stencilLoadOp_;
  15876. return *this;
  15877. }
  15878. AttachmentDescription & setStencilStoreOp( AttachmentStoreOp stencilStoreOp_ )
  15879. {
  15880. stencilStoreOp = stencilStoreOp_;
  15881. return *this;
  15882. }
  15883. AttachmentDescription & setInitialLayout( ImageLayout initialLayout_ )
  15884. {
  15885. initialLayout = initialLayout_;
  15886. return *this;
  15887. }
  15888. AttachmentDescription & setFinalLayout( ImageLayout finalLayout_ )
  15889. {
  15890. finalLayout = finalLayout_;
  15891. return *this;
  15892. }
  15893. operator VkAttachmentDescription const&() const
  15894. {
  15895. return *reinterpret_cast<const VkAttachmentDescription*>( this );
  15896. }
  15897. operator VkAttachmentDescription &()
  15898. {
  15899. return *reinterpret_cast<VkAttachmentDescription*>( this );
  15900. }
  15901. bool operator==( AttachmentDescription const& rhs ) const
  15902. {
  15903. return ( flags == rhs.flags )
  15904. && ( format == rhs.format )
  15905. && ( samples == rhs.samples )
  15906. && ( loadOp == rhs.loadOp )
  15907. && ( storeOp == rhs.storeOp )
  15908. && ( stencilLoadOp == rhs.stencilLoadOp )
  15909. && ( stencilStoreOp == rhs.stencilStoreOp )
  15910. && ( initialLayout == rhs.initialLayout )
  15911. && ( finalLayout == rhs.finalLayout );
  15912. }
  15913. bool operator!=( AttachmentDescription const& rhs ) const
  15914. {
  15915. return !operator==( rhs );
  15916. }
  15917. AttachmentDescriptionFlags flags;
  15918. Format format;
  15919. SampleCountFlagBits samples;
  15920. AttachmentLoadOp loadOp;
  15921. AttachmentStoreOp storeOp;
  15922. AttachmentLoadOp stencilLoadOp;
  15923. AttachmentStoreOp stencilStoreOp;
  15924. ImageLayout initialLayout;
  15925. ImageLayout finalLayout;
  15926. };
  15927. static_assert( sizeof( AttachmentDescription ) == sizeof( VkAttachmentDescription ), "struct and wrapper have different size!" );
  15928. struct AttachmentDescription2KHR
  15929. {
  15930. AttachmentDescription2KHR( AttachmentDescriptionFlags flags_ = AttachmentDescriptionFlags(),
  15931. Format format_ = Format::eUndefined,
  15932. SampleCountFlagBits samples_ = SampleCountFlagBits::e1,
  15933. AttachmentLoadOp loadOp_ = AttachmentLoadOp::eLoad,
  15934. AttachmentStoreOp storeOp_ = AttachmentStoreOp::eStore,
  15935. AttachmentLoadOp stencilLoadOp_ = AttachmentLoadOp::eLoad,
  15936. AttachmentStoreOp stencilStoreOp_ = AttachmentStoreOp::eStore,
  15937. ImageLayout initialLayout_ = ImageLayout::eUndefined,
  15938. ImageLayout finalLayout_ = ImageLayout::eUndefined )
  15939. : flags( flags_ )
  15940. , format( format_ )
  15941. , samples( samples_ )
  15942. , loadOp( loadOp_ )
  15943. , storeOp( storeOp_ )
  15944. , stencilLoadOp( stencilLoadOp_ )
  15945. , stencilStoreOp( stencilStoreOp_ )
  15946. , initialLayout( initialLayout_ )
  15947. , finalLayout( finalLayout_ )
  15948. {}
  15949. AttachmentDescription2KHR( VkAttachmentDescription2KHR const & rhs )
  15950. {
  15951. *reinterpret_cast<VkAttachmentDescription2KHR*>(this) = rhs;
  15952. }
  15953. AttachmentDescription2KHR& operator=( VkAttachmentDescription2KHR const & rhs )
  15954. {
  15955. *reinterpret_cast<VkAttachmentDescription2KHR*>(this) = rhs;
  15956. return *this;
  15957. }
  15958. AttachmentDescription2KHR & setPNext( const void* pNext_ )
  15959. {
  15960. pNext = pNext_;
  15961. return *this;
  15962. }
  15963. AttachmentDescription2KHR & setFlags( AttachmentDescriptionFlags flags_ )
  15964. {
  15965. flags = flags_;
  15966. return *this;
  15967. }
  15968. AttachmentDescription2KHR & setFormat( Format format_ )
  15969. {
  15970. format = format_;
  15971. return *this;
  15972. }
  15973. AttachmentDescription2KHR & setSamples( SampleCountFlagBits samples_ )
  15974. {
  15975. samples = samples_;
  15976. return *this;
  15977. }
  15978. AttachmentDescription2KHR & setLoadOp( AttachmentLoadOp loadOp_ )
  15979. {
  15980. loadOp = loadOp_;
  15981. return *this;
  15982. }
  15983. AttachmentDescription2KHR & setStoreOp( AttachmentStoreOp storeOp_ )
  15984. {
  15985. storeOp = storeOp_;
  15986. return *this;
  15987. }
  15988. AttachmentDescription2KHR & setStencilLoadOp( AttachmentLoadOp stencilLoadOp_ )
  15989. {
  15990. stencilLoadOp = stencilLoadOp_;
  15991. return *this;
  15992. }
  15993. AttachmentDescription2KHR & setStencilStoreOp( AttachmentStoreOp stencilStoreOp_ )
  15994. {
  15995. stencilStoreOp = stencilStoreOp_;
  15996. return *this;
  15997. }
  15998. AttachmentDescription2KHR & setInitialLayout( ImageLayout initialLayout_ )
  15999. {
  16000. initialLayout = initialLayout_;
  16001. return *this;
  16002. }
  16003. AttachmentDescription2KHR & setFinalLayout( ImageLayout finalLayout_ )
  16004. {
  16005. finalLayout = finalLayout_;
  16006. return *this;
  16007. }
  16008. operator VkAttachmentDescription2KHR const&() const
  16009. {
  16010. return *reinterpret_cast<const VkAttachmentDescription2KHR*>( this );
  16011. }
  16012. operator VkAttachmentDescription2KHR &()
  16013. {
  16014. return *reinterpret_cast<VkAttachmentDescription2KHR*>( this );
  16015. }
  16016. bool operator==( AttachmentDescription2KHR const& rhs ) const
  16017. {
  16018. return ( sType == rhs.sType )
  16019. && ( pNext == rhs.pNext )
  16020. && ( flags == rhs.flags )
  16021. && ( format == rhs.format )
  16022. && ( samples == rhs.samples )
  16023. && ( loadOp == rhs.loadOp )
  16024. && ( storeOp == rhs.storeOp )
  16025. && ( stencilLoadOp == rhs.stencilLoadOp )
  16026. && ( stencilStoreOp == rhs.stencilStoreOp )
  16027. && ( initialLayout == rhs.initialLayout )
  16028. && ( finalLayout == rhs.finalLayout );
  16029. }
  16030. bool operator!=( AttachmentDescription2KHR const& rhs ) const
  16031. {
  16032. return !operator==( rhs );
  16033. }
  16034. private:
  16035. StructureType sType = StructureType::eAttachmentDescription2KHR;
  16036. public:
  16037. const void* pNext = nullptr;
  16038. AttachmentDescriptionFlags flags;
  16039. Format format;
  16040. SampleCountFlagBits samples;
  16041. AttachmentLoadOp loadOp;
  16042. AttachmentStoreOp storeOp;
  16043. AttachmentLoadOp stencilLoadOp;
  16044. AttachmentStoreOp stencilStoreOp;
  16045. ImageLayout initialLayout;
  16046. ImageLayout finalLayout;
  16047. };
  16048. static_assert( sizeof( AttachmentDescription2KHR ) == sizeof( VkAttachmentDescription2KHR ), "struct and wrapper have different size!" );
  16049. struct AttachmentReference
  16050. {
  16051. AttachmentReference( uint32_t attachment_ = 0,
  16052. ImageLayout layout_ = ImageLayout::eUndefined )
  16053. : attachment( attachment_ )
  16054. , layout( layout_ )
  16055. {}
  16056. AttachmentReference( VkAttachmentReference const & rhs )
  16057. {
  16058. *reinterpret_cast<VkAttachmentReference*>(this) = rhs;
  16059. }
  16060. AttachmentReference& operator=( VkAttachmentReference const & rhs )
  16061. {
  16062. *reinterpret_cast<VkAttachmentReference*>(this) = rhs;
  16063. return *this;
  16064. }
  16065. AttachmentReference & setAttachment( uint32_t attachment_ )
  16066. {
  16067. attachment = attachment_;
  16068. return *this;
  16069. }
  16070. AttachmentReference & setLayout( ImageLayout layout_ )
  16071. {
  16072. layout = layout_;
  16073. return *this;
  16074. }
  16075. operator VkAttachmentReference const&() const
  16076. {
  16077. return *reinterpret_cast<const VkAttachmentReference*>( this );
  16078. }
  16079. operator VkAttachmentReference &()
  16080. {
  16081. return *reinterpret_cast<VkAttachmentReference*>( this );
  16082. }
  16083. bool operator==( AttachmentReference const& rhs ) const
  16084. {
  16085. return ( attachment == rhs.attachment )
  16086. && ( layout == rhs.layout );
  16087. }
  16088. bool operator!=( AttachmentReference const& rhs ) const
  16089. {
  16090. return !operator==( rhs );
  16091. }
  16092. uint32_t attachment;
  16093. ImageLayout layout;
  16094. };
  16095. static_assert( sizeof( AttachmentReference ) == sizeof( VkAttachmentReference ), "struct and wrapper have different size!" );
  16096. struct AttachmentReference2KHR
  16097. {
  16098. AttachmentReference2KHR( uint32_t attachment_ = 0,
  16099. ImageLayout layout_ = ImageLayout::eUndefined,
  16100. ImageAspectFlags aspectMask_ = ImageAspectFlags() )
  16101. : attachment( attachment_ )
  16102. , layout( layout_ )
  16103. , aspectMask( aspectMask_ )
  16104. {}
  16105. AttachmentReference2KHR( VkAttachmentReference2KHR const & rhs )
  16106. {
  16107. *reinterpret_cast<VkAttachmentReference2KHR*>(this) = rhs;
  16108. }
  16109. AttachmentReference2KHR& operator=( VkAttachmentReference2KHR const & rhs )
  16110. {
  16111. *reinterpret_cast<VkAttachmentReference2KHR*>(this) = rhs;
  16112. return *this;
  16113. }
  16114. AttachmentReference2KHR & setPNext( const void* pNext_ )
  16115. {
  16116. pNext = pNext_;
  16117. return *this;
  16118. }
  16119. AttachmentReference2KHR & setAttachment( uint32_t attachment_ )
  16120. {
  16121. attachment = attachment_;
  16122. return *this;
  16123. }
  16124. AttachmentReference2KHR & setLayout( ImageLayout layout_ )
  16125. {
  16126. layout = layout_;
  16127. return *this;
  16128. }
  16129. AttachmentReference2KHR & setAspectMask( ImageAspectFlags aspectMask_ )
  16130. {
  16131. aspectMask = aspectMask_;
  16132. return *this;
  16133. }
  16134. operator VkAttachmentReference2KHR const&() const
  16135. {
  16136. return *reinterpret_cast<const VkAttachmentReference2KHR*>( this );
  16137. }
  16138. operator VkAttachmentReference2KHR &()
  16139. {
  16140. return *reinterpret_cast<VkAttachmentReference2KHR*>( this );
  16141. }
  16142. bool operator==( AttachmentReference2KHR const& rhs ) const
  16143. {
  16144. return ( sType == rhs.sType )
  16145. && ( pNext == rhs.pNext )
  16146. && ( attachment == rhs.attachment )
  16147. && ( layout == rhs.layout )
  16148. && ( aspectMask == rhs.aspectMask );
  16149. }
  16150. bool operator!=( AttachmentReference2KHR const& rhs ) const
  16151. {
  16152. return !operator==( rhs );
  16153. }
  16154. private:
  16155. StructureType sType = StructureType::eAttachmentReference2KHR;
  16156. public:
  16157. const void* pNext = nullptr;
  16158. uint32_t attachment;
  16159. ImageLayout layout;
  16160. ImageAspectFlags aspectMask;
  16161. };
  16162. static_assert( sizeof( AttachmentReference2KHR ) == sizeof( VkAttachmentReference2KHR ), "struct and wrapper have different size!" );
  16163. struct Extent2D
  16164. {
  16165. Extent2D( uint32_t width_ = 0,
  16166. uint32_t height_ = 0 )
  16167. : width( width_ )
  16168. , height( height_ )
  16169. {}
  16170. Extent2D( VkExtent2D const & rhs )
  16171. {
  16172. *reinterpret_cast<VkExtent2D*>(this) = rhs;
  16173. }
  16174. Extent2D& operator=( VkExtent2D const & rhs )
  16175. {
  16176. *reinterpret_cast<VkExtent2D*>(this) = rhs;
  16177. return *this;
  16178. }
  16179. Extent2D & setWidth( uint32_t width_ )
  16180. {
  16181. width = width_;
  16182. return *this;
  16183. }
  16184. Extent2D & setHeight( uint32_t height_ )
  16185. {
  16186. height = height_;
  16187. return *this;
  16188. }
  16189. operator VkExtent2D const&() const
  16190. {
  16191. return *reinterpret_cast<const VkExtent2D*>( this );
  16192. }
  16193. operator VkExtent2D &()
  16194. {
  16195. return *reinterpret_cast<VkExtent2D*>( this );
  16196. }
  16197. bool operator==( Extent2D const& rhs ) const
  16198. {
  16199. return ( width == rhs.width )
  16200. && ( height == rhs.height );
  16201. }
  16202. bool operator!=( Extent2D const& rhs ) const
  16203. {
  16204. return !operator==( rhs );
  16205. }
  16206. uint32_t width;
  16207. uint32_t height;
  16208. };
  16209. static_assert( sizeof( Extent2D ) == sizeof( VkExtent2D ), "struct and wrapper have different size!" );
  16210. struct SampleLocationEXT
  16211. {
  16212. SampleLocationEXT( float x_ = 0,
  16213. float y_ = 0 )
  16214. : x( x_ )
  16215. , y( y_ )
  16216. {}
  16217. SampleLocationEXT( VkSampleLocationEXT const & rhs )
  16218. {
  16219. *reinterpret_cast<VkSampleLocationEXT*>(this) = rhs;
  16220. }
  16221. SampleLocationEXT& operator=( VkSampleLocationEXT const & rhs )
  16222. {
  16223. *reinterpret_cast<VkSampleLocationEXT*>(this) = rhs;
  16224. return *this;
  16225. }
  16226. SampleLocationEXT & setX( float x_ )
  16227. {
  16228. x = x_;
  16229. return *this;
  16230. }
  16231. SampleLocationEXT & setY( float y_ )
  16232. {
  16233. y = y_;
  16234. return *this;
  16235. }
  16236. operator VkSampleLocationEXT const&() const
  16237. {
  16238. return *reinterpret_cast<const VkSampleLocationEXT*>( this );
  16239. }
  16240. operator VkSampleLocationEXT &()
  16241. {
  16242. return *reinterpret_cast<VkSampleLocationEXT*>( this );
  16243. }
  16244. bool operator==( SampleLocationEXT const& rhs ) const
  16245. {
  16246. return ( x == rhs.x )
  16247. && ( y == rhs.y );
  16248. }
  16249. bool operator!=( SampleLocationEXT const& rhs ) const
  16250. {
  16251. return !operator==( rhs );
  16252. }
  16253. float x;
  16254. float y;
  16255. };
  16256. static_assert( sizeof( SampleLocationEXT ) == sizeof( VkSampleLocationEXT ), "struct and wrapper have different size!" );
  16257. struct SampleLocationsInfoEXT
  16258. {
  16259. SampleLocationsInfoEXT( SampleCountFlagBits sampleLocationsPerPixel_ = SampleCountFlagBits::e1,
  16260. Extent2D sampleLocationGridSize_ = Extent2D(),
  16261. uint32_t sampleLocationsCount_ = 0,
  16262. const SampleLocationEXT* pSampleLocations_ = nullptr )
  16263. : sampleLocationsPerPixel( sampleLocationsPerPixel_ )
  16264. , sampleLocationGridSize( sampleLocationGridSize_ )
  16265. , sampleLocationsCount( sampleLocationsCount_ )
  16266. , pSampleLocations( pSampleLocations_ )
  16267. {}
  16268. SampleLocationsInfoEXT( VkSampleLocationsInfoEXT const & rhs )
  16269. {
  16270. *reinterpret_cast<VkSampleLocationsInfoEXT*>(this) = rhs;
  16271. }
  16272. SampleLocationsInfoEXT& operator=( VkSampleLocationsInfoEXT const & rhs )
  16273. {
  16274. *reinterpret_cast<VkSampleLocationsInfoEXT*>(this) = rhs;
  16275. return *this;
  16276. }
  16277. SampleLocationsInfoEXT & setPNext( const void* pNext_ )
  16278. {
  16279. pNext = pNext_;
  16280. return *this;
  16281. }
  16282. SampleLocationsInfoEXT & setSampleLocationsPerPixel( SampleCountFlagBits sampleLocationsPerPixel_ )
  16283. {
  16284. sampleLocationsPerPixel = sampleLocationsPerPixel_;
  16285. return *this;
  16286. }
  16287. SampleLocationsInfoEXT & setSampleLocationGridSize( Extent2D sampleLocationGridSize_ )
  16288. {
  16289. sampleLocationGridSize = sampleLocationGridSize_;
  16290. return *this;
  16291. }
  16292. SampleLocationsInfoEXT & setSampleLocationsCount( uint32_t sampleLocationsCount_ )
  16293. {
  16294. sampleLocationsCount = sampleLocationsCount_;
  16295. return *this;
  16296. }
  16297. SampleLocationsInfoEXT & setPSampleLocations( const SampleLocationEXT* pSampleLocations_ )
  16298. {
  16299. pSampleLocations = pSampleLocations_;
  16300. return *this;
  16301. }
  16302. operator VkSampleLocationsInfoEXT const&() const
  16303. {
  16304. return *reinterpret_cast<const VkSampleLocationsInfoEXT*>( this );
  16305. }
  16306. operator VkSampleLocationsInfoEXT &()
  16307. {
  16308. return *reinterpret_cast<VkSampleLocationsInfoEXT*>( this );
  16309. }
  16310. bool operator==( SampleLocationsInfoEXT const& rhs ) const
  16311. {
  16312. return ( sType == rhs.sType )
  16313. && ( pNext == rhs.pNext )
  16314. && ( sampleLocationsPerPixel == rhs.sampleLocationsPerPixel )
  16315. && ( sampleLocationGridSize == rhs.sampleLocationGridSize )
  16316. && ( sampleLocationsCount == rhs.sampleLocationsCount )
  16317. && ( pSampleLocations == rhs.pSampleLocations );
  16318. }
  16319. bool operator!=( SampleLocationsInfoEXT const& rhs ) const
  16320. {
  16321. return !operator==( rhs );
  16322. }
  16323. private:
  16324. StructureType sType = StructureType::eSampleLocationsInfoEXT;
  16325. public:
  16326. const void* pNext = nullptr;
  16327. SampleCountFlagBits sampleLocationsPerPixel;
  16328. Extent2D sampleLocationGridSize;
  16329. uint32_t sampleLocationsCount;
  16330. const SampleLocationEXT* pSampleLocations;
  16331. };
  16332. static_assert( sizeof( SampleLocationsInfoEXT ) == sizeof( VkSampleLocationsInfoEXT ), "struct and wrapper have different size!" );
  16333. struct AttachmentSampleLocationsEXT
  16334. {
  16335. AttachmentSampleLocationsEXT( uint32_t attachmentIndex_ = 0,
  16336. SampleLocationsInfoEXT sampleLocationsInfo_ = SampleLocationsInfoEXT() )
  16337. : attachmentIndex( attachmentIndex_ )
  16338. , sampleLocationsInfo( sampleLocationsInfo_ )
  16339. {}
  16340. AttachmentSampleLocationsEXT( VkAttachmentSampleLocationsEXT const & rhs )
  16341. {
  16342. *reinterpret_cast<VkAttachmentSampleLocationsEXT*>(this) = rhs;
  16343. }
  16344. AttachmentSampleLocationsEXT& operator=( VkAttachmentSampleLocationsEXT const & rhs )
  16345. {
  16346. *reinterpret_cast<VkAttachmentSampleLocationsEXT*>(this) = rhs;
  16347. return *this;
  16348. }
  16349. AttachmentSampleLocationsEXT & setAttachmentIndex( uint32_t attachmentIndex_ )
  16350. {
  16351. attachmentIndex = attachmentIndex_;
  16352. return *this;
  16353. }
  16354. AttachmentSampleLocationsEXT & setSampleLocationsInfo( SampleLocationsInfoEXT sampleLocationsInfo_ )
  16355. {
  16356. sampleLocationsInfo = sampleLocationsInfo_;
  16357. return *this;
  16358. }
  16359. operator VkAttachmentSampleLocationsEXT const&() const
  16360. {
  16361. return *reinterpret_cast<const VkAttachmentSampleLocationsEXT*>( this );
  16362. }
  16363. operator VkAttachmentSampleLocationsEXT &()
  16364. {
  16365. return *reinterpret_cast<VkAttachmentSampleLocationsEXT*>( this );
  16366. }
  16367. bool operator==( AttachmentSampleLocationsEXT const& rhs ) const
  16368. {
  16369. return ( attachmentIndex == rhs.attachmentIndex )
  16370. && ( sampleLocationsInfo == rhs.sampleLocationsInfo );
  16371. }
  16372. bool operator!=( AttachmentSampleLocationsEXT const& rhs ) const
  16373. {
  16374. return !operator==( rhs );
  16375. }
  16376. uint32_t attachmentIndex;
  16377. SampleLocationsInfoEXT sampleLocationsInfo;
  16378. };
  16379. static_assert( sizeof( AttachmentSampleLocationsEXT ) == sizeof( VkAttachmentSampleLocationsEXT ), "struct and wrapper have different size!" );
  16380. struct BaseInStructure
  16381. {
  16382. BaseInStructure( )
  16383. {}
  16384. BaseInStructure( VkBaseInStructure const & rhs )
  16385. {
  16386. *reinterpret_cast<VkBaseInStructure*>(this) = rhs;
  16387. }
  16388. BaseInStructure& operator=( VkBaseInStructure const & rhs )
  16389. {
  16390. *reinterpret_cast<VkBaseInStructure*>(this) = rhs;
  16391. return *this;
  16392. }
  16393. BaseInStructure & setPNext( const struct BaseInStructure* pNext_ )
  16394. {
  16395. pNext = pNext_;
  16396. return *this;
  16397. }
  16398. operator VkBaseInStructure const&() const
  16399. {
  16400. return *reinterpret_cast<const VkBaseInStructure*>( this );
  16401. }
  16402. operator VkBaseInStructure &()
  16403. {
  16404. return *reinterpret_cast<VkBaseInStructure*>( this );
  16405. }
  16406. bool operator==( BaseInStructure const& rhs ) const
  16407. {
  16408. return ( sType == rhs.sType )
  16409. && ( pNext == rhs.pNext );
  16410. }
  16411. bool operator!=( BaseInStructure const& rhs ) const
  16412. {
  16413. return !operator==( rhs );
  16414. }
  16415. StructureType sType;
  16416. const struct BaseInStructure* pNext = nullptr;
  16417. };
  16418. static_assert( sizeof( BaseInStructure ) == sizeof( VkBaseInStructure ), "struct and wrapper have different size!" );
  16419. struct BaseOutStructure
  16420. {
  16421. BaseOutStructure( )
  16422. {}
  16423. BaseOutStructure( VkBaseOutStructure const & rhs )
  16424. {
  16425. *reinterpret_cast<VkBaseOutStructure*>(this) = rhs;
  16426. }
  16427. BaseOutStructure& operator=( VkBaseOutStructure const & rhs )
  16428. {
  16429. *reinterpret_cast<VkBaseOutStructure*>(this) = rhs;
  16430. return *this;
  16431. }
  16432. BaseOutStructure & setPNext( struct BaseOutStructure* pNext_ )
  16433. {
  16434. pNext = pNext_;
  16435. return *this;
  16436. }
  16437. operator VkBaseOutStructure const&() const
  16438. {
  16439. return *reinterpret_cast<const VkBaseOutStructure*>( this );
  16440. }
  16441. operator VkBaseOutStructure &()
  16442. {
  16443. return *reinterpret_cast<VkBaseOutStructure*>( this );
  16444. }
  16445. bool operator==( BaseOutStructure const& rhs ) const
  16446. {
  16447. return ( sType == rhs.sType )
  16448. && ( pNext == rhs.pNext );
  16449. }
  16450. bool operator!=( BaseOutStructure const& rhs ) const
  16451. {
  16452. return !operator==( rhs );
  16453. }
  16454. StructureType sType;
  16455. struct BaseOutStructure* pNext = nullptr;
  16456. };
  16457. static_assert( sizeof( BaseOutStructure ) == sizeof( VkBaseOutStructure ), "struct and wrapper have different size!" );
  16458. struct BindAccelerationStructureMemoryInfoNV
  16459. {
  16460. BindAccelerationStructureMemoryInfoNV( AccelerationStructureNV accelerationStructure_ = AccelerationStructureNV(),
  16461. DeviceMemory memory_ = DeviceMemory(),
  16462. DeviceSize memoryOffset_ = 0,
  16463. uint32_t deviceIndexCount_ = 0,
  16464. const uint32_t* pDeviceIndices_ = nullptr )
  16465. : accelerationStructure( accelerationStructure_ )
  16466. , memory( memory_ )
  16467. , memoryOffset( memoryOffset_ )
  16468. , deviceIndexCount( deviceIndexCount_ )
  16469. , pDeviceIndices( pDeviceIndices_ )
  16470. {}
  16471. BindAccelerationStructureMemoryInfoNV( VkBindAccelerationStructureMemoryInfoNV const & rhs )
  16472. {
  16473. *reinterpret_cast<VkBindAccelerationStructureMemoryInfoNV*>(this) = rhs;
  16474. }
  16475. BindAccelerationStructureMemoryInfoNV& operator=( VkBindAccelerationStructureMemoryInfoNV const & rhs )
  16476. {
  16477. *reinterpret_cast<VkBindAccelerationStructureMemoryInfoNV*>(this) = rhs;
  16478. return *this;
  16479. }
  16480. BindAccelerationStructureMemoryInfoNV & setPNext( const void* pNext_ )
  16481. {
  16482. pNext = pNext_;
  16483. return *this;
  16484. }
  16485. BindAccelerationStructureMemoryInfoNV & setAccelerationStructure( AccelerationStructureNV accelerationStructure_ )
  16486. {
  16487. accelerationStructure = accelerationStructure_;
  16488. return *this;
  16489. }
  16490. BindAccelerationStructureMemoryInfoNV & setMemory( DeviceMemory memory_ )
  16491. {
  16492. memory = memory_;
  16493. return *this;
  16494. }
  16495. BindAccelerationStructureMemoryInfoNV & setMemoryOffset( DeviceSize memoryOffset_ )
  16496. {
  16497. memoryOffset = memoryOffset_;
  16498. return *this;
  16499. }
  16500. BindAccelerationStructureMemoryInfoNV & setDeviceIndexCount( uint32_t deviceIndexCount_ )
  16501. {
  16502. deviceIndexCount = deviceIndexCount_;
  16503. return *this;
  16504. }
  16505. BindAccelerationStructureMemoryInfoNV & setPDeviceIndices( const uint32_t* pDeviceIndices_ )
  16506. {
  16507. pDeviceIndices = pDeviceIndices_;
  16508. return *this;
  16509. }
  16510. operator VkBindAccelerationStructureMemoryInfoNV const&() const
  16511. {
  16512. return *reinterpret_cast<const VkBindAccelerationStructureMemoryInfoNV*>( this );
  16513. }
  16514. operator VkBindAccelerationStructureMemoryInfoNV &()
  16515. {
  16516. return *reinterpret_cast<VkBindAccelerationStructureMemoryInfoNV*>( this );
  16517. }
  16518. bool operator==( BindAccelerationStructureMemoryInfoNV const& rhs ) const
  16519. {
  16520. return ( sType == rhs.sType )
  16521. && ( pNext == rhs.pNext )
  16522. && ( accelerationStructure == rhs.accelerationStructure )
  16523. && ( memory == rhs.memory )
  16524. && ( memoryOffset == rhs.memoryOffset )
  16525. && ( deviceIndexCount == rhs.deviceIndexCount )
  16526. && ( pDeviceIndices == rhs.pDeviceIndices );
  16527. }
  16528. bool operator!=( BindAccelerationStructureMemoryInfoNV const& rhs ) const
  16529. {
  16530. return !operator==( rhs );
  16531. }
  16532. private:
  16533. StructureType sType = StructureType::eBindAccelerationStructureMemoryInfoNV;
  16534. public:
  16535. const void* pNext = nullptr;
  16536. AccelerationStructureNV accelerationStructure;
  16537. DeviceMemory memory;
  16538. DeviceSize memoryOffset;
  16539. uint32_t deviceIndexCount;
  16540. const uint32_t* pDeviceIndices;
  16541. };
  16542. static_assert( sizeof( BindAccelerationStructureMemoryInfoNV ) == sizeof( VkBindAccelerationStructureMemoryInfoNV ), "struct and wrapper have different size!" );
  16543. struct BindBufferMemoryDeviceGroupInfo
  16544. {
  16545. BindBufferMemoryDeviceGroupInfo( uint32_t deviceIndexCount_ = 0,
  16546. const uint32_t* pDeviceIndices_ = nullptr )
  16547. : deviceIndexCount( deviceIndexCount_ )
  16548. , pDeviceIndices( pDeviceIndices_ )
  16549. {}
  16550. BindBufferMemoryDeviceGroupInfo( VkBindBufferMemoryDeviceGroupInfo const & rhs )
  16551. {
  16552. *reinterpret_cast<VkBindBufferMemoryDeviceGroupInfo*>(this) = rhs;
  16553. }
  16554. BindBufferMemoryDeviceGroupInfo& operator=( VkBindBufferMemoryDeviceGroupInfo const & rhs )
  16555. {
  16556. *reinterpret_cast<VkBindBufferMemoryDeviceGroupInfo*>(this) = rhs;
  16557. return *this;
  16558. }
  16559. BindBufferMemoryDeviceGroupInfo & setPNext( const void* pNext_ )
  16560. {
  16561. pNext = pNext_;
  16562. return *this;
  16563. }
  16564. BindBufferMemoryDeviceGroupInfo & setDeviceIndexCount( uint32_t deviceIndexCount_ )
  16565. {
  16566. deviceIndexCount = deviceIndexCount_;
  16567. return *this;
  16568. }
  16569. BindBufferMemoryDeviceGroupInfo & setPDeviceIndices( const uint32_t* pDeviceIndices_ )
  16570. {
  16571. pDeviceIndices = pDeviceIndices_;
  16572. return *this;
  16573. }
  16574. operator VkBindBufferMemoryDeviceGroupInfo const&() const
  16575. {
  16576. return *reinterpret_cast<const VkBindBufferMemoryDeviceGroupInfo*>( this );
  16577. }
  16578. operator VkBindBufferMemoryDeviceGroupInfo &()
  16579. {
  16580. return *reinterpret_cast<VkBindBufferMemoryDeviceGroupInfo*>( this );
  16581. }
  16582. bool operator==( BindBufferMemoryDeviceGroupInfo const& rhs ) const
  16583. {
  16584. return ( sType == rhs.sType )
  16585. && ( pNext == rhs.pNext )
  16586. && ( deviceIndexCount == rhs.deviceIndexCount )
  16587. && ( pDeviceIndices == rhs.pDeviceIndices );
  16588. }
  16589. bool operator!=( BindBufferMemoryDeviceGroupInfo const& rhs ) const
  16590. {
  16591. return !operator==( rhs );
  16592. }
  16593. private:
  16594. StructureType sType = StructureType::eBindBufferMemoryDeviceGroupInfo;
  16595. public:
  16596. const void* pNext = nullptr;
  16597. uint32_t deviceIndexCount;
  16598. const uint32_t* pDeviceIndices;
  16599. };
  16600. static_assert( sizeof( BindBufferMemoryDeviceGroupInfo ) == sizeof( VkBindBufferMemoryDeviceGroupInfo ), "struct and wrapper have different size!" );
  16601. struct BindBufferMemoryInfo
  16602. {
  16603. BindBufferMemoryInfo( Buffer buffer_ = Buffer(),
  16604. DeviceMemory memory_ = DeviceMemory(),
  16605. DeviceSize memoryOffset_ = 0 )
  16606. : buffer( buffer_ )
  16607. , memory( memory_ )
  16608. , memoryOffset( memoryOffset_ )
  16609. {}
  16610. BindBufferMemoryInfo( VkBindBufferMemoryInfo const & rhs )
  16611. {
  16612. *reinterpret_cast<VkBindBufferMemoryInfo*>(this) = rhs;
  16613. }
  16614. BindBufferMemoryInfo& operator=( VkBindBufferMemoryInfo const & rhs )
  16615. {
  16616. *reinterpret_cast<VkBindBufferMemoryInfo*>(this) = rhs;
  16617. return *this;
  16618. }
  16619. BindBufferMemoryInfo & setPNext( const void* pNext_ )
  16620. {
  16621. pNext = pNext_;
  16622. return *this;
  16623. }
  16624. BindBufferMemoryInfo & setBuffer( Buffer buffer_ )
  16625. {
  16626. buffer = buffer_;
  16627. return *this;
  16628. }
  16629. BindBufferMemoryInfo & setMemory( DeviceMemory memory_ )
  16630. {
  16631. memory = memory_;
  16632. return *this;
  16633. }
  16634. BindBufferMemoryInfo & setMemoryOffset( DeviceSize memoryOffset_ )
  16635. {
  16636. memoryOffset = memoryOffset_;
  16637. return *this;
  16638. }
  16639. operator VkBindBufferMemoryInfo const&() const
  16640. {
  16641. return *reinterpret_cast<const VkBindBufferMemoryInfo*>( this );
  16642. }
  16643. operator VkBindBufferMemoryInfo &()
  16644. {
  16645. return *reinterpret_cast<VkBindBufferMemoryInfo*>( this );
  16646. }
  16647. bool operator==( BindBufferMemoryInfo const& rhs ) const
  16648. {
  16649. return ( sType == rhs.sType )
  16650. && ( pNext == rhs.pNext )
  16651. && ( buffer == rhs.buffer )
  16652. && ( memory == rhs.memory )
  16653. && ( memoryOffset == rhs.memoryOffset );
  16654. }
  16655. bool operator!=( BindBufferMemoryInfo const& rhs ) const
  16656. {
  16657. return !operator==( rhs );
  16658. }
  16659. private:
  16660. StructureType sType = StructureType::eBindBufferMemoryInfo;
  16661. public:
  16662. const void* pNext = nullptr;
  16663. Buffer buffer;
  16664. DeviceMemory memory;
  16665. DeviceSize memoryOffset;
  16666. };
  16667. static_assert( sizeof( BindBufferMemoryInfo ) == sizeof( VkBindBufferMemoryInfo ), "struct and wrapper have different size!" );
  16668. struct Offset2D
  16669. {
  16670. Offset2D( int32_t x_ = 0,
  16671. int32_t y_ = 0 )
  16672. : x( x_ )
  16673. , y( y_ )
  16674. {}
  16675. Offset2D( VkOffset2D const & rhs )
  16676. {
  16677. *reinterpret_cast<VkOffset2D*>(this) = rhs;
  16678. }
  16679. Offset2D& operator=( VkOffset2D const & rhs )
  16680. {
  16681. *reinterpret_cast<VkOffset2D*>(this) = rhs;
  16682. return *this;
  16683. }
  16684. Offset2D & setX( int32_t x_ )
  16685. {
  16686. x = x_;
  16687. return *this;
  16688. }
  16689. Offset2D & setY( int32_t y_ )
  16690. {
  16691. y = y_;
  16692. return *this;
  16693. }
  16694. operator VkOffset2D const&() const
  16695. {
  16696. return *reinterpret_cast<const VkOffset2D*>( this );
  16697. }
  16698. operator VkOffset2D &()
  16699. {
  16700. return *reinterpret_cast<VkOffset2D*>( this );
  16701. }
  16702. bool operator==( Offset2D const& rhs ) const
  16703. {
  16704. return ( x == rhs.x )
  16705. && ( y == rhs.y );
  16706. }
  16707. bool operator!=( Offset2D const& rhs ) const
  16708. {
  16709. return !operator==( rhs );
  16710. }
  16711. int32_t x;
  16712. int32_t y;
  16713. };
  16714. static_assert( sizeof( Offset2D ) == sizeof( VkOffset2D ), "struct and wrapper have different size!" );
  16715. struct Rect2D
  16716. {
  16717. Rect2D( Offset2D offset_ = Offset2D(),
  16718. Extent2D extent_ = Extent2D() )
  16719. : offset( offset_ )
  16720. , extent( extent_ )
  16721. {}
  16722. Rect2D( VkRect2D const & rhs )
  16723. {
  16724. *reinterpret_cast<VkRect2D*>(this) = rhs;
  16725. }
  16726. Rect2D& operator=( VkRect2D const & rhs )
  16727. {
  16728. *reinterpret_cast<VkRect2D*>(this) = rhs;
  16729. return *this;
  16730. }
  16731. Rect2D & setOffset( Offset2D offset_ )
  16732. {
  16733. offset = offset_;
  16734. return *this;
  16735. }
  16736. Rect2D & setExtent( Extent2D extent_ )
  16737. {
  16738. extent = extent_;
  16739. return *this;
  16740. }
  16741. operator VkRect2D const&() const
  16742. {
  16743. return *reinterpret_cast<const VkRect2D*>( this );
  16744. }
  16745. operator VkRect2D &()
  16746. {
  16747. return *reinterpret_cast<VkRect2D*>( this );
  16748. }
  16749. bool operator==( Rect2D const& rhs ) const
  16750. {
  16751. return ( offset == rhs.offset )
  16752. && ( extent == rhs.extent );
  16753. }
  16754. bool operator!=( Rect2D const& rhs ) const
  16755. {
  16756. return !operator==( rhs );
  16757. }
  16758. Offset2D offset;
  16759. Extent2D extent;
  16760. };
  16761. static_assert( sizeof( Rect2D ) == sizeof( VkRect2D ), "struct and wrapper have different size!" );
  16762. struct BindImageMemoryDeviceGroupInfo
  16763. {
  16764. BindImageMemoryDeviceGroupInfo( uint32_t deviceIndexCount_ = 0,
  16765. const uint32_t* pDeviceIndices_ = nullptr,
  16766. uint32_t splitInstanceBindRegionCount_ = 0,
  16767. const Rect2D* pSplitInstanceBindRegions_ = nullptr )
  16768. : deviceIndexCount( deviceIndexCount_ )
  16769. , pDeviceIndices( pDeviceIndices_ )
  16770. , splitInstanceBindRegionCount( splitInstanceBindRegionCount_ )
  16771. , pSplitInstanceBindRegions( pSplitInstanceBindRegions_ )
  16772. {}
  16773. BindImageMemoryDeviceGroupInfo( VkBindImageMemoryDeviceGroupInfo const & rhs )
  16774. {
  16775. *reinterpret_cast<VkBindImageMemoryDeviceGroupInfo*>(this) = rhs;
  16776. }
  16777. BindImageMemoryDeviceGroupInfo& operator=( VkBindImageMemoryDeviceGroupInfo const & rhs )
  16778. {
  16779. *reinterpret_cast<VkBindImageMemoryDeviceGroupInfo*>(this) = rhs;
  16780. return *this;
  16781. }
  16782. BindImageMemoryDeviceGroupInfo & setPNext( const void* pNext_ )
  16783. {
  16784. pNext = pNext_;
  16785. return *this;
  16786. }
  16787. BindImageMemoryDeviceGroupInfo & setDeviceIndexCount( uint32_t deviceIndexCount_ )
  16788. {
  16789. deviceIndexCount = deviceIndexCount_;
  16790. return *this;
  16791. }
  16792. BindImageMemoryDeviceGroupInfo & setPDeviceIndices( const uint32_t* pDeviceIndices_ )
  16793. {
  16794. pDeviceIndices = pDeviceIndices_;
  16795. return *this;
  16796. }
  16797. BindImageMemoryDeviceGroupInfo & setSplitInstanceBindRegionCount( uint32_t splitInstanceBindRegionCount_ )
  16798. {
  16799. splitInstanceBindRegionCount = splitInstanceBindRegionCount_;
  16800. return *this;
  16801. }
  16802. BindImageMemoryDeviceGroupInfo & setPSplitInstanceBindRegions( const Rect2D* pSplitInstanceBindRegions_ )
  16803. {
  16804. pSplitInstanceBindRegions = pSplitInstanceBindRegions_;
  16805. return *this;
  16806. }
  16807. operator VkBindImageMemoryDeviceGroupInfo const&() const
  16808. {
  16809. return *reinterpret_cast<const VkBindImageMemoryDeviceGroupInfo*>( this );
  16810. }
  16811. operator VkBindImageMemoryDeviceGroupInfo &()
  16812. {
  16813. return *reinterpret_cast<VkBindImageMemoryDeviceGroupInfo*>( this );
  16814. }
  16815. bool operator==( BindImageMemoryDeviceGroupInfo const& rhs ) const
  16816. {
  16817. return ( sType == rhs.sType )
  16818. && ( pNext == rhs.pNext )
  16819. && ( deviceIndexCount == rhs.deviceIndexCount )
  16820. && ( pDeviceIndices == rhs.pDeviceIndices )
  16821. && ( splitInstanceBindRegionCount == rhs.splitInstanceBindRegionCount )
  16822. && ( pSplitInstanceBindRegions == rhs.pSplitInstanceBindRegions );
  16823. }
  16824. bool operator!=( BindImageMemoryDeviceGroupInfo const& rhs ) const
  16825. {
  16826. return !operator==( rhs );
  16827. }
  16828. private:
  16829. StructureType sType = StructureType::eBindImageMemoryDeviceGroupInfo;
  16830. public:
  16831. const void* pNext = nullptr;
  16832. uint32_t deviceIndexCount;
  16833. const uint32_t* pDeviceIndices;
  16834. uint32_t splitInstanceBindRegionCount;
  16835. const Rect2D* pSplitInstanceBindRegions;
  16836. };
  16837. static_assert( sizeof( BindImageMemoryDeviceGroupInfo ) == sizeof( VkBindImageMemoryDeviceGroupInfo ), "struct and wrapper have different size!" );
  16838. struct BindImageMemoryInfo
  16839. {
  16840. BindImageMemoryInfo( Image image_ = Image(),
  16841. DeviceMemory memory_ = DeviceMemory(),
  16842. DeviceSize memoryOffset_ = 0 )
  16843. : image( image_ )
  16844. , memory( memory_ )
  16845. , memoryOffset( memoryOffset_ )
  16846. {}
  16847. BindImageMemoryInfo( VkBindImageMemoryInfo const & rhs )
  16848. {
  16849. *reinterpret_cast<VkBindImageMemoryInfo*>(this) = rhs;
  16850. }
  16851. BindImageMemoryInfo& operator=( VkBindImageMemoryInfo const & rhs )
  16852. {
  16853. *reinterpret_cast<VkBindImageMemoryInfo*>(this) = rhs;
  16854. return *this;
  16855. }
  16856. BindImageMemoryInfo & setPNext( const void* pNext_ )
  16857. {
  16858. pNext = pNext_;
  16859. return *this;
  16860. }
  16861. BindImageMemoryInfo & setImage( Image image_ )
  16862. {
  16863. image = image_;
  16864. return *this;
  16865. }
  16866. BindImageMemoryInfo & setMemory( DeviceMemory memory_ )
  16867. {
  16868. memory = memory_;
  16869. return *this;
  16870. }
  16871. BindImageMemoryInfo & setMemoryOffset( DeviceSize memoryOffset_ )
  16872. {
  16873. memoryOffset = memoryOffset_;
  16874. return *this;
  16875. }
  16876. operator VkBindImageMemoryInfo const&() const
  16877. {
  16878. return *reinterpret_cast<const VkBindImageMemoryInfo*>( this );
  16879. }
  16880. operator VkBindImageMemoryInfo &()
  16881. {
  16882. return *reinterpret_cast<VkBindImageMemoryInfo*>( this );
  16883. }
  16884. bool operator==( BindImageMemoryInfo const& rhs ) const
  16885. {
  16886. return ( sType == rhs.sType )
  16887. && ( pNext == rhs.pNext )
  16888. && ( image == rhs.image )
  16889. && ( memory == rhs.memory )
  16890. && ( memoryOffset == rhs.memoryOffset );
  16891. }
  16892. bool operator!=( BindImageMemoryInfo const& rhs ) const
  16893. {
  16894. return !operator==( rhs );
  16895. }
  16896. private:
  16897. StructureType sType = StructureType::eBindImageMemoryInfo;
  16898. public:
  16899. const void* pNext = nullptr;
  16900. Image image;
  16901. DeviceMemory memory;
  16902. DeviceSize memoryOffset;
  16903. };
  16904. static_assert( sizeof( BindImageMemoryInfo ) == sizeof( VkBindImageMemoryInfo ), "struct and wrapper have different size!" );
  16905. struct BindImageMemorySwapchainInfoKHR
  16906. {
  16907. BindImageMemorySwapchainInfoKHR( SwapchainKHR swapchain_ = SwapchainKHR(),
  16908. uint32_t imageIndex_ = 0 )
  16909. : swapchain( swapchain_ )
  16910. , imageIndex( imageIndex_ )
  16911. {}
  16912. BindImageMemorySwapchainInfoKHR( VkBindImageMemorySwapchainInfoKHR const & rhs )
  16913. {
  16914. *reinterpret_cast<VkBindImageMemorySwapchainInfoKHR*>(this) = rhs;
  16915. }
  16916. BindImageMemorySwapchainInfoKHR& operator=( VkBindImageMemorySwapchainInfoKHR const & rhs )
  16917. {
  16918. *reinterpret_cast<VkBindImageMemorySwapchainInfoKHR*>(this) = rhs;
  16919. return *this;
  16920. }
  16921. BindImageMemorySwapchainInfoKHR & setPNext( const void* pNext_ )
  16922. {
  16923. pNext = pNext_;
  16924. return *this;
  16925. }
  16926. BindImageMemorySwapchainInfoKHR & setSwapchain( SwapchainKHR swapchain_ )
  16927. {
  16928. swapchain = swapchain_;
  16929. return *this;
  16930. }
  16931. BindImageMemorySwapchainInfoKHR & setImageIndex( uint32_t imageIndex_ )
  16932. {
  16933. imageIndex = imageIndex_;
  16934. return *this;
  16935. }
  16936. operator VkBindImageMemorySwapchainInfoKHR const&() const
  16937. {
  16938. return *reinterpret_cast<const VkBindImageMemorySwapchainInfoKHR*>( this );
  16939. }
  16940. operator VkBindImageMemorySwapchainInfoKHR &()
  16941. {
  16942. return *reinterpret_cast<VkBindImageMemorySwapchainInfoKHR*>( this );
  16943. }
  16944. bool operator==( BindImageMemorySwapchainInfoKHR const& rhs ) const
  16945. {
  16946. return ( sType == rhs.sType )
  16947. && ( pNext == rhs.pNext )
  16948. && ( swapchain == rhs.swapchain )
  16949. && ( imageIndex == rhs.imageIndex );
  16950. }
  16951. bool operator!=( BindImageMemorySwapchainInfoKHR const& rhs ) const
  16952. {
  16953. return !operator==( rhs );
  16954. }
  16955. private:
  16956. StructureType sType = StructureType::eBindImageMemorySwapchainInfoKHR;
  16957. public:
  16958. const void* pNext = nullptr;
  16959. SwapchainKHR swapchain;
  16960. uint32_t imageIndex;
  16961. };
  16962. static_assert( sizeof( BindImageMemorySwapchainInfoKHR ) == sizeof( VkBindImageMemorySwapchainInfoKHR ), "struct and wrapper have different size!" );
  16963. struct BindImagePlaneMemoryInfo
  16964. {
  16965. BindImagePlaneMemoryInfo( ImageAspectFlagBits planeAspect_ = ImageAspectFlagBits::eColor )
  16966. : planeAspect( planeAspect_ )
  16967. {}
  16968. BindImagePlaneMemoryInfo( VkBindImagePlaneMemoryInfo const & rhs )
  16969. {
  16970. *reinterpret_cast<VkBindImagePlaneMemoryInfo*>(this) = rhs;
  16971. }
  16972. BindImagePlaneMemoryInfo& operator=( VkBindImagePlaneMemoryInfo const & rhs )
  16973. {
  16974. *reinterpret_cast<VkBindImagePlaneMemoryInfo*>(this) = rhs;
  16975. return *this;
  16976. }
  16977. BindImagePlaneMemoryInfo & setPNext( const void* pNext_ )
  16978. {
  16979. pNext = pNext_;
  16980. return *this;
  16981. }
  16982. BindImagePlaneMemoryInfo & setPlaneAspect( ImageAspectFlagBits planeAspect_ )
  16983. {
  16984. planeAspect = planeAspect_;
  16985. return *this;
  16986. }
  16987. operator VkBindImagePlaneMemoryInfo const&() const
  16988. {
  16989. return *reinterpret_cast<const VkBindImagePlaneMemoryInfo*>( this );
  16990. }
  16991. operator VkBindImagePlaneMemoryInfo &()
  16992. {
  16993. return *reinterpret_cast<VkBindImagePlaneMemoryInfo*>( this );
  16994. }
  16995. bool operator==( BindImagePlaneMemoryInfo const& rhs ) const
  16996. {
  16997. return ( sType == rhs.sType )
  16998. && ( pNext == rhs.pNext )
  16999. && ( planeAspect == rhs.planeAspect );
  17000. }
  17001. bool operator!=( BindImagePlaneMemoryInfo const& rhs ) const
  17002. {
  17003. return !operator==( rhs );
  17004. }
  17005. private:
  17006. StructureType sType = StructureType::eBindImagePlaneMemoryInfo;
  17007. public:
  17008. const void* pNext = nullptr;
  17009. ImageAspectFlagBits planeAspect;
  17010. };
  17011. static_assert( sizeof( BindImagePlaneMemoryInfo ) == sizeof( VkBindImagePlaneMemoryInfo ), "struct and wrapper have different size!" );
  17012. struct SparseMemoryBind
  17013. {
  17014. SparseMemoryBind( DeviceSize resourceOffset_ = 0,
  17015. DeviceSize size_ = 0,
  17016. DeviceMemory memory_ = DeviceMemory(),
  17017. DeviceSize memoryOffset_ = 0,
  17018. SparseMemoryBindFlags flags_ = SparseMemoryBindFlags() )
  17019. : resourceOffset( resourceOffset_ )
  17020. , size( size_ )
  17021. , memory( memory_ )
  17022. , memoryOffset( memoryOffset_ )
  17023. , flags( flags_ )
  17024. {}
  17025. SparseMemoryBind( VkSparseMemoryBind const & rhs )
  17026. {
  17027. *reinterpret_cast<VkSparseMemoryBind*>(this) = rhs;
  17028. }
  17029. SparseMemoryBind& operator=( VkSparseMemoryBind const & rhs )
  17030. {
  17031. *reinterpret_cast<VkSparseMemoryBind*>(this) = rhs;
  17032. return *this;
  17033. }
  17034. SparseMemoryBind & setResourceOffset( DeviceSize resourceOffset_ )
  17035. {
  17036. resourceOffset = resourceOffset_;
  17037. return *this;
  17038. }
  17039. SparseMemoryBind & setSize( DeviceSize size_ )
  17040. {
  17041. size = size_;
  17042. return *this;
  17043. }
  17044. SparseMemoryBind & setMemory( DeviceMemory memory_ )
  17045. {
  17046. memory = memory_;
  17047. return *this;
  17048. }
  17049. SparseMemoryBind & setMemoryOffset( DeviceSize memoryOffset_ )
  17050. {
  17051. memoryOffset = memoryOffset_;
  17052. return *this;
  17053. }
  17054. SparseMemoryBind & setFlags( SparseMemoryBindFlags flags_ )
  17055. {
  17056. flags = flags_;
  17057. return *this;
  17058. }
  17059. operator VkSparseMemoryBind const&() const
  17060. {
  17061. return *reinterpret_cast<const VkSparseMemoryBind*>( this );
  17062. }
  17063. operator VkSparseMemoryBind &()
  17064. {
  17065. return *reinterpret_cast<VkSparseMemoryBind*>( this );
  17066. }
  17067. bool operator==( SparseMemoryBind const& rhs ) const
  17068. {
  17069. return ( resourceOffset == rhs.resourceOffset )
  17070. && ( size == rhs.size )
  17071. && ( memory == rhs.memory )
  17072. && ( memoryOffset == rhs.memoryOffset )
  17073. && ( flags == rhs.flags );
  17074. }
  17075. bool operator!=( SparseMemoryBind const& rhs ) const
  17076. {
  17077. return !operator==( rhs );
  17078. }
  17079. DeviceSize resourceOffset;
  17080. DeviceSize size;
  17081. DeviceMemory memory;
  17082. DeviceSize memoryOffset;
  17083. SparseMemoryBindFlags flags;
  17084. };
  17085. static_assert( sizeof( SparseMemoryBind ) == sizeof( VkSparseMemoryBind ), "struct and wrapper have different size!" );
  17086. struct SparseBufferMemoryBindInfo
  17087. {
  17088. SparseBufferMemoryBindInfo( Buffer buffer_ = Buffer(),
  17089. uint32_t bindCount_ = 0,
  17090. const SparseMemoryBind* pBinds_ = nullptr )
  17091. : buffer( buffer_ )
  17092. , bindCount( bindCount_ )
  17093. , pBinds( pBinds_ )
  17094. {}
  17095. SparseBufferMemoryBindInfo( VkSparseBufferMemoryBindInfo const & rhs )
  17096. {
  17097. *reinterpret_cast<VkSparseBufferMemoryBindInfo*>(this) = rhs;
  17098. }
  17099. SparseBufferMemoryBindInfo& operator=( VkSparseBufferMemoryBindInfo const & rhs )
  17100. {
  17101. *reinterpret_cast<VkSparseBufferMemoryBindInfo*>(this) = rhs;
  17102. return *this;
  17103. }
  17104. SparseBufferMemoryBindInfo & setBuffer( Buffer buffer_ )
  17105. {
  17106. buffer = buffer_;
  17107. return *this;
  17108. }
  17109. SparseBufferMemoryBindInfo & setBindCount( uint32_t bindCount_ )
  17110. {
  17111. bindCount = bindCount_;
  17112. return *this;
  17113. }
  17114. SparseBufferMemoryBindInfo & setPBinds( const SparseMemoryBind* pBinds_ )
  17115. {
  17116. pBinds = pBinds_;
  17117. return *this;
  17118. }
  17119. operator VkSparseBufferMemoryBindInfo const&() const
  17120. {
  17121. return *reinterpret_cast<const VkSparseBufferMemoryBindInfo*>( this );
  17122. }
  17123. operator VkSparseBufferMemoryBindInfo &()
  17124. {
  17125. return *reinterpret_cast<VkSparseBufferMemoryBindInfo*>( this );
  17126. }
  17127. bool operator==( SparseBufferMemoryBindInfo const& rhs ) const
  17128. {
  17129. return ( buffer == rhs.buffer )
  17130. && ( bindCount == rhs.bindCount )
  17131. && ( pBinds == rhs.pBinds );
  17132. }
  17133. bool operator!=( SparseBufferMemoryBindInfo const& rhs ) const
  17134. {
  17135. return !operator==( rhs );
  17136. }
  17137. Buffer buffer;
  17138. uint32_t bindCount;
  17139. const SparseMemoryBind* pBinds;
  17140. };
  17141. static_assert( sizeof( SparseBufferMemoryBindInfo ) == sizeof( VkSparseBufferMemoryBindInfo ), "struct and wrapper have different size!" );
  17142. struct SparseImageOpaqueMemoryBindInfo
  17143. {
  17144. SparseImageOpaqueMemoryBindInfo( Image image_ = Image(),
  17145. uint32_t bindCount_ = 0,
  17146. const SparseMemoryBind* pBinds_ = nullptr )
  17147. : image( image_ )
  17148. , bindCount( bindCount_ )
  17149. , pBinds( pBinds_ )
  17150. {}
  17151. SparseImageOpaqueMemoryBindInfo( VkSparseImageOpaqueMemoryBindInfo const & rhs )
  17152. {
  17153. *reinterpret_cast<VkSparseImageOpaqueMemoryBindInfo*>(this) = rhs;
  17154. }
  17155. SparseImageOpaqueMemoryBindInfo& operator=( VkSparseImageOpaqueMemoryBindInfo const & rhs )
  17156. {
  17157. *reinterpret_cast<VkSparseImageOpaqueMemoryBindInfo*>(this) = rhs;
  17158. return *this;
  17159. }
  17160. SparseImageOpaqueMemoryBindInfo & setImage( Image image_ )
  17161. {
  17162. image = image_;
  17163. return *this;
  17164. }
  17165. SparseImageOpaqueMemoryBindInfo & setBindCount( uint32_t bindCount_ )
  17166. {
  17167. bindCount = bindCount_;
  17168. return *this;
  17169. }
  17170. SparseImageOpaqueMemoryBindInfo & setPBinds( const SparseMemoryBind* pBinds_ )
  17171. {
  17172. pBinds = pBinds_;
  17173. return *this;
  17174. }
  17175. operator VkSparseImageOpaqueMemoryBindInfo const&() const
  17176. {
  17177. return *reinterpret_cast<const VkSparseImageOpaqueMemoryBindInfo*>( this );
  17178. }
  17179. operator VkSparseImageOpaqueMemoryBindInfo &()
  17180. {
  17181. return *reinterpret_cast<VkSparseImageOpaqueMemoryBindInfo*>( this );
  17182. }
  17183. bool operator==( SparseImageOpaqueMemoryBindInfo const& rhs ) const
  17184. {
  17185. return ( image == rhs.image )
  17186. && ( bindCount == rhs.bindCount )
  17187. && ( pBinds == rhs.pBinds );
  17188. }
  17189. bool operator!=( SparseImageOpaqueMemoryBindInfo const& rhs ) const
  17190. {
  17191. return !operator==( rhs );
  17192. }
  17193. Image image;
  17194. uint32_t bindCount;
  17195. const SparseMemoryBind* pBinds;
  17196. };
  17197. static_assert( sizeof( SparseImageOpaqueMemoryBindInfo ) == sizeof( VkSparseImageOpaqueMemoryBindInfo ), "struct and wrapper have different size!" );
  17198. struct ImageSubresource
  17199. {
  17200. ImageSubresource( ImageAspectFlags aspectMask_ = ImageAspectFlags(),
  17201. uint32_t mipLevel_ = 0,
  17202. uint32_t arrayLayer_ = 0 )
  17203. : aspectMask( aspectMask_ )
  17204. , mipLevel( mipLevel_ )
  17205. , arrayLayer( arrayLayer_ )
  17206. {}
  17207. ImageSubresource( VkImageSubresource const & rhs )
  17208. {
  17209. *reinterpret_cast<VkImageSubresource*>(this) = rhs;
  17210. }
  17211. ImageSubresource& operator=( VkImageSubresource const & rhs )
  17212. {
  17213. *reinterpret_cast<VkImageSubresource*>(this) = rhs;
  17214. return *this;
  17215. }
  17216. ImageSubresource & setAspectMask( ImageAspectFlags aspectMask_ )
  17217. {
  17218. aspectMask = aspectMask_;
  17219. return *this;
  17220. }
  17221. ImageSubresource & setMipLevel( uint32_t mipLevel_ )
  17222. {
  17223. mipLevel = mipLevel_;
  17224. return *this;
  17225. }
  17226. ImageSubresource & setArrayLayer( uint32_t arrayLayer_ )
  17227. {
  17228. arrayLayer = arrayLayer_;
  17229. return *this;
  17230. }
  17231. operator VkImageSubresource const&() const
  17232. {
  17233. return *reinterpret_cast<const VkImageSubresource*>( this );
  17234. }
  17235. operator VkImageSubresource &()
  17236. {
  17237. return *reinterpret_cast<VkImageSubresource*>( this );
  17238. }
  17239. bool operator==( ImageSubresource const& rhs ) const
  17240. {
  17241. return ( aspectMask == rhs.aspectMask )
  17242. && ( mipLevel == rhs.mipLevel )
  17243. && ( arrayLayer == rhs.arrayLayer );
  17244. }
  17245. bool operator!=( ImageSubresource const& rhs ) const
  17246. {
  17247. return !operator==( rhs );
  17248. }
  17249. ImageAspectFlags aspectMask;
  17250. uint32_t mipLevel;
  17251. uint32_t arrayLayer;
  17252. };
  17253. static_assert( sizeof( ImageSubresource ) == sizeof( VkImageSubresource ), "struct and wrapper have different size!" );
  17254. struct Offset3D
  17255. {
  17256. Offset3D( int32_t x_ = 0,
  17257. int32_t y_ = 0,
  17258. int32_t z_ = 0 )
  17259. : x( x_ )
  17260. , y( y_ )
  17261. , z( z_ )
  17262. {}
  17263. explicit Offset3D( Offset2D const& offset2D,
  17264. int32_t z_ = 0 )
  17265. : x( offset2D.x )
  17266. , y( offset2D.y )
  17267. , z( z_ )
  17268. {}
  17269. Offset3D( VkOffset3D const & rhs )
  17270. {
  17271. *reinterpret_cast<VkOffset3D*>(this) = rhs;
  17272. }
  17273. Offset3D& operator=( VkOffset3D const & rhs )
  17274. {
  17275. *reinterpret_cast<VkOffset3D*>(this) = rhs;
  17276. return *this;
  17277. }
  17278. Offset3D & setX( int32_t x_ )
  17279. {
  17280. x = x_;
  17281. return *this;
  17282. }
  17283. Offset3D & setY( int32_t y_ )
  17284. {
  17285. y = y_;
  17286. return *this;
  17287. }
  17288. Offset3D & setZ( int32_t z_ )
  17289. {
  17290. z = z_;
  17291. return *this;
  17292. }
  17293. operator VkOffset3D const&() const
  17294. {
  17295. return *reinterpret_cast<const VkOffset3D*>( this );
  17296. }
  17297. operator VkOffset3D &()
  17298. {
  17299. return *reinterpret_cast<VkOffset3D*>( this );
  17300. }
  17301. bool operator==( Offset3D const& rhs ) const
  17302. {
  17303. return ( x == rhs.x )
  17304. && ( y == rhs.y )
  17305. && ( z == rhs.z );
  17306. }
  17307. bool operator!=( Offset3D const& rhs ) const
  17308. {
  17309. return !operator==( rhs );
  17310. }
  17311. int32_t x;
  17312. int32_t y;
  17313. int32_t z;
  17314. };
  17315. static_assert( sizeof( Offset3D ) == sizeof( VkOffset3D ), "struct and wrapper have different size!" );
  17316. struct Extent3D
  17317. {
  17318. Extent3D( uint32_t width_ = 0,
  17319. uint32_t height_ = 0,
  17320. uint32_t depth_ = 0 )
  17321. : width( width_ )
  17322. , height( height_ )
  17323. , depth( depth_ )
  17324. {}
  17325. explicit Extent3D( Extent2D const& extent2D,
  17326. uint32_t depth_ = 0 )
  17327. : width( extent2D.width )
  17328. , height( extent2D.height )
  17329. , depth( depth_ )
  17330. {}
  17331. Extent3D( VkExtent3D const & rhs )
  17332. {
  17333. *reinterpret_cast<VkExtent3D*>(this) = rhs;
  17334. }
  17335. Extent3D& operator=( VkExtent3D const & rhs )
  17336. {
  17337. *reinterpret_cast<VkExtent3D*>(this) = rhs;
  17338. return *this;
  17339. }
  17340. Extent3D & setWidth( uint32_t width_ )
  17341. {
  17342. width = width_;
  17343. return *this;
  17344. }
  17345. Extent3D & setHeight( uint32_t height_ )
  17346. {
  17347. height = height_;
  17348. return *this;
  17349. }
  17350. Extent3D & setDepth( uint32_t depth_ )
  17351. {
  17352. depth = depth_;
  17353. return *this;
  17354. }
  17355. operator VkExtent3D const&() const
  17356. {
  17357. return *reinterpret_cast<const VkExtent3D*>( this );
  17358. }
  17359. operator VkExtent3D &()
  17360. {
  17361. return *reinterpret_cast<VkExtent3D*>( this );
  17362. }
  17363. bool operator==( Extent3D const& rhs ) const
  17364. {
  17365. return ( width == rhs.width )
  17366. && ( height == rhs.height )
  17367. && ( depth == rhs.depth );
  17368. }
  17369. bool operator!=( Extent3D const& rhs ) const
  17370. {
  17371. return !operator==( rhs );
  17372. }
  17373. uint32_t width;
  17374. uint32_t height;
  17375. uint32_t depth;
  17376. };
  17377. static_assert( sizeof( Extent3D ) == sizeof( VkExtent3D ), "struct and wrapper have different size!" );
  17378. struct SparseImageMemoryBind
  17379. {
  17380. SparseImageMemoryBind( ImageSubresource subresource_ = ImageSubresource(),
  17381. Offset3D offset_ = Offset3D(),
  17382. Extent3D extent_ = Extent3D(),
  17383. DeviceMemory memory_ = DeviceMemory(),
  17384. DeviceSize memoryOffset_ = 0,
  17385. SparseMemoryBindFlags flags_ = SparseMemoryBindFlags() )
  17386. : subresource( subresource_ )
  17387. , offset( offset_ )
  17388. , extent( extent_ )
  17389. , memory( memory_ )
  17390. , memoryOffset( memoryOffset_ )
  17391. , flags( flags_ )
  17392. {}
  17393. SparseImageMemoryBind( VkSparseImageMemoryBind const & rhs )
  17394. {
  17395. *reinterpret_cast<VkSparseImageMemoryBind*>(this) = rhs;
  17396. }
  17397. SparseImageMemoryBind& operator=( VkSparseImageMemoryBind const & rhs )
  17398. {
  17399. *reinterpret_cast<VkSparseImageMemoryBind*>(this) = rhs;
  17400. return *this;
  17401. }
  17402. SparseImageMemoryBind & setSubresource( ImageSubresource subresource_ )
  17403. {
  17404. subresource = subresource_;
  17405. return *this;
  17406. }
  17407. SparseImageMemoryBind & setOffset( Offset3D offset_ )
  17408. {
  17409. offset = offset_;
  17410. return *this;
  17411. }
  17412. SparseImageMemoryBind & setExtent( Extent3D extent_ )
  17413. {
  17414. extent = extent_;
  17415. return *this;
  17416. }
  17417. SparseImageMemoryBind & setMemory( DeviceMemory memory_ )
  17418. {
  17419. memory = memory_;
  17420. return *this;
  17421. }
  17422. SparseImageMemoryBind & setMemoryOffset( DeviceSize memoryOffset_ )
  17423. {
  17424. memoryOffset = memoryOffset_;
  17425. return *this;
  17426. }
  17427. SparseImageMemoryBind & setFlags( SparseMemoryBindFlags flags_ )
  17428. {
  17429. flags = flags_;
  17430. return *this;
  17431. }
  17432. operator VkSparseImageMemoryBind const&() const
  17433. {
  17434. return *reinterpret_cast<const VkSparseImageMemoryBind*>( this );
  17435. }
  17436. operator VkSparseImageMemoryBind &()
  17437. {
  17438. return *reinterpret_cast<VkSparseImageMemoryBind*>( this );
  17439. }
  17440. bool operator==( SparseImageMemoryBind const& rhs ) const
  17441. {
  17442. return ( subresource == rhs.subresource )
  17443. && ( offset == rhs.offset )
  17444. && ( extent == rhs.extent )
  17445. && ( memory == rhs.memory )
  17446. && ( memoryOffset == rhs.memoryOffset )
  17447. && ( flags == rhs.flags );
  17448. }
  17449. bool operator!=( SparseImageMemoryBind const& rhs ) const
  17450. {
  17451. return !operator==( rhs );
  17452. }
  17453. ImageSubresource subresource;
  17454. Offset3D offset;
  17455. Extent3D extent;
  17456. DeviceMemory memory;
  17457. DeviceSize memoryOffset;
  17458. SparseMemoryBindFlags flags;
  17459. };
  17460. static_assert( sizeof( SparseImageMemoryBind ) == sizeof( VkSparseImageMemoryBind ), "struct and wrapper have different size!" );
  17461. struct SparseImageMemoryBindInfo
  17462. {
  17463. SparseImageMemoryBindInfo( Image image_ = Image(),
  17464. uint32_t bindCount_ = 0,
  17465. const SparseImageMemoryBind* pBinds_ = nullptr )
  17466. : image( image_ )
  17467. , bindCount( bindCount_ )
  17468. , pBinds( pBinds_ )
  17469. {}
  17470. SparseImageMemoryBindInfo( VkSparseImageMemoryBindInfo const & rhs )
  17471. {
  17472. *reinterpret_cast<VkSparseImageMemoryBindInfo*>(this) = rhs;
  17473. }
  17474. SparseImageMemoryBindInfo& operator=( VkSparseImageMemoryBindInfo const & rhs )
  17475. {
  17476. *reinterpret_cast<VkSparseImageMemoryBindInfo*>(this) = rhs;
  17477. return *this;
  17478. }
  17479. SparseImageMemoryBindInfo & setImage( Image image_ )
  17480. {
  17481. image = image_;
  17482. return *this;
  17483. }
  17484. SparseImageMemoryBindInfo & setBindCount( uint32_t bindCount_ )
  17485. {
  17486. bindCount = bindCount_;
  17487. return *this;
  17488. }
  17489. SparseImageMemoryBindInfo & setPBinds( const SparseImageMemoryBind* pBinds_ )
  17490. {
  17491. pBinds = pBinds_;
  17492. return *this;
  17493. }
  17494. operator VkSparseImageMemoryBindInfo const&() const
  17495. {
  17496. return *reinterpret_cast<const VkSparseImageMemoryBindInfo*>( this );
  17497. }
  17498. operator VkSparseImageMemoryBindInfo &()
  17499. {
  17500. return *reinterpret_cast<VkSparseImageMemoryBindInfo*>( this );
  17501. }
  17502. bool operator==( SparseImageMemoryBindInfo const& rhs ) const
  17503. {
  17504. return ( image == rhs.image )
  17505. && ( bindCount == rhs.bindCount )
  17506. && ( pBinds == rhs.pBinds );
  17507. }
  17508. bool operator!=( SparseImageMemoryBindInfo const& rhs ) const
  17509. {
  17510. return !operator==( rhs );
  17511. }
  17512. Image image;
  17513. uint32_t bindCount;
  17514. const SparseImageMemoryBind* pBinds;
  17515. };
  17516. static_assert( sizeof( SparseImageMemoryBindInfo ) == sizeof( VkSparseImageMemoryBindInfo ), "struct and wrapper have different size!" );
  17517. struct BindSparseInfo
  17518. {
  17519. BindSparseInfo( uint32_t waitSemaphoreCount_ = 0,
  17520. const Semaphore* pWaitSemaphores_ = nullptr,
  17521. uint32_t bufferBindCount_ = 0,
  17522. const SparseBufferMemoryBindInfo* pBufferBinds_ = nullptr,
  17523. uint32_t imageOpaqueBindCount_ = 0,
  17524. const SparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds_ = nullptr,
  17525. uint32_t imageBindCount_ = 0,
  17526. const SparseImageMemoryBindInfo* pImageBinds_ = nullptr,
  17527. uint32_t signalSemaphoreCount_ = 0,
  17528. const Semaphore* pSignalSemaphores_ = nullptr )
  17529. : waitSemaphoreCount( waitSemaphoreCount_ )
  17530. , pWaitSemaphores( pWaitSemaphores_ )
  17531. , bufferBindCount( bufferBindCount_ )
  17532. , pBufferBinds( pBufferBinds_ )
  17533. , imageOpaqueBindCount( imageOpaqueBindCount_ )
  17534. , pImageOpaqueBinds( pImageOpaqueBinds_ )
  17535. , imageBindCount( imageBindCount_ )
  17536. , pImageBinds( pImageBinds_ )
  17537. , signalSemaphoreCount( signalSemaphoreCount_ )
  17538. , pSignalSemaphores( pSignalSemaphores_ )
  17539. {}
  17540. BindSparseInfo( VkBindSparseInfo const & rhs )
  17541. {
  17542. *reinterpret_cast<VkBindSparseInfo*>(this) = rhs;
  17543. }
  17544. BindSparseInfo& operator=( VkBindSparseInfo const & rhs )
  17545. {
  17546. *reinterpret_cast<VkBindSparseInfo*>(this) = rhs;
  17547. return *this;
  17548. }
  17549. BindSparseInfo & setPNext( const void* pNext_ )
  17550. {
  17551. pNext = pNext_;
  17552. return *this;
  17553. }
  17554. BindSparseInfo & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ )
  17555. {
  17556. waitSemaphoreCount = waitSemaphoreCount_;
  17557. return *this;
  17558. }
  17559. BindSparseInfo & setPWaitSemaphores( const Semaphore* pWaitSemaphores_ )
  17560. {
  17561. pWaitSemaphores = pWaitSemaphores_;
  17562. return *this;
  17563. }
  17564. BindSparseInfo & setBufferBindCount( uint32_t bufferBindCount_ )
  17565. {
  17566. bufferBindCount = bufferBindCount_;
  17567. return *this;
  17568. }
  17569. BindSparseInfo & setPBufferBinds( const SparseBufferMemoryBindInfo* pBufferBinds_ )
  17570. {
  17571. pBufferBinds = pBufferBinds_;
  17572. return *this;
  17573. }
  17574. BindSparseInfo & setImageOpaqueBindCount( uint32_t imageOpaqueBindCount_ )
  17575. {
  17576. imageOpaqueBindCount = imageOpaqueBindCount_;
  17577. return *this;
  17578. }
  17579. BindSparseInfo & setPImageOpaqueBinds( const SparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds_ )
  17580. {
  17581. pImageOpaqueBinds = pImageOpaqueBinds_;
  17582. return *this;
  17583. }
  17584. BindSparseInfo & setImageBindCount( uint32_t imageBindCount_ )
  17585. {
  17586. imageBindCount = imageBindCount_;
  17587. return *this;
  17588. }
  17589. BindSparseInfo & setPImageBinds( const SparseImageMemoryBindInfo* pImageBinds_ )
  17590. {
  17591. pImageBinds = pImageBinds_;
  17592. return *this;
  17593. }
  17594. BindSparseInfo & setSignalSemaphoreCount( uint32_t signalSemaphoreCount_ )
  17595. {
  17596. signalSemaphoreCount = signalSemaphoreCount_;
  17597. return *this;
  17598. }
  17599. BindSparseInfo & setPSignalSemaphores( const Semaphore* pSignalSemaphores_ )
  17600. {
  17601. pSignalSemaphores = pSignalSemaphores_;
  17602. return *this;
  17603. }
  17604. operator VkBindSparseInfo const&() const
  17605. {
  17606. return *reinterpret_cast<const VkBindSparseInfo*>( this );
  17607. }
  17608. operator VkBindSparseInfo &()
  17609. {
  17610. return *reinterpret_cast<VkBindSparseInfo*>( this );
  17611. }
  17612. bool operator==( BindSparseInfo const& rhs ) const
  17613. {
  17614. return ( sType == rhs.sType )
  17615. && ( pNext == rhs.pNext )
  17616. && ( waitSemaphoreCount == rhs.waitSemaphoreCount )
  17617. && ( pWaitSemaphores == rhs.pWaitSemaphores )
  17618. && ( bufferBindCount == rhs.bufferBindCount )
  17619. && ( pBufferBinds == rhs.pBufferBinds )
  17620. && ( imageOpaqueBindCount == rhs.imageOpaqueBindCount )
  17621. && ( pImageOpaqueBinds == rhs.pImageOpaqueBinds )
  17622. && ( imageBindCount == rhs.imageBindCount )
  17623. && ( pImageBinds == rhs.pImageBinds )
  17624. && ( signalSemaphoreCount == rhs.signalSemaphoreCount )
  17625. && ( pSignalSemaphores == rhs.pSignalSemaphores );
  17626. }
  17627. bool operator!=( BindSparseInfo const& rhs ) const
  17628. {
  17629. return !operator==( rhs );
  17630. }
  17631. private:
  17632. StructureType sType = StructureType::eBindSparseInfo;
  17633. public:
  17634. const void* pNext = nullptr;
  17635. uint32_t waitSemaphoreCount;
  17636. const Semaphore* pWaitSemaphores;
  17637. uint32_t bufferBindCount;
  17638. const SparseBufferMemoryBindInfo* pBufferBinds;
  17639. uint32_t imageOpaqueBindCount;
  17640. const SparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds;
  17641. uint32_t imageBindCount;
  17642. const SparseImageMemoryBindInfo* pImageBinds;
  17643. uint32_t signalSemaphoreCount;
  17644. const Semaphore* pSignalSemaphores;
  17645. };
  17646. static_assert( sizeof( BindSparseInfo ) == sizeof( VkBindSparseInfo ), "struct and wrapper have different size!" );
  17647. struct BufferCopy
  17648. {
  17649. BufferCopy( DeviceSize srcOffset_ = 0,
  17650. DeviceSize dstOffset_ = 0,
  17651. DeviceSize size_ = 0 )
  17652. : srcOffset( srcOffset_ )
  17653. , dstOffset( dstOffset_ )
  17654. , size( size_ )
  17655. {}
  17656. BufferCopy( VkBufferCopy const & rhs )
  17657. {
  17658. *reinterpret_cast<VkBufferCopy*>(this) = rhs;
  17659. }
  17660. BufferCopy& operator=( VkBufferCopy const & rhs )
  17661. {
  17662. *reinterpret_cast<VkBufferCopy*>(this) = rhs;
  17663. return *this;
  17664. }
  17665. BufferCopy & setSrcOffset( DeviceSize srcOffset_ )
  17666. {
  17667. srcOffset = srcOffset_;
  17668. return *this;
  17669. }
  17670. BufferCopy & setDstOffset( DeviceSize dstOffset_ )
  17671. {
  17672. dstOffset = dstOffset_;
  17673. return *this;
  17674. }
  17675. BufferCopy & setSize( DeviceSize size_ )
  17676. {
  17677. size = size_;
  17678. return *this;
  17679. }
  17680. operator VkBufferCopy const&() const
  17681. {
  17682. return *reinterpret_cast<const VkBufferCopy*>( this );
  17683. }
  17684. operator VkBufferCopy &()
  17685. {
  17686. return *reinterpret_cast<VkBufferCopy*>( this );
  17687. }
  17688. bool operator==( BufferCopy const& rhs ) const
  17689. {
  17690. return ( srcOffset == rhs.srcOffset )
  17691. && ( dstOffset == rhs.dstOffset )
  17692. && ( size == rhs.size );
  17693. }
  17694. bool operator!=( BufferCopy const& rhs ) const
  17695. {
  17696. return !operator==( rhs );
  17697. }
  17698. DeviceSize srcOffset;
  17699. DeviceSize dstOffset;
  17700. DeviceSize size;
  17701. };
  17702. static_assert( sizeof( BufferCopy ) == sizeof( VkBufferCopy ), "struct and wrapper have different size!" );
  17703. struct BufferCreateInfo
  17704. {
  17705. BufferCreateInfo( BufferCreateFlags flags_ = BufferCreateFlags(),
  17706. DeviceSize size_ = 0,
  17707. BufferUsageFlags usage_ = BufferUsageFlags(),
  17708. SharingMode sharingMode_ = SharingMode::eExclusive,
  17709. uint32_t queueFamilyIndexCount_ = 0,
  17710. const uint32_t* pQueueFamilyIndices_ = nullptr )
  17711. : flags( flags_ )
  17712. , size( size_ )
  17713. , usage( usage_ )
  17714. , sharingMode( sharingMode_ )
  17715. , queueFamilyIndexCount( queueFamilyIndexCount_ )
  17716. , pQueueFamilyIndices( pQueueFamilyIndices_ )
  17717. {}
  17718. BufferCreateInfo( VkBufferCreateInfo const & rhs )
  17719. {
  17720. *reinterpret_cast<VkBufferCreateInfo*>(this) = rhs;
  17721. }
  17722. BufferCreateInfo& operator=( VkBufferCreateInfo const & rhs )
  17723. {
  17724. *reinterpret_cast<VkBufferCreateInfo*>(this) = rhs;
  17725. return *this;
  17726. }
  17727. BufferCreateInfo & setPNext( const void* pNext_ )
  17728. {
  17729. pNext = pNext_;
  17730. return *this;
  17731. }
  17732. BufferCreateInfo & setFlags( BufferCreateFlags flags_ )
  17733. {
  17734. flags = flags_;
  17735. return *this;
  17736. }
  17737. BufferCreateInfo & setSize( DeviceSize size_ )
  17738. {
  17739. size = size_;
  17740. return *this;
  17741. }
  17742. BufferCreateInfo & setUsage( BufferUsageFlags usage_ )
  17743. {
  17744. usage = usage_;
  17745. return *this;
  17746. }
  17747. BufferCreateInfo & setSharingMode( SharingMode sharingMode_ )
  17748. {
  17749. sharingMode = sharingMode_;
  17750. return *this;
  17751. }
  17752. BufferCreateInfo & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ )
  17753. {
  17754. queueFamilyIndexCount = queueFamilyIndexCount_;
  17755. return *this;
  17756. }
  17757. BufferCreateInfo & setPQueueFamilyIndices( const uint32_t* pQueueFamilyIndices_ )
  17758. {
  17759. pQueueFamilyIndices = pQueueFamilyIndices_;
  17760. return *this;
  17761. }
  17762. operator VkBufferCreateInfo const&() const
  17763. {
  17764. return *reinterpret_cast<const VkBufferCreateInfo*>( this );
  17765. }
  17766. operator VkBufferCreateInfo &()
  17767. {
  17768. return *reinterpret_cast<VkBufferCreateInfo*>( this );
  17769. }
  17770. bool operator==( BufferCreateInfo const& rhs ) const
  17771. {
  17772. return ( sType == rhs.sType )
  17773. && ( pNext == rhs.pNext )
  17774. && ( flags == rhs.flags )
  17775. && ( size == rhs.size )
  17776. && ( usage == rhs.usage )
  17777. && ( sharingMode == rhs.sharingMode )
  17778. && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount )
  17779. && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices );
  17780. }
  17781. bool operator!=( BufferCreateInfo const& rhs ) const
  17782. {
  17783. return !operator==( rhs );
  17784. }
  17785. private:
  17786. StructureType sType = StructureType::eBufferCreateInfo;
  17787. public:
  17788. const void* pNext = nullptr;
  17789. BufferCreateFlags flags;
  17790. DeviceSize size;
  17791. BufferUsageFlags usage;
  17792. SharingMode sharingMode;
  17793. uint32_t queueFamilyIndexCount;
  17794. const uint32_t* pQueueFamilyIndices;
  17795. };
  17796. static_assert( sizeof( BufferCreateInfo ) == sizeof( VkBufferCreateInfo ), "struct and wrapper have different size!" );
  17797. struct BufferDeviceAddressCreateInfoEXT
  17798. {
  17799. BufferDeviceAddressCreateInfoEXT( DeviceAddress deviceAddress_ = 0 )
  17800. : deviceAddress( deviceAddress_ )
  17801. {}
  17802. BufferDeviceAddressCreateInfoEXT( VkBufferDeviceAddressCreateInfoEXT const & rhs )
  17803. {
  17804. *reinterpret_cast<VkBufferDeviceAddressCreateInfoEXT*>(this) = rhs;
  17805. }
  17806. BufferDeviceAddressCreateInfoEXT& operator=( VkBufferDeviceAddressCreateInfoEXT const & rhs )
  17807. {
  17808. *reinterpret_cast<VkBufferDeviceAddressCreateInfoEXT*>(this) = rhs;
  17809. return *this;
  17810. }
  17811. BufferDeviceAddressCreateInfoEXT & setPNext( const void* pNext_ )
  17812. {
  17813. pNext = pNext_;
  17814. return *this;
  17815. }
  17816. BufferDeviceAddressCreateInfoEXT & setDeviceAddress( DeviceAddress deviceAddress_ )
  17817. {
  17818. deviceAddress = deviceAddress_;
  17819. return *this;
  17820. }
  17821. operator VkBufferDeviceAddressCreateInfoEXT const&() const
  17822. {
  17823. return *reinterpret_cast<const VkBufferDeviceAddressCreateInfoEXT*>( this );
  17824. }
  17825. operator VkBufferDeviceAddressCreateInfoEXT &()
  17826. {
  17827. return *reinterpret_cast<VkBufferDeviceAddressCreateInfoEXT*>( this );
  17828. }
  17829. bool operator==( BufferDeviceAddressCreateInfoEXT const& rhs ) const
  17830. {
  17831. return ( sType == rhs.sType )
  17832. && ( pNext == rhs.pNext )
  17833. && ( deviceAddress == rhs.deviceAddress );
  17834. }
  17835. bool operator!=( BufferDeviceAddressCreateInfoEXT const& rhs ) const
  17836. {
  17837. return !operator==( rhs );
  17838. }
  17839. private:
  17840. StructureType sType = StructureType::eBufferDeviceAddressCreateInfoEXT;
  17841. public:
  17842. const void* pNext = nullptr;
  17843. DeviceAddress deviceAddress;
  17844. };
  17845. static_assert( sizeof( BufferDeviceAddressCreateInfoEXT ) == sizeof( VkBufferDeviceAddressCreateInfoEXT ), "struct and wrapper have different size!" );
  17846. struct BufferDeviceAddressInfoEXT
  17847. {
  17848. BufferDeviceAddressInfoEXT( Buffer buffer_ = Buffer() )
  17849. : buffer( buffer_ )
  17850. {}
  17851. BufferDeviceAddressInfoEXT( VkBufferDeviceAddressInfoEXT const & rhs )
  17852. {
  17853. *reinterpret_cast<VkBufferDeviceAddressInfoEXT*>(this) = rhs;
  17854. }
  17855. BufferDeviceAddressInfoEXT& operator=( VkBufferDeviceAddressInfoEXT const & rhs )
  17856. {
  17857. *reinterpret_cast<VkBufferDeviceAddressInfoEXT*>(this) = rhs;
  17858. return *this;
  17859. }
  17860. BufferDeviceAddressInfoEXT & setPNext( const void* pNext_ )
  17861. {
  17862. pNext = pNext_;
  17863. return *this;
  17864. }
  17865. BufferDeviceAddressInfoEXT & setBuffer( Buffer buffer_ )
  17866. {
  17867. buffer = buffer_;
  17868. return *this;
  17869. }
  17870. operator VkBufferDeviceAddressInfoEXT const&() const
  17871. {
  17872. return *reinterpret_cast<const VkBufferDeviceAddressInfoEXT*>( this );
  17873. }
  17874. operator VkBufferDeviceAddressInfoEXT &()
  17875. {
  17876. return *reinterpret_cast<VkBufferDeviceAddressInfoEXT*>( this );
  17877. }
  17878. bool operator==( BufferDeviceAddressInfoEXT const& rhs ) const
  17879. {
  17880. return ( sType == rhs.sType )
  17881. && ( pNext == rhs.pNext )
  17882. && ( buffer == rhs.buffer );
  17883. }
  17884. bool operator!=( BufferDeviceAddressInfoEXT const& rhs ) const
  17885. {
  17886. return !operator==( rhs );
  17887. }
  17888. private:
  17889. StructureType sType = StructureType::eBufferDeviceAddressInfoEXT;
  17890. public:
  17891. const void* pNext = nullptr;
  17892. Buffer buffer;
  17893. };
  17894. static_assert( sizeof( BufferDeviceAddressInfoEXT ) == sizeof( VkBufferDeviceAddressInfoEXT ), "struct and wrapper have different size!" );
  17895. struct ImageSubresourceLayers
  17896. {
  17897. ImageSubresourceLayers( ImageAspectFlags aspectMask_ = ImageAspectFlags(),
  17898. uint32_t mipLevel_ = 0,
  17899. uint32_t baseArrayLayer_ = 0,
  17900. uint32_t layerCount_ = 0 )
  17901. : aspectMask( aspectMask_ )
  17902. , mipLevel( mipLevel_ )
  17903. , baseArrayLayer( baseArrayLayer_ )
  17904. , layerCount( layerCount_ )
  17905. {}
  17906. ImageSubresourceLayers( VkImageSubresourceLayers const & rhs )
  17907. {
  17908. *reinterpret_cast<VkImageSubresourceLayers*>(this) = rhs;
  17909. }
  17910. ImageSubresourceLayers& operator=( VkImageSubresourceLayers const & rhs )
  17911. {
  17912. *reinterpret_cast<VkImageSubresourceLayers*>(this) = rhs;
  17913. return *this;
  17914. }
  17915. ImageSubresourceLayers & setAspectMask( ImageAspectFlags aspectMask_ )
  17916. {
  17917. aspectMask = aspectMask_;
  17918. return *this;
  17919. }
  17920. ImageSubresourceLayers & setMipLevel( uint32_t mipLevel_ )
  17921. {
  17922. mipLevel = mipLevel_;
  17923. return *this;
  17924. }
  17925. ImageSubresourceLayers & setBaseArrayLayer( uint32_t baseArrayLayer_ )
  17926. {
  17927. baseArrayLayer = baseArrayLayer_;
  17928. return *this;
  17929. }
  17930. ImageSubresourceLayers & setLayerCount( uint32_t layerCount_ )
  17931. {
  17932. layerCount = layerCount_;
  17933. return *this;
  17934. }
  17935. operator VkImageSubresourceLayers const&() const
  17936. {
  17937. return *reinterpret_cast<const VkImageSubresourceLayers*>( this );
  17938. }
  17939. operator VkImageSubresourceLayers &()
  17940. {
  17941. return *reinterpret_cast<VkImageSubresourceLayers*>( this );
  17942. }
  17943. bool operator==( ImageSubresourceLayers const& rhs ) const
  17944. {
  17945. return ( aspectMask == rhs.aspectMask )
  17946. && ( mipLevel == rhs.mipLevel )
  17947. && ( baseArrayLayer == rhs.baseArrayLayer )
  17948. && ( layerCount == rhs.layerCount );
  17949. }
  17950. bool operator!=( ImageSubresourceLayers const& rhs ) const
  17951. {
  17952. return !operator==( rhs );
  17953. }
  17954. ImageAspectFlags aspectMask;
  17955. uint32_t mipLevel;
  17956. uint32_t baseArrayLayer;
  17957. uint32_t layerCount;
  17958. };
  17959. static_assert( sizeof( ImageSubresourceLayers ) == sizeof( VkImageSubresourceLayers ), "struct and wrapper have different size!" );
  17960. struct BufferImageCopy
  17961. {
  17962. BufferImageCopy( DeviceSize bufferOffset_ = 0,
  17963. uint32_t bufferRowLength_ = 0,
  17964. uint32_t bufferImageHeight_ = 0,
  17965. ImageSubresourceLayers imageSubresource_ = ImageSubresourceLayers(),
  17966. Offset3D imageOffset_ = Offset3D(),
  17967. Extent3D imageExtent_ = Extent3D() )
  17968. : bufferOffset( bufferOffset_ )
  17969. , bufferRowLength( bufferRowLength_ )
  17970. , bufferImageHeight( bufferImageHeight_ )
  17971. , imageSubresource( imageSubresource_ )
  17972. , imageOffset( imageOffset_ )
  17973. , imageExtent( imageExtent_ )
  17974. {}
  17975. BufferImageCopy( VkBufferImageCopy const & rhs )
  17976. {
  17977. *reinterpret_cast<VkBufferImageCopy*>(this) = rhs;
  17978. }
  17979. BufferImageCopy& operator=( VkBufferImageCopy const & rhs )
  17980. {
  17981. *reinterpret_cast<VkBufferImageCopy*>(this) = rhs;
  17982. return *this;
  17983. }
  17984. BufferImageCopy & setBufferOffset( DeviceSize bufferOffset_ )
  17985. {
  17986. bufferOffset = bufferOffset_;
  17987. return *this;
  17988. }
  17989. BufferImageCopy & setBufferRowLength( uint32_t bufferRowLength_ )
  17990. {
  17991. bufferRowLength = bufferRowLength_;
  17992. return *this;
  17993. }
  17994. BufferImageCopy & setBufferImageHeight( uint32_t bufferImageHeight_ )
  17995. {
  17996. bufferImageHeight = bufferImageHeight_;
  17997. return *this;
  17998. }
  17999. BufferImageCopy & setImageSubresource( ImageSubresourceLayers imageSubresource_ )
  18000. {
  18001. imageSubresource = imageSubresource_;
  18002. return *this;
  18003. }
  18004. BufferImageCopy & setImageOffset( Offset3D imageOffset_ )
  18005. {
  18006. imageOffset = imageOffset_;
  18007. return *this;
  18008. }
  18009. BufferImageCopy & setImageExtent( Extent3D imageExtent_ )
  18010. {
  18011. imageExtent = imageExtent_;
  18012. return *this;
  18013. }
  18014. operator VkBufferImageCopy const&() const
  18015. {
  18016. return *reinterpret_cast<const VkBufferImageCopy*>( this );
  18017. }
  18018. operator VkBufferImageCopy &()
  18019. {
  18020. return *reinterpret_cast<VkBufferImageCopy*>( this );
  18021. }
  18022. bool operator==( BufferImageCopy const& rhs ) const
  18023. {
  18024. return ( bufferOffset == rhs.bufferOffset )
  18025. && ( bufferRowLength == rhs.bufferRowLength )
  18026. && ( bufferImageHeight == rhs.bufferImageHeight )
  18027. && ( imageSubresource == rhs.imageSubresource )
  18028. && ( imageOffset == rhs.imageOffset )
  18029. && ( imageExtent == rhs.imageExtent );
  18030. }
  18031. bool operator!=( BufferImageCopy const& rhs ) const
  18032. {
  18033. return !operator==( rhs );
  18034. }
  18035. DeviceSize bufferOffset;
  18036. uint32_t bufferRowLength;
  18037. uint32_t bufferImageHeight;
  18038. ImageSubresourceLayers imageSubresource;
  18039. Offset3D imageOffset;
  18040. Extent3D imageExtent;
  18041. };
  18042. static_assert( sizeof( BufferImageCopy ) == sizeof( VkBufferImageCopy ), "struct and wrapper have different size!" );
  18043. struct BufferMemoryBarrier
  18044. {
  18045. BufferMemoryBarrier( AccessFlags srcAccessMask_ = AccessFlags(),
  18046. AccessFlags dstAccessMask_ = AccessFlags(),
  18047. uint32_t srcQueueFamilyIndex_ = 0,
  18048. uint32_t dstQueueFamilyIndex_ = 0,
  18049. Buffer buffer_ = Buffer(),
  18050. DeviceSize offset_ = 0,
  18051. DeviceSize size_ = 0 )
  18052. : srcAccessMask( srcAccessMask_ )
  18053. , dstAccessMask( dstAccessMask_ )
  18054. , srcQueueFamilyIndex( srcQueueFamilyIndex_ )
  18055. , dstQueueFamilyIndex( dstQueueFamilyIndex_ )
  18056. , buffer( buffer_ )
  18057. , offset( offset_ )
  18058. , size( size_ )
  18059. {}
  18060. BufferMemoryBarrier( VkBufferMemoryBarrier const & rhs )
  18061. {
  18062. *reinterpret_cast<VkBufferMemoryBarrier*>(this) = rhs;
  18063. }
  18064. BufferMemoryBarrier& operator=( VkBufferMemoryBarrier const & rhs )
  18065. {
  18066. *reinterpret_cast<VkBufferMemoryBarrier*>(this) = rhs;
  18067. return *this;
  18068. }
  18069. BufferMemoryBarrier & setPNext( const void* pNext_ )
  18070. {
  18071. pNext = pNext_;
  18072. return *this;
  18073. }
  18074. BufferMemoryBarrier & setSrcAccessMask( AccessFlags srcAccessMask_ )
  18075. {
  18076. srcAccessMask = srcAccessMask_;
  18077. return *this;
  18078. }
  18079. BufferMemoryBarrier & setDstAccessMask( AccessFlags dstAccessMask_ )
  18080. {
  18081. dstAccessMask = dstAccessMask_;
  18082. return *this;
  18083. }
  18084. BufferMemoryBarrier & setSrcQueueFamilyIndex( uint32_t srcQueueFamilyIndex_ )
  18085. {
  18086. srcQueueFamilyIndex = srcQueueFamilyIndex_;
  18087. return *this;
  18088. }
  18089. BufferMemoryBarrier & setDstQueueFamilyIndex( uint32_t dstQueueFamilyIndex_ )
  18090. {
  18091. dstQueueFamilyIndex = dstQueueFamilyIndex_;
  18092. return *this;
  18093. }
  18094. BufferMemoryBarrier & setBuffer( Buffer buffer_ )
  18095. {
  18096. buffer = buffer_;
  18097. return *this;
  18098. }
  18099. BufferMemoryBarrier & setOffset( DeviceSize offset_ )
  18100. {
  18101. offset = offset_;
  18102. return *this;
  18103. }
  18104. BufferMemoryBarrier & setSize( DeviceSize size_ )
  18105. {
  18106. size = size_;
  18107. return *this;
  18108. }
  18109. operator VkBufferMemoryBarrier const&() const
  18110. {
  18111. return *reinterpret_cast<const VkBufferMemoryBarrier*>( this );
  18112. }
  18113. operator VkBufferMemoryBarrier &()
  18114. {
  18115. return *reinterpret_cast<VkBufferMemoryBarrier*>( this );
  18116. }
  18117. bool operator==( BufferMemoryBarrier const& rhs ) const
  18118. {
  18119. return ( sType == rhs.sType )
  18120. && ( pNext == rhs.pNext )
  18121. && ( srcAccessMask == rhs.srcAccessMask )
  18122. && ( dstAccessMask == rhs.dstAccessMask )
  18123. && ( srcQueueFamilyIndex == rhs.srcQueueFamilyIndex )
  18124. && ( dstQueueFamilyIndex == rhs.dstQueueFamilyIndex )
  18125. && ( buffer == rhs.buffer )
  18126. && ( offset == rhs.offset )
  18127. && ( size == rhs.size );
  18128. }
  18129. bool operator!=( BufferMemoryBarrier const& rhs ) const
  18130. {
  18131. return !operator==( rhs );
  18132. }
  18133. private:
  18134. StructureType sType = StructureType::eBufferMemoryBarrier;
  18135. public:
  18136. const void* pNext = nullptr;
  18137. AccessFlags srcAccessMask;
  18138. AccessFlags dstAccessMask;
  18139. uint32_t srcQueueFamilyIndex;
  18140. uint32_t dstQueueFamilyIndex;
  18141. Buffer buffer;
  18142. DeviceSize offset;
  18143. DeviceSize size;
  18144. };
  18145. static_assert( sizeof( BufferMemoryBarrier ) == sizeof( VkBufferMemoryBarrier ), "struct and wrapper have different size!" );
  18146. struct BufferMemoryRequirementsInfo2
  18147. {
  18148. BufferMemoryRequirementsInfo2( Buffer buffer_ = Buffer() )
  18149. : buffer( buffer_ )
  18150. {}
  18151. BufferMemoryRequirementsInfo2( VkBufferMemoryRequirementsInfo2 const & rhs )
  18152. {
  18153. *reinterpret_cast<VkBufferMemoryRequirementsInfo2*>(this) = rhs;
  18154. }
  18155. BufferMemoryRequirementsInfo2& operator=( VkBufferMemoryRequirementsInfo2 const & rhs )
  18156. {
  18157. *reinterpret_cast<VkBufferMemoryRequirementsInfo2*>(this) = rhs;
  18158. return *this;
  18159. }
  18160. BufferMemoryRequirementsInfo2 & setPNext( const void* pNext_ )
  18161. {
  18162. pNext = pNext_;
  18163. return *this;
  18164. }
  18165. BufferMemoryRequirementsInfo2 & setBuffer( Buffer buffer_ )
  18166. {
  18167. buffer = buffer_;
  18168. return *this;
  18169. }
  18170. operator VkBufferMemoryRequirementsInfo2 const&() const
  18171. {
  18172. return *reinterpret_cast<const VkBufferMemoryRequirementsInfo2*>( this );
  18173. }
  18174. operator VkBufferMemoryRequirementsInfo2 &()
  18175. {
  18176. return *reinterpret_cast<VkBufferMemoryRequirementsInfo2*>( this );
  18177. }
  18178. bool operator==( BufferMemoryRequirementsInfo2 const& rhs ) const
  18179. {
  18180. return ( sType == rhs.sType )
  18181. && ( pNext == rhs.pNext )
  18182. && ( buffer == rhs.buffer );
  18183. }
  18184. bool operator!=( BufferMemoryRequirementsInfo2 const& rhs ) const
  18185. {
  18186. return !operator==( rhs );
  18187. }
  18188. private:
  18189. StructureType sType = StructureType::eBufferMemoryRequirementsInfo2;
  18190. public:
  18191. const void* pNext = nullptr;
  18192. Buffer buffer;
  18193. };
  18194. static_assert( sizeof( BufferMemoryRequirementsInfo2 ) == sizeof( VkBufferMemoryRequirementsInfo2 ), "struct and wrapper have different size!" );
  18195. struct BufferViewCreateInfo
  18196. {
  18197. BufferViewCreateInfo( BufferViewCreateFlags flags_ = BufferViewCreateFlags(),
  18198. Buffer buffer_ = Buffer(),
  18199. Format format_ = Format::eUndefined,
  18200. DeviceSize offset_ = 0,
  18201. DeviceSize range_ = 0 )
  18202. : flags( flags_ )
  18203. , buffer( buffer_ )
  18204. , format( format_ )
  18205. , offset( offset_ )
  18206. , range( range_ )
  18207. {}
  18208. BufferViewCreateInfo( VkBufferViewCreateInfo const & rhs )
  18209. {
  18210. *reinterpret_cast<VkBufferViewCreateInfo*>(this) = rhs;
  18211. }
  18212. BufferViewCreateInfo& operator=( VkBufferViewCreateInfo const & rhs )
  18213. {
  18214. *reinterpret_cast<VkBufferViewCreateInfo*>(this) = rhs;
  18215. return *this;
  18216. }
  18217. BufferViewCreateInfo & setPNext( const void* pNext_ )
  18218. {
  18219. pNext = pNext_;
  18220. return *this;
  18221. }
  18222. BufferViewCreateInfo & setFlags( BufferViewCreateFlags flags_ )
  18223. {
  18224. flags = flags_;
  18225. return *this;
  18226. }
  18227. BufferViewCreateInfo & setBuffer( Buffer buffer_ )
  18228. {
  18229. buffer = buffer_;
  18230. return *this;
  18231. }
  18232. BufferViewCreateInfo & setFormat( Format format_ )
  18233. {
  18234. format = format_;
  18235. return *this;
  18236. }
  18237. BufferViewCreateInfo & setOffset( DeviceSize offset_ )
  18238. {
  18239. offset = offset_;
  18240. return *this;
  18241. }
  18242. BufferViewCreateInfo & setRange( DeviceSize range_ )
  18243. {
  18244. range = range_;
  18245. return *this;
  18246. }
  18247. operator VkBufferViewCreateInfo const&() const
  18248. {
  18249. return *reinterpret_cast<const VkBufferViewCreateInfo*>( this );
  18250. }
  18251. operator VkBufferViewCreateInfo &()
  18252. {
  18253. return *reinterpret_cast<VkBufferViewCreateInfo*>( this );
  18254. }
  18255. bool operator==( BufferViewCreateInfo const& rhs ) const
  18256. {
  18257. return ( sType == rhs.sType )
  18258. && ( pNext == rhs.pNext )
  18259. && ( flags == rhs.flags )
  18260. && ( buffer == rhs.buffer )
  18261. && ( format == rhs.format )
  18262. && ( offset == rhs.offset )
  18263. && ( range == rhs.range );
  18264. }
  18265. bool operator!=( BufferViewCreateInfo const& rhs ) const
  18266. {
  18267. return !operator==( rhs );
  18268. }
  18269. private:
  18270. StructureType sType = StructureType::eBufferViewCreateInfo;
  18271. public:
  18272. const void* pNext = nullptr;
  18273. BufferViewCreateFlags flags;
  18274. Buffer buffer;
  18275. Format format;
  18276. DeviceSize offset;
  18277. DeviceSize range;
  18278. };
  18279. static_assert( sizeof( BufferViewCreateInfo ) == sizeof( VkBufferViewCreateInfo ), "struct and wrapper have different size!" );
  18280. struct CalibratedTimestampInfoEXT
  18281. {
  18282. CalibratedTimestampInfoEXT( TimeDomainEXT timeDomain_ = TimeDomainEXT::eDevice )
  18283. : timeDomain( timeDomain_ )
  18284. {}
  18285. CalibratedTimestampInfoEXT( VkCalibratedTimestampInfoEXT const & rhs )
  18286. {
  18287. *reinterpret_cast<VkCalibratedTimestampInfoEXT*>(this) = rhs;
  18288. }
  18289. CalibratedTimestampInfoEXT& operator=( VkCalibratedTimestampInfoEXT const & rhs )
  18290. {
  18291. *reinterpret_cast<VkCalibratedTimestampInfoEXT*>(this) = rhs;
  18292. return *this;
  18293. }
  18294. CalibratedTimestampInfoEXT & setPNext( const void* pNext_ )
  18295. {
  18296. pNext = pNext_;
  18297. return *this;
  18298. }
  18299. CalibratedTimestampInfoEXT & setTimeDomain( TimeDomainEXT timeDomain_ )
  18300. {
  18301. timeDomain = timeDomain_;
  18302. return *this;
  18303. }
  18304. operator VkCalibratedTimestampInfoEXT const&() const
  18305. {
  18306. return *reinterpret_cast<const VkCalibratedTimestampInfoEXT*>( this );
  18307. }
  18308. operator VkCalibratedTimestampInfoEXT &()
  18309. {
  18310. return *reinterpret_cast<VkCalibratedTimestampInfoEXT*>( this );
  18311. }
  18312. bool operator==( CalibratedTimestampInfoEXT const& rhs ) const
  18313. {
  18314. return ( sType == rhs.sType )
  18315. && ( pNext == rhs.pNext )
  18316. && ( timeDomain == rhs.timeDomain );
  18317. }
  18318. bool operator!=( CalibratedTimestampInfoEXT const& rhs ) const
  18319. {
  18320. return !operator==( rhs );
  18321. }
  18322. private:
  18323. StructureType sType = StructureType::eCalibratedTimestampInfoEXT;
  18324. public:
  18325. const void* pNext = nullptr;
  18326. TimeDomainEXT timeDomain;
  18327. };
  18328. static_assert( sizeof( CalibratedTimestampInfoEXT ) == sizeof( VkCalibratedTimestampInfoEXT ), "struct and wrapper have different size!" );
  18329. struct CheckpointDataNV
  18330. {
  18331. operator VkCheckpointDataNV const&() const
  18332. {
  18333. return *reinterpret_cast<const VkCheckpointDataNV*>( this );
  18334. }
  18335. operator VkCheckpointDataNV &()
  18336. {
  18337. return *reinterpret_cast<VkCheckpointDataNV*>( this );
  18338. }
  18339. bool operator==( CheckpointDataNV const& rhs ) const
  18340. {
  18341. return ( sType == rhs.sType )
  18342. && ( pNext == rhs.pNext )
  18343. && ( stage == rhs.stage )
  18344. && ( pCheckpointMarker == rhs.pCheckpointMarker );
  18345. }
  18346. bool operator!=( CheckpointDataNV const& rhs ) const
  18347. {
  18348. return !operator==( rhs );
  18349. }
  18350. private:
  18351. StructureType sType = StructureType::eCheckpointDataNV;
  18352. public:
  18353. void* pNext = nullptr;
  18354. PipelineStageFlagBits stage;
  18355. void* pCheckpointMarker;
  18356. };
  18357. static_assert( sizeof( CheckpointDataNV ) == sizeof( VkCheckpointDataNV ), "struct and wrapper have different size!" );
  18358. union ClearColorValue
  18359. {
  18360. ClearColorValue( const std::array<float,4>& float32_ = { { 0 } } )
  18361. {
  18362. memcpy( float32, float32_.data(), 4 * sizeof( float ) );
  18363. }
  18364. ClearColorValue( const std::array<int32_t,4>& int32_ )
  18365. {
  18366. memcpy( int32, int32_.data(), 4 * sizeof( int32_t ) );
  18367. }
  18368. ClearColorValue( const std::array<uint32_t,4>& uint32_ )
  18369. {
  18370. memcpy( uint32, uint32_.data(), 4 * sizeof( uint32_t ) );
  18371. }
  18372. ClearColorValue & setFloat32( std::array<float,4> float32_ )
  18373. {
  18374. memcpy( float32, float32_.data(), 4 * sizeof( float ) );
  18375. return *this;
  18376. }
  18377. ClearColorValue & setInt32( std::array<int32_t,4> int32_ )
  18378. {
  18379. memcpy( int32, int32_.data(), 4 * sizeof( int32_t ) );
  18380. return *this;
  18381. }
  18382. ClearColorValue & setUint32( std::array<uint32_t,4> uint32_ )
  18383. {
  18384. memcpy( uint32, uint32_.data(), 4 * sizeof( uint32_t ) );
  18385. return *this;
  18386. }
  18387. operator VkClearColorValue const&() const
  18388. {
  18389. return *reinterpret_cast<const VkClearColorValue*>(this);
  18390. }
  18391. operator VkClearColorValue &()
  18392. {
  18393. return *reinterpret_cast<VkClearColorValue*>(this);
  18394. }
  18395. float float32[4];
  18396. int32_t int32[4];
  18397. uint32_t uint32[4];
  18398. };
  18399. struct ClearDepthStencilValue
  18400. {
  18401. ClearDepthStencilValue( float depth_ = 0,
  18402. uint32_t stencil_ = 0 )
  18403. : depth( depth_ )
  18404. , stencil( stencil_ )
  18405. {}
  18406. ClearDepthStencilValue( VkClearDepthStencilValue const & rhs )
  18407. {
  18408. *reinterpret_cast<VkClearDepthStencilValue*>(this) = rhs;
  18409. }
  18410. ClearDepthStencilValue& operator=( VkClearDepthStencilValue const & rhs )
  18411. {
  18412. *reinterpret_cast<VkClearDepthStencilValue*>(this) = rhs;
  18413. return *this;
  18414. }
  18415. ClearDepthStencilValue & setDepth( float depth_ )
  18416. {
  18417. depth = depth_;
  18418. return *this;
  18419. }
  18420. ClearDepthStencilValue & setStencil( uint32_t stencil_ )
  18421. {
  18422. stencil = stencil_;
  18423. return *this;
  18424. }
  18425. operator VkClearDepthStencilValue const&() const
  18426. {
  18427. return *reinterpret_cast<const VkClearDepthStencilValue*>( this );
  18428. }
  18429. operator VkClearDepthStencilValue &()
  18430. {
  18431. return *reinterpret_cast<VkClearDepthStencilValue*>( this );
  18432. }
  18433. bool operator==( ClearDepthStencilValue const& rhs ) const
  18434. {
  18435. return ( depth == rhs.depth )
  18436. && ( stencil == rhs.stencil );
  18437. }
  18438. bool operator!=( ClearDepthStencilValue const& rhs ) const
  18439. {
  18440. return !operator==( rhs );
  18441. }
  18442. float depth;
  18443. uint32_t stencil;
  18444. };
  18445. static_assert( sizeof( ClearDepthStencilValue ) == sizeof( VkClearDepthStencilValue ), "struct and wrapper have different size!" );
  18446. union ClearValue
  18447. {
  18448. ClearValue( ClearColorValue color_ = ClearColorValue() )
  18449. {
  18450. color = color_;
  18451. }
  18452. ClearValue( ClearDepthStencilValue depthStencil_ )
  18453. {
  18454. depthStencil = depthStencil_;
  18455. }
  18456. ClearValue & setColor( ClearColorValue color_ )
  18457. {
  18458. color = color_;
  18459. return *this;
  18460. }
  18461. ClearValue & setDepthStencil( ClearDepthStencilValue depthStencil_ )
  18462. {
  18463. depthStencil = depthStencil_;
  18464. return *this;
  18465. }
  18466. operator VkClearValue const&() const
  18467. {
  18468. return *reinterpret_cast<const VkClearValue*>(this);
  18469. }
  18470. operator VkClearValue &()
  18471. {
  18472. return *reinterpret_cast<VkClearValue*>(this);
  18473. }
  18474. #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
  18475. ClearColorValue color;
  18476. ClearDepthStencilValue depthStencil;
  18477. #else
  18478. VkClearColorValue color;
  18479. VkClearDepthStencilValue depthStencil;
  18480. #endif /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
  18481. };
  18482. struct ClearAttachment
  18483. {
  18484. ClearAttachment( ImageAspectFlags aspectMask_ = ImageAspectFlags(),
  18485. uint32_t colorAttachment_ = 0,
  18486. ClearValue clearValue_ = ClearValue() )
  18487. : aspectMask( aspectMask_ )
  18488. , colorAttachment( colorAttachment_ )
  18489. , clearValue( clearValue_ )
  18490. {}
  18491. ClearAttachment( VkClearAttachment const & rhs )
  18492. {
  18493. *reinterpret_cast<VkClearAttachment*>(this) = rhs;
  18494. }
  18495. ClearAttachment& operator=( VkClearAttachment const & rhs )
  18496. {
  18497. *reinterpret_cast<VkClearAttachment*>(this) = rhs;
  18498. return *this;
  18499. }
  18500. ClearAttachment & setAspectMask( ImageAspectFlags aspectMask_ )
  18501. {
  18502. aspectMask = aspectMask_;
  18503. return *this;
  18504. }
  18505. ClearAttachment & setColorAttachment( uint32_t colorAttachment_ )
  18506. {
  18507. colorAttachment = colorAttachment_;
  18508. return *this;
  18509. }
  18510. ClearAttachment & setClearValue( ClearValue clearValue_ )
  18511. {
  18512. clearValue = clearValue_;
  18513. return *this;
  18514. }
  18515. operator VkClearAttachment const&() const
  18516. {
  18517. return *reinterpret_cast<const VkClearAttachment*>( this );
  18518. }
  18519. operator VkClearAttachment &()
  18520. {
  18521. return *reinterpret_cast<VkClearAttachment*>( this );
  18522. }
  18523. ImageAspectFlags aspectMask;
  18524. uint32_t colorAttachment;
  18525. ClearValue clearValue;
  18526. };
  18527. static_assert( sizeof( ClearAttachment ) == sizeof( VkClearAttachment ), "struct and wrapper have different size!" );
  18528. struct ClearRect
  18529. {
  18530. ClearRect( Rect2D rect_ = Rect2D(),
  18531. uint32_t baseArrayLayer_ = 0,
  18532. uint32_t layerCount_ = 0 )
  18533. : rect( rect_ )
  18534. , baseArrayLayer( baseArrayLayer_ )
  18535. , layerCount( layerCount_ )
  18536. {}
  18537. ClearRect( VkClearRect const & rhs )
  18538. {
  18539. *reinterpret_cast<VkClearRect*>(this) = rhs;
  18540. }
  18541. ClearRect& operator=( VkClearRect const & rhs )
  18542. {
  18543. *reinterpret_cast<VkClearRect*>(this) = rhs;
  18544. return *this;
  18545. }
  18546. ClearRect & setRect( Rect2D rect_ )
  18547. {
  18548. rect = rect_;
  18549. return *this;
  18550. }
  18551. ClearRect & setBaseArrayLayer( uint32_t baseArrayLayer_ )
  18552. {
  18553. baseArrayLayer = baseArrayLayer_;
  18554. return *this;
  18555. }
  18556. ClearRect & setLayerCount( uint32_t layerCount_ )
  18557. {
  18558. layerCount = layerCount_;
  18559. return *this;
  18560. }
  18561. operator VkClearRect const&() const
  18562. {
  18563. return *reinterpret_cast<const VkClearRect*>( this );
  18564. }
  18565. operator VkClearRect &()
  18566. {
  18567. return *reinterpret_cast<VkClearRect*>( this );
  18568. }
  18569. bool operator==( ClearRect const& rhs ) const
  18570. {
  18571. return ( rect == rhs.rect )
  18572. && ( baseArrayLayer == rhs.baseArrayLayer )
  18573. && ( layerCount == rhs.layerCount );
  18574. }
  18575. bool operator!=( ClearRect const& rhs ) const
  18576. {
  18577. return !operator==( rhs );
  18578. }
  18579. Rect2D rect;
  18580. uint32_t baseArrayLayer;
  18581. uint32_t layerCount;
  18582. };
  18583. static_assert( sizeof( ClearRect ) == sizeof( VkClearRect ), "struct and wrapper have different size!" );
  18584. struct IndirectCommandsTokenNVX
  18585. {
  18586. IndirectCommandsTokenNVX( IndirectCommandsTokenTypeNVX tokenType_ = IndirectCommandsTokenTypeNVX::ePipeline,
  18587. Buffer buffer_ = Buffer(),
  18588. DeviceSize offset_ = 0 )
  18589. : tokenType( tokenType_ )
  18590. , buffer( buffer_ )
  18591. , offset( offset_ )
  18592. {}
  18593. IndirectCommandsTokenNVX( VkIndirectCommandsTokenNVX const & rhs )
  18594. {
  18595. *reinterpret_cast<VkIndirectCommandsTokenNVX*>(this) = rhs;
  18596. }
  18597. IndirectCommandsTokenNVX& operator=( VkIndirectCommandsTokenNVX const & rhs )
  18598. {
  18599. *reinterpret_cast<VkIndirectCommandsTokenNVX*>(this) = rhs;
  18600. return *this;
  18601. }
  18602. IndirectCommandsTokenNVX & setTokenType( IndirectCommandsTokenTypeNVX tokenType_ )
  18603. {
  18604. tokenType = tokenType_;
  18605. return *this;
  18606. }
  18607. IndirectCommandsTokenNVX & setBuffer( Buffer buffer_ )
  18608. {
  18609. buffer = buffer_;
  18610. return *this;
  18611. }
  18612. IndirectCommandsTokenNVX & setOffset( DeviceSize offset_ )
  18613. {
  18614. offset = offset_;
  18615. return *this;
  18616. }
  18617. operator VkIndirectCommandsTokenNVX const&() const
  18618. {
  18619. return *reinterpret_cast<const VkIndirectCommandsTokenNVX*>( this );
  18620. }
  18621. operator VkIndirectCommandsTokenNVX &()
  18622. {
  18623. return *reinterpret_cast<VkIndirectCommandsTokenNVX*>( this );
  18624. }
  18625. bool operator==( IndirectCommandsTokenNVX const& rhs ) const
  18626. {
  18627. return ( tokenType == rhs.tokenType )
  18628. && ( buffer == rhs.buffer )
  18629. && ( offset == rhs.offset );
  18630. }
  18631. bool operator!=( IndirectCommandsTokenNVX const& rhs ) const
  18632. {
  18633. return !operator==( rhs );
  18634. }
  18635. IndirectCommandsTokenTypeNVX tokenType;
  18636. Buffer buffer;
  18637. DeviceSize offset;
  18638. };
  18639. static_assert( sizeof( IndirectCommandsTokenNVX ) == sizeof( VkIndirectCommandsTokenNVX ), "struct and wrapper have different size!" );
  18640. struct CmdProcessCommandsInfoNVX
  18641. {
  18642. CmdProcessCommandsInfoNVX( ObjectTableNVX objectTable_ = ObjectTableNVX(),
  18643. IndirectCommandsLayoutNVX indirectCommandsLayout_ = IndirectCommandsLayoutNVX(),
  18644. uint32_t indirectCommandsTokenCount_ = 0,
  18645. const IndirectCommandsTokenNVX* pIndirectCommandsTokens_ = nullptr,
  18646. uint32_t maxSequencesCount_ = 0,
  18647. CommandBuffer targetCommandBuffer_ = CommandBuffer(),
  18648. Buffer sequencesCountBuffer_ = Buffer(),
  18649. DeviceSize sequencesCountOffset_ = 0,
  18650. Buffer sequencesIndexBuffer_ = Buffer(),
  18651. DeviceSize sequencesIndexOffset_ = 0 )
  18652. : objectTable( objectTable_ )
  18653. , indirectCommandsLayout( indirectCommandsLayout_ )
  18654. , indirectCommandsTokenCount( indirectCommandsTokenCount_ )
  18655. , pIndirectCommandsTokens( pIndirectCommandsTokens_ )
  18656. , maxSequencesCount( maxSequencesCount_ )
  18657. , targetCommandBuffer( targetCommandBuffer_ )
  18658. , sequencesCountBuffer( sequencesCountBuffer_ )
  18659. , sequencesCountOffset( sequencesCountOffset_ )
  18660. , sequencesIndexBuffer( sequencesIndexBuffer_ )
  18661. , sequencesIndexOffset( sequencesIndexOffset_ )
  18662. {}
  18663. CmdProcessCommandsInfoNVX( VkCmdProcessCommandsInfoNVX const & rhs )
  18664. {
  18665. *reinterpret_cast<VkCmdProcessCommandsInfoNVX*>(this) = rhs;
  18666. }
  18667. CmdProcessCommandsInfoNVX& operator=( VkCmdProcessCommandsInfoNVX const & rhs )
  18668. {
  18669. *reinterpret_cast<VkCmdProcessCommandsInfoNVX*>(this) = rhs;
  18670. return *this;
  18671. }
  18672. CmdProcessCommandsInfoNVX & setPNext( const void* pNext_ )
  18673. {
  18674. pNext = pNext_;
  18675. return *this;
  18676. }
  18677. CmdProcessCommandsInfoNVX & setObjectTable( ObjectTableNVX objectTable_ )
  18678. {
  18679. objectTable = objectTable_;
  18680. return *this;
  18681. }
  18682. CmdProcessCommandsInfoNVX & setIndirectCommandsLayout( IndirectCommandsLayoutNVX indirectCommandsLayout_ )
  18683. {
  18684. indirectCommandsLayout = indirectCommandsLayout_;
  18685. return *this;
  18686. }
  18687. CmdProcessCommandsInfoNVX & setIndirectCommandsTokenCount( uint32_t indirectCommandsTokenCount_ )
  18688. {
  18689. indirectCommandsTokenCount = indirectCommandsTokenCount_;
  18690. return *this;
  18691. }
  18692. CmdProcessCommandsInfoNVX & setPIndirectCommandsTokens( const IndirectCommandsTokenNVX* pIndirectCommandsTokens_ )
  18693. {
  18694. pIndirectCommandsTokens = pIndirectCommandsTokens_;
  18695. return *this;
  18696. }
  18697. CmdProcessCommandsInfoNVX & setMaxSequencesCount( uint32_t maxSequencesCount_ )
  18698. {
  18699. maxSequencesCount = maxSequencesCount_;
  18700. return *this;
  18701. }
  18702. CmdProcessCommandsInfoNVX & setTargetCommandBuffer( CommandBuffer targetCommandBuffer_ )
  18703. {
  18704. targetCommandBuffer = targetCommandBuffer_;
  18705. return *this;
  18706. }
  18707. CmdProcessCommandsInfoNVX & setSequencesCountBuffer( Buffer sequencesCountBuffer_ )
  18708. {
  18709. sequencesCountBuffer = sequencesCountBuffer_;
  18710. return *this;
  18711. }
  18712. CmdProcessCommandsInfoNVX & setSequencesCountOffset( DeviceSize sequencesCountOffset_ )
  18713. {
  18714. sequencesCountOffset = sequencesCountOffset_;
  18715. return *this;
  18716. }
  18717. CmdProcessCommandsInfoNVX & setSequencesIndexBuffer( Buffer sequencesIndexBuffer_ )
  18718. {
  18719. sequencesIndexBuffer = sequencesIndexBuffer_;
  18720. return *this;
  18721. }
  18722. CmdProcessCommandsInfoNVX & setSequencesIndexOffset( DeviceSize sequencesIndexOffset_ )
  18723. {
  18724. sequencesIndexOffset = sequencesIndexOffset_;
  18725. return *this;
  18726. }
  18727. operator VkCmdProcessCommandsInfoNVX const&() const
  18728. {
  18729. return *reinterpret_cast<const VkCmdProcessCommandsInfoNVX*>( this );
  18730. }
  18731. operator VkCmdProcessCommandsInfoNVX &()
  18732. {
  18733. return *reinterpret_cast<VkCmdProcessCommandsInfoNVX*>( this );
  18734. }
  18735. bool operator==( CmdProcessCommandsInfoNVX const& rhs ) const
  18736. {
  18737. return ( sType == rhs.sType )
  18738. && ( pNext == rhs.pNext )
  18739. && ( objectTable == rhs.objectTable )
  18740. && ( indirectCommandsLayout == rhs.indirectCommandsLayout )
  18741. && ( indirectCommandsTokenCount == rhs.indirectCommandsTokenCount )
  18742. && ( pIndirectCommandsTokens == rhs.pIndirectCommandsTokens )
  18743. && ( maxSequencesCount == rhs.maxSequencesCount )
  18744. && ( targetCommandBuffer == rhs.targetCommandBuffer )
  18745. && ( sequencesCountBuffer == rhs.sequencesCountBuffer )
  18746. && ( sequencesCountOffset == rhs.sequencesCountOffset )
  18747. && ( sequencesIndexBuffer == rhs.sequencesIndexBuffer )
  18748. && ( sequencesIndexOffset == rhs.sequencesIndexOffset );
  18749. }
  18750. bool operator!=( CmdProcessCommandsInfoNVX const& rhs ) const
  18751. {
  18752. return !operator==( rhs );
  18753. }
  18754. private:
  18755. StructureType sType = StructureType::eCmdProcessCommandsInfoNVX;
  18756. public:
  18757. const void* pNext = nullptr;
  18758. ObjectTableNVX objectTable;
  18759. IndirectCommandsLayoutNVX indirectCommandsLayout;
  18760. uint32_t indirectCommandsTokenCount;
  18761. const IndirectCommandsTokenNVX* pIndirectCommandsTokens;
  18762. uint32_t maxSequencesCount;
  18763. CommandBuffer targetCommandBuffer;
  18764. Buffer sequencesCountBuffer;
  18765. DeviceSize sequencesCountOffset;
  18766. Buffer sequencesIndexBuffer;
  18767. DeviceSize sequencesIndexOffset;
  18768. };
  18769. static_assert( sizeof( CmdProcessCommandsInfoNVX ) == sizeof( VkCmdProcessCommandsInfoNVX ), "struct and wrapper have different size!" );
  18770. struct CmdReserveSpaceForCommandsInfoNVX
  18771. {
  18772. CmdReserveSpaceForCommandsInfoNVX( ObjectTableNVX objectTable_ = ObjectTableNVX(),
  18773. IndirectCommandsLayoutNVX indirectCommandsLayout_ = IndirectCommandsLayoutNVX(),
  18774. uint32_t maxSequencesCount_ = 0 )
  18775. : objectTable( objectTable_ )
  18776. , indirectCommandsLayout( indirectCommandsLayout_ )
  18777. , maxSequencesCount( maxSequencesCount_ )
  18778. {}
  18779. CmdReserveSpaceForCommandsInfoNVX( VkCmdReserveSpaceForCommandsInfoNVX const & rhs )
  18780. {
  18781. *reinterpret_cast<VkCmdReserveSpaceForCommandsInfoNVX*>(this) = rhs;
  18782. }
  18783. CmdReserveSpaceForCommandsInfoNVX& operator=( VkCmdReserveSpaceForCommandsInfoNVX const & rhs )
  18784. {
  18785. *reinterpret_cast<VkCmdReserveSpaceForCommandsInfoNVX*>(this) = rhs;
  18786. return *this;
  18787. }
  18788. CmdReserveSpaceForCommandsInfoNVX & setPNext( const void* pNext_ )
  18789. {
  18790. pNext = pNext_;
  18791. return *this;
  18792. }
  18793. CmdReserveSpaceForCommandsInfoNVX & setObjectTable( ObjectTableNVX objectTable_ )
  18794. {
  18795. objectTable = objectTable_;
  18796. return *this;
  18797. }
  18798. CmdReserveSpaceForCommandsInfoNVX & setIndirectCommandsLayout( IndirectCommandsLayoutNVX indirectCommandsLayout_ )
  18799. {
  18800. indirectCommandsLayout = indirectCommandsLayout_;
  18801. return *this;
  18802. }
  18803. CmdReserveSpaceForCommandsInfoNVX & setMaxSequencesCount( uint32_t maxSequencesCount_ )
  18804. {
  18805. maxSequencesCount = maxSequencesCount_;
  18806. return *this;
  18807. }
  18808. operator VkCmdReserveSpaceForCommandsInfoNVX const&() const
  18809. {
  18810. return *reinterpret_cast<const VkCmdReserveSpaceForCommandsInfoNVX*>( this );
  18811. }
  18812. operator VkCmdReserveSpaceForCommandsInfoNVX &()
  18813. {
  18814. return *reinterpret_cast<VkCmdReserveSpaceForCommandsInfoNVX*>( this );
  18815. }
  18816. bool operator==( CmdReserveSpaceForCommandsInfoNVX const& rhs ) const
  18817. {
  18818. return ( sType == rhs.sType )
  18819. && ( pNext == rhs.pNext )
  18820. && ( objectTable == rhs.objectTable )
  18821. && ( indirectCommandsLayout == rhs.indirectCommandsLayout )
  18822. && ( maxSequencesCount == rhs.maxSequencesCount );
  18823. }
  18824. bool operator!=( CmdReserveSpaceForCommandsInfoNVX const& rhs ) const
  18825. {
  18826. return !operator==( rhs );
  18827. }
  18828. private:
  18829. StructureType sType = StructureType::eCmdReserveSpaceForCommandsInfoNVX;
  18830. public:
  18831. const void* pNext = nullptr;
  18832. ObjectTableNVX objectTable;
  18833. IndirectCommandsLayoutNVX indirectCommandsLayout;
  18834. uint32_t maxSequencesCount;
  18835. };
  18836. static_assert( sizeof( CmdReserveSpaceForCommandsInfoNVX ) == sizeof( VkCmdReserveSpaceForCommandsInfoNVX ), "struct and wrapper have different size!" );
  18837. struct CoarseSampleLocationNV
  18838. {
  18839. CoarseSampleLocationNV( uint32_t pixelX_ = 0,
  18840. uint32_t pixelY_ = 0,
  18841. uint32_t sample_ = 0 )
  18842. : pixelX( pixelX_ )
  18843. , pixelY( pixelY_ )
  18844. , sample( sample_ )
  18845. {}
  18846. CoarseSampleLocationNV( VkCoarseSampleLocationNV const & rhs )
  18847. {
  18848. *reinterpret_cast<VkCoarseSampleLocationNV*>(this) = rhs;
  18849. }
  18850. CoarseSampleLocationNV& operator=( VkCoarseSampleLocationNV const & rhs )
  18851. {
  18852. *reinterpret_cast<VkCoarseSampleLocationNV*>(this) = rhs;
  18853. return *this;
  18854. }
  18855. CoarseSampleLocationNV & setPixelX( uint32_t pixelX_ )
  18856. {
  18857. pixelX = pixelX_;
  18858. return *this;
  18859. }
  18860. CoarseSampleLocationNV & setPixelY( uint32_t pixelY_ )
  18861. {
  18862. pixelY = pixelY_;
  18863. return *this;
  18864. }
  18865. CoarseSampleLocationNV & setSample( uint32_t sample_ )
  18866. {
  18867. sample = sample_;
  18868. return *this;
  18869. }
  18870. operator VkCoarseSampleLocationNV const&() const
  18871. {
  18872. return *reinterpret_cast<const VkCoarseSampleLocationNV*>( this );
  18873. }
  18874. operator VkCoarseSampleLocationNV &()
  18875. {
  18876. return *reinterpret_cast<VkCoarseSampleLocationNV*>( this );
  18877. }
  18878. bool operator==( CoarseSampleLocationNV const& rhs ) const
  18879. {
  18880. return ( pixelX == rhs.pixelX )
  18881. && ( pixelY == rhs.pixelY )
  18882. && ( sample == rhs.sample );
  18883. }
  18884. bool operator!=( CoarseSampleLocationNV const& rhs ) const
  18885. {
  18886. return !operator==( rhs );
  18887. }
  18888. uint32_t pixelX;
  18889. uint32_t pixelY;
  18890. uint32_t sample;
  18891. };
  18892. static_assert( sizeof( CoarseSampleLocationNV ) == sizeof( VkCoarseSampleLocationNV ), "struct and wrapper have different size!" );
  18893. struct CoarseSampleOrderCustomNV
  18894. {
  18895. CoarseSampleOrderCustomNV( ShadingRatePaletteEntryNV shadingRate_ = ShadingRatePaletteEntryNV::eNoInvocations,
  18896. uint32_t sampleCount_ = 0,
  18897. uint32_t sampleLocationCount_ = 0,
  18898. const CoarseSampleLocationNV* pSampleLocations_ = nullptr )
  18899. : shadingRate( shadingRate_ )
  18900. , sampleCount( sampleCount_ )
  18901. , sampleLocationCount( sampleLocationCount_ )
  18902. , pSampleLocations( pSampleLocations_ )
  18903. {}
  18904. CoarseSampleOrderCustomNV( VkCoarseSampleOrderCustomNV const & rhs )
  18905. {
  18906. *reinterpret_cast<VkCoarseSampleOrderCustomNV*>(this) = rhs;
  18907. }
  18908. CoarseSampleOrderCustomNV& operator=( VkCoarseSampleOrderCustomNV const & rhs )
  18909. {
  18910. *reinterpret_cast<VkCoarseSampleOrderCustomNV*>(this) = rhs;
  18911. return *this;
  18912. }
  18913. CoarseSampleOrderCustomNV & setShadingRate( ShadingRatePaletteEntryNV shadingRate_ )
  18914. {
  18915. shadingRate = shadingRate_;
  18916. return *this;
  18917. }
  18918. CoarseSampleOrderCustomNV & setSampleCount( uint32_t sampleCount_ )
  18919. {
  18920. sampleCount = sampleCount_;
  18921. return *this;
  18922. }
  18923. CoarseSampleOrderCustomNV & setSampleLocationCount( uint32_t sampleLocationCount_ )
  18924. {
  18925. sampleLocationCount = sampleLocationCount_;
  18926. return *this;
  18927. }
  18928. CoarseSampleOrderCustomNV & setPSampleLocations( const CoarseSampleLocationNV* pSampleLocations_ )
  18929. {
  18930. pSampleLocations = pSampleLocations_;
  18931. return *this;
  18932. }
  18933. operator VkCoarseSampleOrderCustomNV const&() const
  18934. {
  18935. return *reinterpret_cast<const VkCoarseSampleOrderCustomNV*>( this );
  18936. }
  18937. operator VkCoarseSampleOrderCustomNV &()
  18938. {
  18939. return *reinterpret_cast<VkCoarseSampleOrderCustomNV*>( this );
  18940. }
  18941. bool operator==( CoarseSampleOrderCustomNV const& rhs ) const
  18942. {
  18943. return ( shadingRate == rhs.shadingRate )
  18944. && ( sampleCount == rhs.sampleCount )
  18945. && ( sampleLocationCount == rhs.sampleLocationCount )
  18946. && ( pSampleLocations == rhs.pSampleLocations );
  18947. }
  18948. bool operator!=( CoarseSampleOrderCustomNV const& rhs ) const
  18949. {
  18950. return !operator==( rhs );
  18951. }
  18952. ShadingRatePaletteEntryNV shadingRate;
  18953. uint32_t sampleCount;
  18954. uint32_t sampleLocationCount;
  18955. const CoarseSampleLocationNV* pSampleLocations;
  18956. };
  18957. static_assert( sizeof( CoarseSampleOrderCustomNV ) == sizeof( VkCoarseSampleOrderCustomNV ), "struct and wrapper have different size!" );
  18958. struct CommandBufferAllocateInfo
  18959. {
  18960. CommandBufferAllocateInfo( CommandPool commandPool_ = CommandPool(),
  18961. CommandBufferLevel level_ = CommandBufferLevel::ePrimary,
  18962. uint32_t commandBufferCount_ = 0 )
  18963. : commandPool( commandPool_ )
  18964. , level( level_ )
  18965. , commandBufferCount( commandBufferCount_ )
  18966. {}
  18967. CommandBufferAllocateInfo( VkCommandBufferAllocateInfo const & rhs )
  18968. {
  18969. *reinterpret_cast<VkCommandBufferAllocateInfo*>(this) = rhs;
  18970. }
  18971. CommandBufferAllocateInfo& operator=( VkCommandBufferAllocateInfo const & rhs )
  18972. {
  18973. *reinterpret_cast<VkCommandBufferAllocateInfo*>(this) = rhs;
  18974. return *this;
  18975. }
  18976. CommandBufferAllocateInfo & setPNext( const void* pNext_ )
  18977. {
  18978. pNext = pNext_;
  18979. return *this;
  18980. }
  18981. CommandBufferAllocateInfo & setCommandPool( CommandPool commandPool_ )
  18982. {
  18983. commandPool = commandPool_;
  18984. return *this;
  18985. }
  18986. CommandBufferAllocateInfo & setLevel( CommandBufferLevel level_ )
  18987. {
  18988. level = level_;
  18989. return *this;
  18990. }
  18991. CommandBufferAllocateInfo & setCommandBufferCount( uint32_t commandBufferCount_ )
  18992. {
  18993. commandBufferCount = commandBufferCount_;
  18994. return *this;
  18995. }
  18996. operator VkCommandBufferAllocateInfo const&() const
  18997. {
  18998. return *reinterpret_cast<const VkCommandBufferAllocateInfo*>( this );
  18999. }
  19000. operator VkCommandBufferAllocateInfo &()
  19001. {
  19002. return *reinterpret_cast<VkCommandBufferAllocateInfo*>( this );
  19003. }
  19004. bool operator==( CommandBufferAllocateInfo const& rhs ) const
  19005. {
  19006. return ( sType == rhs.sType )
  19007. && ( pNext == rhs.pNext )
  19008. && ( commandPool == rhs.commandPool )
  19009. && ( level == rhs.level )
  19010. && ( commandBufferCount == rhs.commandBufferCount );
  19011. }
  19012. bool operator!=( CommandBufferAllocateInfo const& rhs ) const
  19013. {
  19014. return !operator==( rhs );
  19015. }
  19016. private:
  19017. StructureType sType = StructureType::eCommandBufferAllocateInfo;
  19018. public:
  19019. const void* pNext = nullptr;
  19020. CommandPool commandPool;
  19021. CommandBufferLevel level;
  19022. uint32_t commandBufferCount;
  19023. };
  19024. static_assert( sizeof( CommandBufferAllocateInfo ) == sizeof( VkCommandBufferAllocateInfo ), "struct and wrapper have different size!" );
  19025. struct CommandBufferInheritanceInfo
  19026. {
  19027. CommandBufferInheritanceInfo( RenderPass renderPass_ = RenderPass(),
  19028. uint32_t subpass_ = 0,
  19029. Framebuffer framebuffer_ = Framebuffer(),
  19030. Bool32 occlusionQueryEnable_ = 0,
  19031. QueryControlFlags queryFlags_ = QueryControlFlags(),
  19032. QueryPipelineStatisticFlags pipelineStatistics_ = QueryPipelineStatisticFlags() )
  19033. : renderPass( renderPass_ )
  19034. , subpass( subpass_ )
  19035. , framebuffer( framebuffer_ )
  19036. , occlusionQueryEnable( occlusionQueryEnable_ )
  19037. , queryFlags( queryFlags_ )
  19038. , pipelineStatistics( pipelineStatistics_ )
  19039. {}
  19040. CommandBufferInheritanceInfo( VkCommandBufferInheritanceInfo const & rhs )
  19041. {
  19042. *reinterpret_cast<VkCommandBufferInheritanceInfo*>(this) = rhs;
  19043. }
  19044. CommandBufferInheritanceInfo& operator=( VkCommandBufferInheritanceInfo const & rhs )
  19045. {
  19046. *reinterpret_cast<VkCommandBufferInheritanceInfo*>(this) = rhs;
  19047. return *this;
  19048. }
  19049. CommandBufferInheritanceInfo & setPNext( const void* pNext_ )
  19050. {
  19051. pNext = pNext_;
  19052. return *this;
  19053. }
  19054. CommandBufferInheritanceInfo & setRenderPass( RenderPass renderPass_ )
  19055. {
  19056. renderPass = renderPass_;
  19057. return *this;
  19058. }
  19059. CommandBufferInheritanceInfo & setSubpass( uint32_t subpass_ )
  19060. {
  19061. subpass = subpass_;
  19062. return *this;
  19063. }
  19064. CommandBufferInheritanceInfo & setFramebuffer( Framebuffer framebuffer_ )
  19065. {
  19066. framebuffer = framebuffer_;
  19067. return *this;
  19068. }
  19069. CommandBufferInheritanceInfo & setOcclusionQueryEnable( Bool32 occlusionQueryEnable_ )
  19070. {
  19071. occlusionQueryEnable = occlusionQueryEnable_;
  19072. return *this;
  19073. }
  19074. CommandBufferInheritanceInfo & setQueryFlags( QueryControlFlags queryFlags_ )
  19075. {
  19076. queryFlags = queryFlags_;
  19077. return *this;
  19078. }
  19079. CommandBufferInheritanceInfo & setPipelineStatistics( QueryPipelineStatisticFlags pipelineStatistics_ )
  19080. {
  19081. pipelineStatistics = pipelineStatistics_;
  19082. return *this;
  19083. }
  19084. operator VkCommandBufferInheritanceInfo const&() const
  19085. {
  19086. return *reinterpret_cast<const VkCommandBufferInheritanceInfo*>( this );
  19087. }
  19088. operator VkCommandBufferInheritanceInfo &()
  19089. {
  19090. return *reinterpret_cast<VkCommandBufferInheritanceInfo*>( this );
  19091. }
  19092. bool operator==( CommandBufferInheritanceInfo const& rhs ) const
  19093. {
  19094. return ( sType == rhs.sType )
  19095. && ( pNext == rhs.pNext )
  19096. && ( renderPass == rhs.renderPass )
  19097. && ( subpass == rhs.subpass )
  19098. && ( framebuffer == rhs.framebuffer )
  19099. && ( occlusionQueryEnable == rhs.occlusionQueryEnable )
  19100. && ( queryFlags == rhs.queryFlags )
  19101. && ( pipelineStatistics == rhs.pipelineStatistics );
  19102. }
  19103. bool operator!=( CommandBufferInheritanceInfo const& rhs ) const
  19104. {
  19105. return !operator==( rhs );
  19106. }
  19107. private:
  19108. StructureType sType = StructureType::eCommandBufferInheritanceInfo;
  19109. public:
  19110. const void* pNext = nullptr;
  19111. RenderPass renderPass;
  19112. uint32_t subpass;
  19113. Framebuffer framebuffer;
  19114. Bool32 occlusionQueryEnable;
  19115. QueryControlFlags queryFlags;
  19116. QueryPipelineStatisticFlags pipelineStatistics;
  19117. };
  19118. static_assert( sizeof( CommandBufferInheritanceInfo ) == sizeof( VkCommandBufferInheritanceInfo ), "struct and wrapper have different size!" );
  19119. struct CommandBufferBeginInfo
  19120. {
  19121. CommandBufferBeginInfo( CommandBufferUsageFlags flags_ = CommandBufferUsageFlags(),
  19122. const CommandBufferInheritanceInfo* pInheritanceInfo_ = nullptr )
  19123. : flags( flags_ )
  19124. , pInheritanceInfo( pInheritanceInfo_ )
  19125. {}
  19126. CommandBufferBeginInfo( VkCommandBufferBeginInfo const & rhs )
  19127. {
  19128. *reinterpret_cast<VkCommandBufferBeginInfo*>(this) = rhs;
  19129. }
  19130. CommandBufferBeginInfo& operator=( VkCommandBufferBeginInfo const & rhs )
  19131. {
  19132. *reinterpret_cast<VkCommandBufferBeginInfo*>(this) = rhs;
  19133. return *this;
  19134. }
  19135. CommandBufferBeginInfo & setPNext( const void* pNext_ )
  19136. {
  19137. pNext = pNext_;
  19138. return *this;
  19139. }
  19140. CommandBufferBeginInfo & setFlags( CommandBufferUsageFlags flags_ )
  19141. {
  19142. flags = flags_;
  19143. return *this;
  19144. }
  19145. CommandBufferBeginInfo & setPInheritanceInfo( const CommandBufferInheritanceInfo* pInheritanceInfo_ )
  19146. {
  19147. pInheritanceInfo = pInheritanceInfo_;
  19148. return *this;
  19149. }
  19150. operator VkCommandBufferBeginInfo const&() const
  19151. {
  19152. return *reinterpret_cast<const VkCommandBufferBeginInfo*>( this );
  19153. }
  19154. operator VkCommandBufferBeginInfo &()
  19155. {
  19156. return *reinterpret_cast<VkCommandBufferBeginInfo*>( this );
  19157. }
  19158. bool operator==( CommandBufferBeginInfo const& rhs ) const
  19159. {
  19160. return ( sType == rhs.sType )
  19161. && ( pNext == rhs.pNext )
  19162. && ( flags == rhs.flags )
  19163. && ( pInheritanceInfo == rhs.pInheritanceInfo );
  19164. }
  19165. bool operator!=( CommandBufferBeginInfo const& rhs ) const
  19166. {
  19167. return !operator==( rhs );
  19168. }
  19169. private:
  19170. StructureType sType = StructureType::eCommandBufferBeginInfo;
  19171. public:
  19172. const void* pNext = nullptr;
  19173. CommandBufferUsageFlags flags;
  19174. const CommandBufferInheritanceInfo* pInheritanceInfo;
  19175. };
  19176. static_assert( sizeof( CommandBufferBeginInfo ) == sizeof( VkCommandBufferBeginInfo ), "struct and wrapper have different size!" );
  19177. struct CommandBufferInheritanceConditionalRenderingInfoEXT
  19178. {
  19179. CommandBufferInheritanceConditionalRenderingInfoEXT( Bool32 conditionalRenderingEnable_ = 0 )
  19180. : conditionalRenderingEnable( conditionalRenderingEnable_ )
  19181. {}
  19182. CommandBufferInheritanceConditionalRenderingInfoEXT( VkCommandBufferInheritanceConditionalRenderingInfoEXT const & rhs )
  19183. {
  19184. *reinterpret_cast<VkCommandBufferInheritanceConditionalRenderingInfoEXT*>(this) = rhs;
  19185. }
  19186. CommandBufferInheritanceConditionalRenderingInfoEXT& operator=( VkCommandBufferInheritanceConditionalRenderingInfoEXT const & rhs )
  19187. {
  19188. *reinterpret_cast<VkCommandBufferInheritanceConditionalRenderingInfoEXT*>(this) = rhs;
  19189. return *this;
  19190. }
  19191. CommandBufferInheritanceConditionalRenderingInfoEXT & setPNext( const void* pNext_ )
  19192. {
  19193. pNext = pNext_;
  19194. return *this;
  19195. }
  19196. CommandBufferInheritanceConditionalRenderingInfoEXT & setConditionalRenderingEnable( Bool32 conditionalRenderingEnable_ )
  19197. {
  19198. conditionalRenderingEnable = conditionalRenderingEnable_;
  19199. return *this;
  19200. }
  19201. operator VkCommandBufferInheritanceConditionalRenderingInfoEXT const&() const
  19202. {
  19203. return *reinterpret_cast<const VkCommandBufferInheritanceConditionalRenderingInfoEXT*>( this );
  19204. }
  19205. operator VkCommandBufferInheritanceConditionalRenderingInfoEXT &()
  19206. {
  19207. return *reinterpret_cast<VkCommandBufferInheritanceConditionalRenderingInfoEXT*>( this );
  19208. }
  19209. bool operator==( CommandBufferInheritanceConditionalRenderingInfoEXT const& rhs ) const
  19210. {
  19211. return ( sType == rhs.sType )
  19212. && ( pNext == rhs.pNext )
  19213. && ( conditionalRenderingEnable == rhs.conditionalRenderingEnable );
  19214. }
  19215. bool operator!=( CommandBufferInheritanceConditionalRenderingInfoEXT const& rhs ) const
  19216. {
  19217. return !operator==( rhs );
  19218. }
  19219. private:
  19220. StructureType sType = StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT;
  19221. public:
  19222. const void* pNext = nullptr;
  19223. Bool32 conditionalRenderingEnable;
  19224. };
  19225. static_assert( sizeof( CommandBufferInheritanceConditionalRenderingInfoEXT ) == sizeof( VkCommandBufferInheritanceConditionalRenderingInfoEXT ), "struct and wrapper have different size!" );
  19226. struct CommandPoolCreateInfo
  19227. {
  19228. CommandPoolCreateInfo( CommandPoolCreateFlags flags_ = CommandPoolCreateFlags(),
  19229. uint32_t queueFamilyIndex_ = 0 )
  19230. : flags( flags_ )
  19231. , queueFamilyIndex( queueFamilyIndex_ )
  19232. {}
  19233. CommandPoolCreateInfo( VkCommandPoolCreateInfo const & rhs )
  19234. {
  19235. *reinterpret_cast<VkCommandPoolCreateInfo*>(this) = rhs;
  19236. }
  19237. CommandPoolCreateInfo& operator=( VkCommandPoolCreateInfo const & rhs )
  19238. {
  19239. *reinterpret_cast<VkCommandPoolCreateInfo*>(this) = rhs;
  19240. return *this;
  19241. }
  19242. CommandPoolCreateInfo & setPNext( const void* pNext_ )
  19243. {
  19244. pNext = pNext_;
  19245. return *this;
  19246. }
  19247. CommandPoolCreateInfo & setFlags( CommandPoolCreateFlags flags_ )
  19248. {
  19249. flags = flags_;
  19250. return *this;
  19251. }
  19252. CommandPoolCreateInfo & setQueueFamilyIndex( uint32_t queueFamilyIndex_ )
  19253. {
  19254. queueFamilyIndex = queueFamilyIndex_;
  19255. return *this;
  19256. }
  19257. operator VkCommandPoolCreateInfo const&() const
  19258. {
  19259. return *reinterpret_cast<const VkCommandPoolCreateInfo*>( this );
  19260. }
  19261. operator VkCommandPoolCreateInfo &()
  19262. {
  19263. return *reinterpret_cast<VkCommandPoolCreateInfo*>( this );
  19264. }
  19265. bool operator==( CommandPoolCreateInfo const& rhs ) const
  19266. {
  19267. return ( sType == rhs.sType )
  19268. && ( pNext == rhs.pNext )
  19269. && ( flags == rhs.flags )
  19270. && ( queueFamilyIndex == rhs.queueFamilyIndex );
  19271. }
  19272. bool operator!=( CommandPoolCreateInfo const& rhs ) const
  19273. {
  19274. return !operator==( rhs );
  19275. }
  19276. private:
  19277. StructureType sType = StructureType::eCommandPoolCreateInfo;
  19278. public:
  19279. const void* pNext = nullptr;
  19280. CommandPoolCreateFlags flags;
  19281. uint32_t queueFamilyIndex;
  19282. };
  19283. static_assert( sizeof( CommandPoolCreateInfo ) == sizeof( VkCommandPoolCreateInfo ), "struct and wrapper have different size!" );
  19284. struct SpecializationMapEntry
  19285. {
  19286. SpecializationMapEntry( uint32_t constantID_ = 0,
  19287. uint32_t offset_ = 0,
  19288. size_t size_ = 0 )
  19289. : constantID( constantID_ )
  19290. , offset( offset_ )
  19291. , size( size_ )
  19292. {}
  19293. SpecializationMapEntry( VkSpecializationMapEntry const & rhs )
  19294. {
  19295. *reinterpret_cast<VkSpecializationMapEntry*>(this) = rhs;
  19296. }
  19297. SpecializationMapEntry& operator=( VkSpecializationMapEntry const & rhs )
  19298. {
  19299. *reinterpret_cast<VkSpecializationMapEntry*>(this) = rhs;
  19300. return *this;
  19301. }
  19302. SpecializationMapEntry & setConstantID( uint32_t constantID_ )
  19303. {
  19304. constantID = constantID_;
  19305. return *this;
  19306. }
  19307. SpecializationMapEntry & setOffset( uint32_t offset_ )
  19308. {
  19309. offset = offset_;
  19310. return *this;
  19311. }
  19312. SpecializationMapEntry & setSize( size_t size_ )
  19313. {
  19314. size = size_;
  19315. return *this;
  19316. }
  19317. operator VkSpecializationMapEntry const&() const
  19318. {
  19319. return *reinterpret_cast<const VkSpecializationMapEntry*>( this );
  19320. }
  19321. operator VkSpecializationMapEntry &()
  19322. {
  19323. return *reinterpret_cast<VkSpecializationMapEntry*>( this );
  19324. }
  19325. bool operator==( SpecializationMapEntry const& rhs ) const
  19326. {
  19327. return ( constantID == rhs.constantID )
  19328. && ( offset == rhs.offset )
  19329. && ( size == rhs.size );
  19330. }
  19331. bool operator!=( SpecializationMapEntry const& rhs ) const
  19332. {
  19333. return !operator==( rhs );
  19334. }
  19335. uint32_t constantID;
  19336. uint32_t offset;
  19337. size_t size;
  19338. };
  19339. static_assert( sizeof( SpecializationMapEntry ) == sizeof( VkSpecializationMapEntry ), "struct and wrapper have different size!" );
  19340. struct SpecializationInfo
  19341. {
  19342. SpecializationInfo( uint32_t mapEntryCount_ = 0,
  19343. const SpecializationMapEntry* pMapEntries_ = nullptr,
  19344. size_t dataSize_ = 0,
  19345. const void* pData_ = nullptr )
  19346. : mapEntryCount( mapEntryCount_ )
  19347. , pMapEntries( pMapEntries_ )
  19348. , dataSize( dataSize_ )
  19349. , pData( pData_ )
  19350. {}
  19351. SpecializationInfo( VkSpecializationInfo const & rhs )
  19352. {
  19353. *reinterpret_cast<VkSpecializationInfo*>(this) = rhs;
  19354. }
  19355. SpecializationInfo& operator=( VkSpecializationInfo const & rhs )
  19356. {
  19357. *reinterpret_cast<VkSpecializationInfo*>(this) = rhs;
  19358. return *this;
  19359. }
  19360. SpecializationInfo & setMapEntryCount( uint32_t mapEntryCount_ )
  19361. {
  19362. mapEntryCount = mapEntryCount_;
  19363. return *this;
  19364. }
  19365. SpecializationInfo & setPMapEntries( const SpecializationMapEntry* pMapEntries_ )
  19366. {
  19367. pMapEntries = pMapEntries_;
  19368. return *this;
  19369. }
  19370. SpecializationInfo & setDataSize( size_t dataSize_ )
  19371. {
  19372. dataSize = dataSize_;
  19373. return *this;
  19374. }
  19375. SpecializationInfo & setPData( const void* pData_ )
  19376. {
  19377. pData = pData_;
  19378. return *this;
  19379. }
  19380. operator VkSpecializationInfo const&() const
  19381. {
  19382. return *reinterpret_cast<const VkSpecializationInfo*>( this );
  19383. }
  19384. operator VkSpecializationInfo &()
  19385. {
  19386. return *reinterpret_cast<VkSpecializationInfo*>( this );
  19387. }
  19388. bool operator==( SpecializationInfo const& rhs ) const
  19389. {
  19390. return ( mapEntryCount == rhs.mapEntryCount )
  19391. && ( pMapEntries == rhs.pMapEntries )
  19392. && ( dataSize == rhs.dataSize )
  19393. && ( pData == rhs.pData );
  19394. }
  19395. bool operator!=( SpecializationInfo const& rhs ) const
  19396. {
  19397. return !operator==( rhs );
  19398. }
  19399. uint32_t mapEntryCount;
  19400. const SpecializationMapEntry* pMapEntries;
  19401. size_t dataSize;
  19402. const void* pData;
  19403. };
  19404. static_assert( sizeof( SpecializationInfo ) == sizeof( VkSpecializationInfo ), "struct and wrapper have different size!" );
  19405. struct PipelineShaderStageCreateInfo
  19406. {
  19407. PipelineShaderStageCreateInfo( PipelineShaderStageCreateFlags flags_ = PipelineShaderStageCreateFlags(),
  19408. ShaderStageFlagBits stage_ = ShaderStageFlagBits::eVertex,
  19409. ShaderModule module_ = ShaderModule(),
  19410. const char* pName_ = nullptr,
  19411. const SpecializationInfo* pSpecializationInfo_ = nullptr )
  19412. : flags( flags_ )
  19413. , stage( stage_ )
  19414. , module( module_ )
  19415. , pName( pName_ )
  19416. , pSpecializationInfo( pSpecializationInfo_ )
  19417. {}
  19418. PipelineShaderStageCreateInfo( VkPipelineShaderStageCreateInfo const & rhs )
  19419. {
  19420. *reinterpret_cast<VkPipelineShaderStageCreateInfo*>(this) = rhs;
  19421. }
  19422. PipelineShaderStageCreateInfo& operator=( VkPipelineShaderStageCreateInfo const & rhs )
  19423. {
  19424. *reinterpret_cast<VkPipelineShaderStageCreateInfo*>(this) = rhs;
  19425. return *this;
  19426. }
  19427. PipelineShaderStageCreateInfo & setPNext( const void* pNext_ )
  19428. {
  19429. pNext = pNext_;
  19430. return *this;
  19431. }
  19432. PipelineShaderStageCreateInfo & setFlags( PipelineShaderStageCreateFlags flags_ )
  19433. {
  19434. flags = flags_;
  19435. return *this;
  19436. }
  19437. PipelineShaderStageCreateInfo & setStage( ShaderStageFlagBits stage_ )
  19438. {
  19439. stage = stage_;
  19440. return *this;
  19441. }
  19442. PipelineShaderStageCreateInfo & setModule( ShaderModule module_ )
  19443. {
  19444. module = module_;
  19445. return *this;
  19446. }
  19447. PipelineShaderStageCreateInfo & setPName( const char* pName_ )
  19448. {
  19449. pName = pName_;
  19450. return *this;
  19451. }
  19452. PipelineShaderStageCreateInfo & setPSpecializationInfo( const SpecializationInfo* pSpecializationInfo_ )
  19453. {
  19454. pSpecializationInfo = pSpecializationInfo_;
  19455. return *this;
  19456. }
  19457. operator VkPipelineShaderStageCreateInfo const&() const
  19458. {
  19459. return *reinterpret_cast<const VkPipelineShaderStageCreateInfo*>( this );
  19460. }
  19461. operator VkPipelineShaderStageCreateInfo &()
  19462. {
  19463. return *reinterpret_cast<VkPipelineShaderStageCreateInfo*>( this );
  19464. }
  19465. bool operator==( PipelineShaderStageCreateInfo const& rhs ) const
  19466. {
  19467. return ( sType == rhs.sType )
  19468. && ( pNext == rhs.pNext )
  19469. && ( flags == rhs.flags )
  19470. && ( stage == rhs.stage )
  19471. && ( module == rhs.module )
  19472. && ( pName == rhs.pName )
  19473. && ( pSpecializationInfo == rhs.pSpecializationInfo );
  19474. }
  19475. bool operator!=( PipelineShaderStageCreateInfo const& rhs ) const
  19476. {
  19477. return !operator==( rhs );
  19478. }
  19479. private:
  19480. StructureType sType = StructureType::ePipelineShaderStageCreateInfo;
  19481. public:
  19482. const void* pNext = nullptr;
  19483. PipelineShaderStageCreateFlags flags;
  19484. ShaderStageFlagBits stage;
  19485. ShaderModule module;
  19486. const char* pName;
  19487. const SpecializationInfo* pSpecializationInfo;
  19488. };
  19489. static_assert( sizeof( PipelineShaderStageCreateInfo ) == sizeof( VkPipelineShaderStageCreateInfo ), "struct and wrapper have different size!" );
  19490. struct ComputePipelineCreateInfo
  19491. {
  19492. ComputePipelineCreateInfo( PipelineCreateFlags flags_ = PipelineCreateFlags(),
  19493. PipelineShaderStageCreateInfo stage_ = PipelineShaderStageCreateInfo(),
  19494. PipelineLayout layout_ = PipelineLayout(),
  19495. Pipeline basePipelineHandle_ = Pipeline(),
  19496. int32_t basePipelineIndex_ = 0 )
  19497. : flags( flags_ )
  19498. , stage( stage_ )
  19499. , layout( layout_ )
  19500. , basePipelineHandle( basePipelineHandle_ )
  19501. , basePipelineIndex( basePipelineIndex_ )
  19502. {}
  19503. ComputePipelineCreateInfo( VkComputePipelineCreateInfo const & rhs )
  19504. {
  19505. *reinterpret_cast<VkComputePipelineCreateInfo*>(this) = rhs;
  19506. }
  19507. ComputePipelineCreateInfo& operator=( VkComputePipelineCreateInfo const & rhs )
  19508. {
  19509. *reinterpret_cast<VkComputePipelineCreateInfo*>(this) = rhs;
  19510. return *this;
  19511. }
  19512. ComputePipelineCreateInfo & setPNext( const void* pNext_ )
  19513. {
  19514. pNext = pNext_;
  19515. return *this;
  19516. }
  19517. ComputePipelineCreateInfo & setFlags( PipelineCreateFlags flags_ )
  19518. {
  19519. flags = flags_;
  19520. return *this;
  19521. }
  19522. ComputePipelineCreateInfo & setStage( PipelineShaderStageCreateInfo stage_ )
  19523. {
  19524. stage = stage_;
  19525. return *this;
  19526. }
  19527. ComputePipelineCreateInfo & setLayout( PipelineLayout layout_ )
  19528. {
  19529. layout = layout_;
  19530. return *this;
  19531. }
  19532. ComputePipelineCreateInfo & setBasePipelineHandle( Pipeline basePipelineHandle_ )
  19533. {
  19534. basePipelineHandle = basePipelineHandle_;
  19535. return *this;
  19536. }
  19537. ComputePipelineCreateInfo & setBasePipelineIndex( int32_t basePipelineIndex_ )
  19538. {
  19539. basePipelineIndex = basePipelineIndex_;
  19540. return *this;
  19541. }
  19542. operator VkComputePipelineCreateInfo const&() const
  19543. {
  19544. return *reinterpret_cast<const VkComputePipelineCreateInfo*>( this );
  19545. }
  19546. operator VkComputePipelineCreateInfo &()
  19547. {
  19548. return *reinterpret_cast<VkComputePipelineCreateInfo*>( this );
  19549. }
  19550. bool operator==( ComputePipelineCreateInfo const& rhs ) const
  19551. {
  19552. return ( sType == rhs.sType )
  19553. && ( pNext == rhs.pNext )
  19554. && ( flags == rhs.flags )
  19555. && ( stage == rhs.stage )
  19556. && ( layout == rhs.layout )
  19557. && ( basePipelineHandle == rhs.basePipelineHandle )
  19558. && ( basePipelineIndex == rhs.basePipelineIndex );
  19559. }
  19560. bool operator!=( ComputePipelineCreateInfo const& rhs ) const
  19561. {
  19562. return !operator==( rhs );
  19563. }
  19564. private:
  19565. StructureType sType = StructureType::eComputePipelineCreateInfo;
  19566. public:
  19567. const void* pNext = nullptr;
  19568. PipelineCreateFlags flags;
  19569. PipelineShaderStageCreateInfo stage;
  19570. PipelineLayout layout;
  19571. Pipeline basePipelineHandle;
  19572. int32_t basePipelineIndex;
  19573. };
  19574. static_assert( sizeof( ComputePipelineCreateInfo ) == sizeof( VkComputePipelineCreateInfo ), "struct and wrapper have different size!" );
  19575. struct ConditionalRenderingBeginInfoEXT
  19576. {
  19577. ConditionalRenderingBeginInfoEXT( Buffer buffer_ = Buffer(),
  19578. DeviceSize offset_ = 0,
  19579. ConditionalRenderingFlagsEXT flags_ = ConditionalRenderingFlagsEXT() )
  19580. : buffer( buffer_ )
  19581. , offset( offset_ )
  19582. , flags( flags_ )
  19583. {}
  19584. ConditionalRenderingBeginInfoEXT( VkConditionalRenderingBeginInfoEXT const & rhs )
  19585. {
  19586. *reinterpret_cast<VkConditionalRenderingBeginInfoEXT*>(this) = rhs;
  19587. }
  19588. ConditionalRenderingBeginInfoEXT& operator=( VkConditionalRenderingBeginInfoEXT const & rhs )
  19589. {
  19590. *reinterpret_cast<VkConditionalRenderingBeginInfoEXT*>(this) = rhs;
  19591. return *this;
  19592. }
  19593. ConditionalRenderingBeginInfoEXT & setPNext( const void* pNext_ )
  19594. {
  19595. pNext = pNext_;
  19596. return *this;
  19597. }
  19598. ConditionalRenderingBeginInfoEXT & setBuffer( Buffer buffer_ )
  19599. {
  19600. buffer = buffer_;
  19601. return *this;
  19602. }
  19603. ConditionalRenderingBeginInfoEXT & setOffset( DeviceSize offset_ )
  19604. {
  19605. offset = offset_;
  19606. return *this;
  19607. }
  19608. ConditionalRenderingBeginInfoEXT & setFlags( ConditionalRenderingFlagsEXT flags_ )
  19609. {
  19610. flags = flags_;
  19611. return *this;
  19612. }
  19613. operator VkConditionalRenderingBeginInfoEXT const&() const
  19614. {
  19615. return *reinterpret_cast<const VkConditionalRenderingBeginInfoEXT*>( this );
  19616. }
  19617. operator VkConditionalRenderingBeginInfoEXT &()
  19618. {
  19619. return *reinterpret_cast<VkConditionalRenderingBeginInfoEXT*>( this );
  19620. }
  19621. bool operator==( ConditionalRenderingBeginInfoEXT const& rhs ) const
  19622. {
  19623. return ( sType == rhs.sType )
  19624. && ( pNext == rhs.pNext )
  19625. && ( buffer == rhs.buffer )
  19626. && ( offset == rhs.offset )
  19627. && ( flags == rhs.flags );
  19628. }
  19629. bool operator!=( ConditionalRenderingBeginInfoEXT const& rhs ) const
  19630. {
  19631. return !operator==( rhs );
  19632. }
  19633. private:
  19634. StructureType sType = StructureType::eConditionalRenderingBeginInfoEXT;
  19635. public:
  19636. const void* pNext = nullptr;
  19637. Buffer buffer;
  19638. DeviceSize offset;
  19639. ConditionalRenderingFlagsEXT flags;
  19640. };
  19641. static_assert( sizeof( ConditionalRenderingBeginInfoEXT ) == sizeof( VkConditionalRenderingBeginInfoEXT ), "struct and wrapper have different size!" );
  19642. struct ConformanceVersionKHR
  19643. {
  19644. ConformanceVersionKHR( uint8_t major_ = 0,
  19645. uint8_t minor_ = 0,
  19646. uint8_t subminor_ = 0,
  19647. uint8_t patch_ = 0 )
  19648. : major( major_ )
  19649. , minor( minor_ )
  19650. , subminor( subminor_ )
  19651. , patch( patch_ )
  19652. {}
  19653. ConformanceVersionKHR( VkConformanceVersionKHR const & rhs )
  19654. {
  19655. *reinterpret_cast<VkConformanceVersionKHR*>(this) = rhs;
  19656. }
  19657. ConformanceVersionKHR& operator=( VkConformanceVersionKHR const & rhs )
  19658. {
  19659. *reinterpret_cast<VkConformanceVersionKHR*>(this) = rhs;
  19660. return *this;
  19661. }
  19662. ConformanceVersionKHR & setMajor( uint8_t major_ )
  19663. {
  19664. major = major_;
  19665. return *this;
  19666. }
  19667. ConformanceVersionKHR & setMinor( uint8_t minor_ )
  19668. {
  19669. minor = minor_;
  19670. return *this;
  19671. }
  19672. ConformanceVersionKHR & setSubminor( uint8_t subminor_ )
  19673. {
  19674. subminor = subminor_;
  19675. return *this;
  19676. }
  19677. ConformanceVersionKHR & setPatch( uint8_t patch_ )
  19678. {
  19679. patch = patch_;
  19680. return *this;
  19681. }
  19682. operator VkConformanceVersionKHR const&() const
  19683. {
  19684. return *reinterpret_cast<const VkConformanceVersionKHR*>( this );
  19685. }
  19686. operator VkConformanceVersionKHR &()
  19687. {
  19688. return *reinterpret_cast<VkConformanceVersionKHR*>( this );
  19689. }
  19690. bool operator==( ConformanceVersionKHR const& rhs ) const
  19691. {
  19692. return ( major == rhs.major )
  19693. && ( minor == rhs.minor )
  19694. && ( subminor == rhs.subminor )
  19695. && ( patch == rhs.patch );
  19696. }
  19697. bool operator!=( ConformanceVersionKHR const& rhs ) const
  19698. {
  19699. return !operator==( rhs );
  19700. }
  19701. uint8_t major;
  19702. uint8_t minor;
  19703. uint8_t subminor;
  19704. uint8_t patch;
  19705. };
  19706. static_assert( sizeof( ConformanceVersionKHR ) == sizeof( VkConformanceVersionKHR ), "struct and wrapper have different size!" );
  19707. struct CooperativeMatrixPropertiesNV
  19708. {
  19709. CooperativeMatrixPropertiesNV( uint32_t MSize_ = 0,
  19710. uint32_t NSize_ = 0,
  19711. uint32_t KSize_ = 0,
  19712. ComponentTypeNV AType_ = ComponentTypeNV::eFloat16,
  19713. ComponentTypeNV BType_ = ComponentTypeNV::eFloat16,
  19714. ComponentTypeNV CType_ = ComponentTypeNV::eFloat16,
  19715. ComponentTypeNV DType_ = ComponentTypeNV::eFloat16,
  19716. ScopeNV scope_ = ScopeNV::eDevice )
  19717. : MSize( MSize_ )
  19718. , NSize( NSize_ )
  19719. , KSize( KSize_ )
  19720. , AType( AType_ )
  19721. , BType( BType_ )
  19722. , CType( CType_ )
  19723. , DType( DType_ )
  19724. , scope( scope_ )
  19725. {}
  19726. CooperativeMatrixPropertiesNV( VkCooperativeMatrixPropertiesNV const & rhs )
  19727. {
  19728. *reinterpret_cast<VkCooperativeMatrixPropertiesNV*>(this) = rhs;
  19729. }
  19730. CooperativeMatrixPropertiesNV& operator=( VkCooperativeMatrixPropertiesNV const & rhs )
  19731. {
  19732. *reinterpret_cast<VkCooperativeMatrixPropertiesNV*>(this) = rhs;
  19733. return *this;
  19734. }
  19735. CooperativeMatrixPropertiesNV & setPNext( void* pNext_ )
  19736. {
  19737. pNext = pNext_;
  19738. return *this;
  19739. }
  19740. CooperativeMatrixPropertiesNV & setMSize( uint32_t MSize_ )
  19741. {
  19742. MSize = MSize_;
  19743. return *this;
  19744. }
  19745. CooperativeMatrixPropertiesNV & setNSize( uint32_t NSize_ )
  19746. {
  19747. NSize = NSize_;
  19748. return *this;
  19749. }
  19750. CooperativeMatrixPropertiesNV & setKSize( uint32_t KSize_ )
  19751. {
  19752. KSize = KSize_;
  19753. return *this;
  19754. }
  19755. CooperativeMatrixPropertiesNV & setAType( ComponentTypeNV AType_ )
  19756. {
  19757. AType = AType_;
  19758. return *this;
  19759. }
  19760. CooperativeMatrixPropertiesNV & setBType( ComponentTypeNV BType_ )
  19761. {
  19762. BType = BType_;
  19763. return *this;
  19764. }
  19765. CooperativeMatrixPropertiesNV & setCType( ComponentTypeNV CType_ )
  19766. {
  19767. CType = CType_;
  19768. return *this;
  19769. }
  19770. CooperativeMatrixPropertiesNV & setDType( ComponentTypeNV DType_ )
  19771. {
  19772. DType = DType_;
  19773. return *this;
  19774. }
  19775. CooperativeMatrixPropertiesNV & setScope( ScopeNV scope_ )
  19776. {
  19777. scope = scope_;
  19778. return *this;
  19779. }
  19780. operator VkCooperativeMatrixPropertiesNV const&() const
  19781. {
  19782. return *reinterpret_cast<const VkCooperativeMatrixPropertiesNV*>( this );
  19783. }
  19784. operator VkCooperativeMatrixPropertiesNV &()
  19785. {
  19786. return *reinterpret_cast<VkCooperativeMatrixPropertiesNV*>( this );
  19787. }
  19788. bool operator==( CooperativeMatrixPropertiesNV const& rhs ) const
  19789. {
  19790. return ( sType == rhs.sType )
  19791. && ( pNext == rhs.pNext )
  19792. && ( MSize == rhs.MSize )
  19793. && ( NSize == rhs.NSize )
  19794. && ( KSize == rhs.KSize )
  19795. && ( AType == rhs.AType )
  19796. && ( BType == rhs.BType )
  19797. && ( CType == rhs.CType )
  19798. && ( DType == rhs.DType )
  19799. && ( scope == rhs.scope );
  19800. }
  19801. bool operator!=( CooperativeMatrixPropertiesNV const& rhs ) const
  19802. {
  19803. return !operator==( rhs );
  19804. }
  19805. private:
  19806. StructureType sType = StructureType::eCooperativeMatrixPropertiesNV;
  19807. public:
  19808. void* pNext = nullptr;
  19809. uint32_t MSize;
  19810. uint32_t NSize;
  19811. uint32_t KSize;
  19812. ComponentTypeNV AType;
  19813. ComponentTypeNV BType;
  19814. ComponentTypeNV CType;
  19815. ComponentTypeNV DType;
  19816. ScopeNV scope;
  19817. };
  19818. static_assert( sizeof( CooperativeMatrixPropertiesNV ) == sizeof( VkCooperativeMatrixPropertiesNV ), "struct and wrapper have different size!" );
  19819. struct CopyDescriptorSet
  19820. {
  19821. CopyDescriptorSet( DescriptorSet srcSet_ = DescriptorSet(),
  19822. uint32_t srcBinding_ = 0,
  19823. uint32_t srcArrayElement_ = 0,
  19824. DescriptorSet dstSet_ = DescriptorSet(),
  19825. uint32_t dstBinding_ = 0,
  19826. uint32_t dstArrayElement_ = 0,
  19827. uint32_t descriptorCount_ = 0 )
  19828. : srcSet( srcSet_ )
  19829. , srcBinding( srcBinding_ )
  19830. , srcArrayElement( srcArrayElement_ )
  19831. , dstSet( dstSet_ )
  19832. , dstBinding( dstBinding_ )
  19833. , dstArrayElement( dstArrayElement_ )
  19834. , descriptorCount( descriptorCount_ )
  19835. {}
  19836. CopyDescriptorSet( VkCopyDescriptorSet const & rhs )
  19837. {
  19838. *reinterpret_cast<VkCopyDescriptorSet*>(this) = rhs;
  19839. }
  19840. CopyDescriptorSet& operator=( VkCopyDescriptorSet const & rhs )
  19841. {
  19842. *reinterpret_cast<VkCopyDescriptorSet*>(this) = rhs;
  19843. return *this;
  19844. }
  19845. CopyDescriptorSet & setPNext( const void* pNext_ )
  19846. {
  19847. pNext = pNext_;
  19848. return *this;
  19849. }
  19850. CopyDescriptorSet & setSrcSet( DescriptorSet srcSet_ )
  19851. {
  19852. srcSet = srcSet_;
  19853. return *this;
  19854. }
  19855. CopyDescriptorSet & setSrcBinding( uint32_t srcBinding_ )
  19856. {
  19857. srcBinding = srcBinding_;
  19858. return *this;
  19859. }
  19860. CopyDescriptorSet & setSrcArrayElement( uint32_t srcArrayElement_ )
  19861. {
  19862. srcArrayElement = srcArrayElement_;
  19863. return *this;
  19864. }
  19865. CopyDescriptorSet & setDstSet( DescriptorSet dstSet_ )
  19866. {
  19867. dstSet = dstSet_;
  19868. return *this;
  19869. }
  19870. CopyDescriptorSet & setDstBinding( uint32_t dstBinding_ )
  19871. {
  19872. dstBinding = dstBinding_;
  19873. return *this;
  19874. }
  19875. CopyDescriptorSet & setDstArrayElement( uint32_t dstArrayElement_ )
  19876. {
  19877. dstArrayElement = dstArrayElement_;
  19878. return *this;
  19879. }
  19880. CopyDescriptorSet & setDescriptorCount( uint32_t descriptorCount_ )
  19881. {
  19882. descriptorCount = descriptorCount_;
  19883. return *this;
  19884. }
  19885. operator VkCopyDescriptorSet const&() const
  19886. {
  19887. return *reinterpret_cast<const VkCopyDescriptorSet*>( this );
  19888. }
  19889. operator VkCopyDescriptorSet &()
  19890. {
  19891. return *reinterpret_cast<VkCopyDescriptorSet*>( this );
  19892. }
  19893. bool operator==( CopyDescriptorSet const& rhs ) const
  19894. {
  19895. return ( sType == rhs.sType )
  19896. && ( pNext == rhs.pNext )
  19897. && ( srcSet == rhs.srcSet )
  19898. && ( srcBinding == rhs.srcBinding )
  19899. && ( srcArrayElement == rhs.srcArrayElement )
  19900. && ( dstSet == rhs.dstSet )
  19901. && ( dstBinding == rhs.dstBinding )
  19902. && ( dstArrayElement == rhs.dstArrayElement )
  19903. && ( descriptorCount == rhs.descriptorCount );
  19904. }
  19905. bool operator!=( CopyDescriptorSet const& rhs ) const
  19906. {
  19907. return !operator==( rhs );
  19908. }
  19909. private:
  19910. StructureType sType = StructureType::eCopyDescriptorSet;
  19911. public:
  19912. const void* pNext = nullptr;
  19913. DescriptorSet srcSet;
  19914. uint32_t srcBinding;
  19915. uint32_t srcArrayElement;
  19916. DescriptorSet dstSet;
  19917. uint32_t dstBinding;
  19918. uint32_t dstArrayElement;
  19919. uint32_t descriptorCount;
  19920. };
  19921. static_assert( sizeof( CopyDescriptorSet ) == sizeof( VkCopyDescriptorSet ), "struct and wrapper have different size!" );
  19922. #ifdef VK_USE_PLATFORM_WIN32_KHR
  19923. struct D3D12FenceSubmitInfoKHR
  19924. {
  19925. D3D12FenceSubmitInfoKHR( uint32_t waitSemaphoreValuesCount_ = 0,
  19926. const uint64_t* pWaitSemaphoreValues_ = nullptr,
  19927. uint32_t signalSemaphoreValuesCount_ = 0,
  19928. const uint64_t* pSignalSemaphoreValues_ = nullptr )
  19929. : waitSemaphoreValuesCount( waitSemaphoreValuesCount_ )
  19930. , pWaitSemaphoreValues( pWaitSemaphoreValues_ )
  19931. , signalSemaphoreValuesCount( signalSemaphoreValuesCount_ )
  19932. , pSignalSemaphoreValues( pSignalSemaphoreValues_ )
  19933. {}
  19934. D3D12FenceSubmitInfoKHR( VkD3D12FenceSubmitInfoKHR const & rhs )
  19935. {
  19936. *reinterpret_cast<VkD3D12FenceSubmitInfoKHR*>(this) = rhs;
  19937. }
  19938. D3D12FenceSubmitInfoKHR& operator=( VkD3D12FenceSubmitInfoKHR const & rhs )
  19939. {
  19940. *reinterpret_cast<VkD3D12FenceSubmitInfoKHR*>(this) = rhs;
  19941. return *this;
  19942. }
  19943. D3D12FenceSubmitInfoKHR & setPNext( const void* pNext_ )
  19944. {
  19945. pNext = pNext_;
  19946. return *this;
  19947. }
  19948. D3D12FenceSubmitInfoKHR & setWaitSemaphoreValuesCount( uint32_t waitSemaphoreValuesCount_ )
  19949. {
  19950. waitSemaphoreValuesCount = waitSemaphoreValuesCount_;
  19951. return *this;
  19952. }
  19953. D3D12FenceSubmitInfoKHR & setPWaitSemaphoreValues( const uint64_t* pWaitSemaphoreValues_ )
  19954. {
  19955. pWaitSemaphoreValues = pWaitSemaphoreValues_;
  19956. return *this;
  19957. }
  19958. D3D12FenceSubmitInfoKHR & setSignalSemaphoreValuesCount( uint32_t signalSemaphoreValuesCount_ )
  19959. {
  19960. signalSemaphoreValuesCount = signalSemaphoreValuesCount_;
  19961. return *this;
  19962. }
  19963. D3D12FenceSubmitInfoKHR & setPSignalSemaphoreValues( const uint64_t* pSignalSemaphoreValues_ )
  19964. {
  19965. pSignalSemaphoreValues = pSignalSemaphoreValues_;
  19966. return *this;
  19967. }
  19968. operator VkD3D12FenceSubmitInfoKHR const&() const
  19969. {
  19970. return *reinterpret_cast<const VkD3D12FenceSubmitInfoKHR*>( this );
  19971. }
  19972. operator VkD3D12FenceSubmitInfoKHR &()
  19973. {
  19974. return *reinterpret_cast<VkD3D12FenceSubmitInfoKHR*>( this );
  19975. }
  19976. bool operator==( D3D12FenceSubmitInfoKHR const& rhs ) const
  19977. {
  19978. return ( sType == rhs.sType )
  19979. && ( pNext == rhs.pNext )
  19980. && ( waitSemaphoreValuesCount == rhs.waitSemaphoreValuesCount )
  19981. && ( pWaitSemaphoreValues == rhs.pWaitSemaphoreValues )
  19982. && ( signalSemaphoreValuesCount == rhs.signalSemaphoreValuesCount )
  19983. && ( pSignalSemaphoreValues == rhs.pSignalSemaphoreValues );
  19984. }
  19985. bool operator!=( D3D12FenceSubmitInfoKHR const& rhs ) const
  19986. {
  19987. return !operator==( rhs );
  19988. }
  19989. private:
  19990. StructureType sType = StructureType::eD3D12FenceSubmitInfoKHR;
  19991. public:
  19992. const void* pNext = nullptr;
  19993. uint32_t waitSemaphoreValuesCount;
  19994. const uint64_t* pWaitSemaphoreValues;
  19995. uint32_t signalSemaphoreValuesCount;
  19996. const uint64_t* pSignalSemaphoreValues;
  19997. };
  19998. static_assert( sizeof( D3D12FenceSubmitInfoKHR ) == sizeof( VkD3D12FenceSubmitInfoKHR ), "struct and wrapper have different size!" );
  19999. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  20000. struct DebugMarkerMarkerInfoEXT
  20001. {
  20002. DebugMarkerMarkerInfoEXT( const char* pMarkerName_ = nullptr,
  20003. std::array<float,4> const& color_ = { { 0 } } )
  20004. : pMarkerName( pMarkerName_ )
  20005. {
  20006. memcpy( &color, color_.data(), 4 * sizeof( float ) );
  20007. }
  20008. DebugMarkerMarkerInfoEXT( VkDebugMarkerMarkerInfoEXT const & rhs )
  20009. {
  20010. *reinterpret_cast<VkDebugMarkerMarkerInfoEXT*>(this) = rhs;
  20011. }
  20012. DebugMarkerMarkerInfoEXT& operator=( VkDebugMarkerMarkerInfoEXT const & rhs )
  20013. {
  20014. *reinterpret_cast<VkDebugMarkerMarkerInfoEXT*>(this) = rhs;
  20015. return *this;
  20016. }
  20017. DebugMarkerMarkerInfoEXT & setPNext( const void* pNext_ )
  20018. {
  20019. pNext = pNext_;
  20020. return *this;
  20021. }
  20022. DebugMarkerMarkerInfoEXT & setPMarkerName( const char* pMarkerName_ )
  20023. {
  20024. pMarkerName = pMarkerName_;
  20025. return *this;
  20026. }
  20027. DebugMarkerMarkerInfoEXT & setColor( std::array<float,4> color_ )
  20028. {
  20029. memcpy( color, color_.data(), 4 * sizeof( float ) );
  20030. return *this;
  20031. }
  20032. operator VkDebugMarkerMarkerInfoEXT const&() const
  20033. {
  20034. return *reinterpret_cast<const VkDebugMarkerMarkerInfoEXT*>( this );
  20035. }
  20036. operator VkDebugMarkerMarkerInfoEXT &()
  20037. {
  20038. return *reinterpret_cast<VkDebugMarkerMarkerInfoEXT*>( this );
  20039. }
  20040. bool operator==( DebugMarkerMarkerInfoEXT const& rhs ) const
  20041. {
  20042. return ( sType == rhs.sType )
  20043. && ( pNext == rhs.pNext )
  20044. && ( pMarkerName == rhs.pMarkerName )
  20045. && ( memcmp( color, rhs.color, 4 * sizeof( float ) ) == 0 );
  20046. }
  20047. bool operator!=( DebugMarkerMarkerInfoEXT const& rhs ) const
  20048. {
  20049. return !operator==( rhs );
  20050. }
  20051. private:
  20052. StructureType sType = StructureType::eDebugMarkerMarkerInfoEXT;
  20053. public:
  20054. const void* pNext = nullptr;
  20055. const char* pMarkerName;
  20056. float color[4];
  20057. };
  20058. static_assert( sizeof( DebugMarkerMarkerInfoEXT ) == sizeof( VkDebugMarkerMarkerInfoEXT ), "struct and wrapper have different size!" );
  20059. struct DebugMarkerObjectNameInfoEXT
  20060. {
  20061. DebugMarkerObjectNameInfoEXT( DebugReportObjectTypeEXT objectType_ = DebugReportObjectTypeEXT::eUnknown,
  20062. uint64_t object_ = 0,
  20063. const char* pObjectName_ = nullptr )
  20064. : objectType( objectType_ )
  20065. , object( object_ )
  20066. , pObjectName( pObjectName_ )
  20067. {}
  20068. DebugMarkerObjectNameInfoEXT( VkDebugMarkerObjectNameInfoEXT const & rhs )
  20069. {
  20070. *reinterpret_cast<VkDebugMarkerObjectNameInfoEXT*>(this) = rhs;
  20071. }
  20072. DebugMarkerObjectNameInfoEXT& operator=( VkDebugMarkerObjectNameInfoEXT const & rhs )
  20073. {
  20074. *reinterpret_cast<VkDebugMarkerObjectNameInfoEXT*>(this) = rhs;
  20075. return *this;
  20076. }
  20077. DebugMarkerObjectNameInfoEXT & setPNext( const void* pNext_ )
  20078. {
  20079. pNext = pNext_;
  20080. return *this;
  20081. }
  20082. DebugMarkerObjectNameInfoEXT & setObjectType( DebugReportObjectTypeEXT objectType_ )
  20083. {
  20084. objectType = objectType_;
  20085. return *this;
  20086. }
  20087. DebugMarkerObjectNameInfoEXT & setObject( uint64_t object_ )
  20088. {
  20089. object = object_;
  20090. return *this;
  20091. }
  20092. DebugMarkerObjectNameInfoEXT & setPObjectName( const char* pObjectName_ )
  20093. {
  20094. pObjectName = pObjectName_;
  20095. return *this;
  20096. }
  20097. operator VkDebugMarkerObjectNameInfoEXT const&() const
  20098. {
  20099. return *reinterpret_cast<const VkDebugMarkerObjectNameInfoEXT*>( this );
  20100. }
  20101. operator VkDebugMarkerObjectNameInfoEXT &()
  20102. {
  20103. return *reinterpret_cast<VkDebugMarkerObjectNameInfoEXT*>( this );
  20104. }
  20105. bool operator==( DebugMarkerObjectNameInfoEXT const& rhs ) const
  20106. {
  20107. return ( sType == rhs.sType )
  20108. && ( pNext == rhs.pNext )
  20109. && ( objectType == rhs.objectType )
  20110. && ( object == rhs.object )
  20111. && ( pObjectName == rhs.pObjectName );
  20112. }
  20113. bool operator!=( DebugMarkerObjectNameInfoEXT const& rhs ) const
  20114. {
  20115. return !operator==( rhs );
  20116. }
  20117. private:
  20118. StructureType sType = StructureType::eDebugMarkerObjectNameInfoEXT;
  20119. public:
  20120. const void* pNext = nullptr;
  20121. DebugReportObjectTypeEXT objectType;
  20122. uint64_t object;
  20123. const char* pObjectName;
  20124. };
  20125. static_assert( sizeof( DebugMarkerObjectNameInfoEXT ) == sizeof( VkDebugMarkerObjectNameInfoEXT ), "struct and wrapper have different size!" );
  20126. struct DebugMarkerObjectTagInfoEXT
  20127. {
  20128. DebugMarkerObjectTagInfoEXT( DebugReportObjectTypeEXT objectType_ = DebugReportObjectTypeEXT::eUnknown,
  20129. uint64_t object_ = 0,
  20130. uint64_t tagName_ = 0,
  20131. size_t tagSize_ = 0,
  20132. const void* pTag_ = nullptr )
  20133. : objectType( objectType_ )
  20134. , object( object_ )
  20135. , tagName( tagName_ )
  20136. , tagSize( tagSize_ )
  20137. , pTag( pTag_ )
  20138. {}
  20139. DebugMarkerObjectTagInfoEXT( VkDebugMarkerObjectTagInfoEXT const & rhs )
  20140. {
  20141. *reinterpret_cast<VkDebugMarkerObjectTagInfoEXT*>(this) = rhs;
  20142. }
  20143. DebugMarkerObjectTagInfoEXT& operator=( VkDebugMarkerObjectTagInfoEXT const & rhs )
  20144. {
  20145. *reinterpret_cast<VkDebugMarkerObjectTagInfoEXT*>(this) = rhs;
  20146. return *this;
  20147. }
  20148. DebugMarkerObjectTagInfoEXT & setPNext( const void* pNext_ )
  20149. {
  20150. pNext = pNext_;
  20151. return *this;
  20152. }
  20153. DebugMarkerObjectTagInfoEXT & setObjectType( DebugReportObjectTypeEXT objectType_ )
  20154. {
  20155. objectType = objectType_;
  20156. return *this;
  20157. }
  20158. DebugMarkerObjectTagInfoEXT & setObject( uint64_t object_ )
  20159. {
  20160. object = object_;
  20161. return *this;
  20162. }
  20163. DebugMarkerObjectTagInfoEXT & setTagName( uint64_t tagName_ )
  20164. {
  20165. tagName = tagName_;
  20166. return *this;
  20167. }
  20168. DebugMarkerObjectTagInfoEXT & setTagSize( size_t tagSize_ )
  20169. {
  20170. tagSize = tagSize_;
  20171. return *this;
  20172. }
  20173. DebugMarkerObjectTagInfoEXT & setPTag( const void* pTag_ )
  20174. {
  20175. pTag = pTag_;
  20176. return *this;
  20177. }
  20178. operator VkDebugMarkerObjectTagInfoEXT const&() const
  20179. {
  20180. return *reinterpret_cast<const VkDebugMarkerObjectTagInfoEXT*>( this );
  20181. }
  20182. operator VkDebugMarkerObjectTagInfoEXT &()
  20183. {
  20184. return *reinterpret_cast<VkDebugMarkerObjectTagInfoEXT*>( this );
  20185. }
  20186. bool operator==( DebugMarkerObjectTagInfoEXT const& rhs ) const
  20187. {
  20188. return ( sType == rhs.sType )
  20189. && ( pNext == rhs.pNext )
  20190. && ( objectType == rhs.objectType )
  20191. && ( object == rhs.object )
  20192. && ( tagName == rhs.tagName )
  20193. && ( tagSize == rhs.tagSize )
  20194. && ( pTag == rhs.pTag );
  20195. }
  20196. bool operator!=( DebugMarkerObjectTagInfoEXT const& rhs ) const
  20197. {
  20198. return !operator==( rhs );
  20199. }
  20200. private:
  20201. StructureType sType = StructureType::eDebugMarkerObjectTagInfoEXT;
  20202. public:
  20203. const void* pNext = nullptr;
  20204. DebugReportObjectTypeEXT objectType;
  20205. uint64_t object;
  20206. uint64_t tagName;
  20207. size_t tagSize;
  20208. const void* pTag;
  20209. };
  20210. static_assert( sizeof( DebugMarkerObjectTagInfoEXT ) == sizeof( VkDebugMarkerObjectTagInfoEXT ), "struct and wrapper have different size!" );
  20211. struct DebugReportCallbackCreateInfoEXT
  20212. {
  20213. DebugReportCallbackCreateInfoEXT( DebugReportFlagsEXT flags_ = DebugReportFlagsEXT(),
  20214. PFN_vkDebugReportCallbackEXT pfnCallback_ = nullptr,
  20215. void* pUserData_ = nullptr )
  20216. : flags( flags_ )
  20217. , pfnCallback( pfnCallback_ )
  20218. , pUserData( pUserData_ )
  20219. {}
  20220. DebugReportCallbackCreateInfoEXT( VkDebugReportCallbackCreateInfoEXT const & rhs )
  20221. {
  20222. *reinterpret_cast<VkDebugReportCallbackCreateInfoEXT*>(this) = rhs;
  20223. }
  20224. DebugReportCallbackCreateInfoEXT& operator=( VkDebugReportCallbackCreateInfoEXT const & rhs )
  20225. {
  20226. *reinterpret_cast<VkDebugReportCallbackCreateInfoEXT*>(this) = rhs;
  20227. return *this;
  20228. }
  20229. DebugReportCallbackCreateInfoEXT & setPNext( const void* pNext_ )
  20230. {
  20231. pNext = pNext_;
  20232. return *this;
  20233. }
  20234. DebugReportCallbackCreateInfoEXT & setFlags( DebugReportFlagsEXT flags_ )
  20235. {
  20236. flags = flags_;
  20237. return *this;
  20238. }
  20239. DebugReportCallbackCreateInfoEXT & setPfnCallback( PFN_vkDebugReportCallbackEXT pfnCallback_ )
  20240. {
  20241. pfnCallback = pfnCallback_;
  20242. return *this;
  20243. }
  20244. DebugReportCallbackCreateInfoEXT & setPUserData( void* pUserData_ )
  20245. {
  20246. pUserData = pUserData_;
  20247. return *this;
  20248. }
  20249. operator VkDebugReportCallbackCreateInfoEXT const&() const
  20250. {
  20251. return *reinterpret_cast<const VkDebugReportCallbackCreateInfoEXT*>( this );
  20252. }
  20253. operator VkDebugReportCallbackCreateInfoEXT &()
  20254. {
  20255. return *reinterpret_cast<VkDebugReportCallbackCreateInfoEXT*>( this );
  20256. }
  20257. bool operator==( DebugReportCallbackCreateInfoEXT const& rhs ) const
  20258. {
  20259. return ( sType == rhs.sType )
  20260. && ( pNext == rhs.pNext )
  20261. && ( flags == rhs.flags )
  20262. && ( pfnCallback == rhs.pfnCallback )
  20263. && ( pUserData == rhs.pUserData );
  20264. }
  20265. bool operator!=( DebugReportCallbackCreateInfoEXT const& rhs ) const
  20266. {
  20267. return !operator==( rhs );
  20268. }
  20269. private:
  20270. StructureType sType = StructureType::eDebugReportCallbackCreateInfoEXT;
  20271. public:
  20272. const void* pNext = nullptr;
  20273. DebugReportFlagsEXT flags;
  20274. PFN_vkDebugReportCallbackEXT pfnCallback;
  20275. void* pUserData;
  20276. };
  20277. static_assert( sizeof( DebugReportCallbackCreateInfoEXT ) == sizeof( VkDebugReportCallbackCreateInfoEXT ), "struct and wrapper have different size!" );
  20278. struct DebugUtilsLabelEXT
  20279. {
  20280. DebugUtilsLabelEXT( const char* pLabelName_ = nullptr,
  20281. std::array<float,4> const& color_ = { { 0 } } )
  20282. : pLabelName( pLabelName_ )
  20283. {
  20284. memcpy( &color, color_.data(), 4 * sizeof( float ) );
  20285. }
  20286. DebugUtilsLabelEXT( VkDebugUtilsLabelEXT const & rhs )
  20287. {
  20288. *reinterpret_cast<VkDebugUtilsLabelEXT*>(this) = rhs;
  20289. }
  20290. DebugUtilsLabelEXT& operator=( VkDebugUtilsLabelEXT const & rhs )
  20291. {
  20292. *reinterpret_cast<VkDebugUtilsLabelEXT*>(this) = rhs;
  20293. return *this;
  20294. }
  20295. DebugUtilsLabelEXT & setPNext( const void* pNext_ )
  20296. {
  20297. pNext = pNext_;
  20298. return *this;
  20299. }
  20300. DebugUtilsLabelEXT & setPLabelName( const char* pLabelName_ )
  20301. {
  20302. pLabelName = pLabelName_;
  20303. return *this;
  20304. }
  20305. DebugUtilsLabelEXT & setColor( std::array<float,4> color_ )
  20306. {
  20307. memcpy( color, color_.data(), 4 * sizeof( float ) );
  20308. return *this;
  20309. }
  20310. operator VkDebugUtilsLabelEXT const&() const
  20311. {
  20312. return *reinterpret_cast<const VkDebugUtilsLabelEXT*>( this );
  20313. }
  20314. operator VkDebugUtilsLabelEXT &()
  20315. {
  20316. return *reinterpret_cast<VkDebugUtilsLabelEXT*>( this );
  20317. }
  20318. bool operator==( DebugUtilsLabelEXT const& rhs ) const
  20319. {
  20320. return ( sType == rhs.sType )
  20321. && ( pNext == rhs.pNext )
  20322. && ( pLabelName == rhs.pLabelName )
  20323. && ( memcmp( color, rhs.color, 4 * sizeof( float ) ) == 0 );
  20324. }
  20325. bool operator!=( DebugUtilsLabelEXT const& rhs ) const
  20326. {
  20327. return !operator==( rhs );
  20328. }
  20329. private:
  20330. StructureType sType = StructureType::eDebugUtilsLabelEXT;
  20331. public:
  20332. const void* pNext = nullptr;
  20333. const char* pLabelName;
  20334. float color[4];
  20335. };
  20336. static_assert( sizeof( DebugUtilsLabelEXT ) == sizeof( VkDebugUtilsLabelEXT ), "struct and wrapper have different size!" );
  20337. struct DebugUtilsObjectNameInfoEXT
  20338. {
  20339. DebugUtilsObjectNameInfoEXT( ObjectType objectType_ = ObjectType::eUnknown,
  20340. uint64_t objectHandle_ = 0,
  20341. const char* pObjectName_ = nullptr )
  20342. : objectType( objectType_ )
  20343. , objectHandle( objectHandle_ )
  20344. , pObjectName( pObjectName_ )
  20345. {}
  20346. DebugUtilsObjectNameInfoEXT( VkDebugUtilsObjectNameInfoEXT const & rhs )
  20347. {
  20348. *reinterpret_cast<VkDebugUtilsObjectNameInfoEXT*>(this) = rhs;
  20349. }
  20350. DebugUtilsObjectNameInfoEXT& operator=( VkDebugUtilsObjectNameInfoEXT const & rhs )
  20351. {
  20352. *reinterpret_cast<VkDebugUtilsObjectNameInfoEXT*>(this) = rhs;
  20353. return *this;
  20354. }
  20355. DebugUtilsObjectNameInfoEXT & setPNext( const void* pNext_ )
  20356. {
  20357. pNext = pNext_;
  20358. return *this;
  20359. }
  20360. DebugUtilsObjectNameInfoEXT & setObjectType( ObjectType objectType_ )
  20361. {
  20362. objectType = objectType_;
  20363. return *this;
  20364. }
  20365. DebugUtilsObjectNameInfoEXT & setObjectHandle( uint64_t objectHandle_ )
  20366. {
  20367. objectHandle = objectHandle_;
  20368. return *this;
  20369. }
  20370. DebugUtilsObjectNameInfoEXT & setPObjectName( const char* pObjectName_ )
  20371. {
  20372. pObjectName = pObjectName_;
  20373. return *this;
  20374. }
  20375. operator VkDebugUtilsObjectNameInfoEXT const&() const
  20376. {
  20377. return *reinterpret_cast<const VkDebugUtilsObjectNameInfoEXT*>( this );
  20378. }
  20379. operator VkDebugUtilsObjectNameInfoEXT &()
  20380. {
  20381. return *reinterpret_cast<VkDebugUtilsObjectNameInfoEXT*>( this );
  20382. }
  20383. bool operator==( DebugUtilsObjectNameInfoEXT const& rhs ) const
  20384. {
  20385. return ( sType == rhs.sType )
  20386. && ( pNext == rhs.pNext )
  20387. && ( objectType == rhs.objectType )
  20388. && ( objectHandle == rhs.objectHandle )
  20389. && ( pObjectName == rhs.pObjectName );
  20390. }
  20391. bool operator!=( DebugUtilsObjectNameInfoEXT const& rhs ) const
  20392. {
  20393. return !operator==( rhs );
  20394. }
  20395. private:
  20396. StructureType sType = StructureType::eDebugUtilsObjectNameInfoEXT;
  20397. public:
  20398. const void* pNext = nullptr;
  20399. ObjectType objectType;
  20400. uint64_t objectHandle;
  20401. const char* pObjectName;
  20402. };
  20403. static_assert( sizeof( DebugUtilsObjectNameInfoEXT ) == sizeof( VkDebugUtilsObjectNameInfoEXT ), "struct and wrapper have different size!" );
  20404. struct DebugUtilsMessengerCallbackDataEXT
  20405. {
  20406. DebugUtilsMessengerCallbackDataEXT( DebugUtilsMessengerCallbackDataFlagsEXT flags_ = DebugUtilsMessengerCallbackDataFlagsEXT(),
  20407. const char* pMessageIdName_ = nullptr,
  20408. int32_t messageIdNumber_ = 0,
  20409. const char* pMessage_ = nullptr,
  20410. uint32_t queueLabelCount_ = 0,
  20411. const DebugUtilsLabelEXT* pQueueLabels_ = nullptr,
  20412. uint32_t cmdBufLabelCount_ = 0,
  20413. const DebugUtilsLabelEXT* pCmdBufLabels_ = nullptr,
  20414. uint32_t objectCount_ = 0,
  20415. const DebugUtilsObjectNameInfoEXT* pObjects_ = nullptr )
  20416. : flags( flags_ )
  20417. , pMessageIdName( pMessageIdName_ )
  20418. , messageIdNumber( messageIdNumber_ )
  20419. , pMessage( pMessage_ )
  20420. , queueLabelCount( queueLabelCount_ )
  20421. , pQueueLabels( pQueueLabels_ )
  20422. , cmdBufLabelCount( cmdBufLabelCount_ )
  20423. , pCmdBufLabels( pCmdBufLabels_ )
  20424. , objectCount( objectCount_ )
  20425. , pObjects( pObjects_ )
  20426. {}
  20427. DebugUtilsMessengerCallbackDataEXT( VkDebugUtilsMessengerCallbackDataEXT const & rhs )
  20428. {
  20429. *reinterpret_cast<VkDebugUtilsMessengerCallbackDataEXT*>(this) = rhs;
  20430. }
  20431. DebugUtilsMessengerCallbackDataEXT& operator=( VkDebugUtilsMessengerCallbackDataEXT const & rhs )
  20432. {
  20433. *reinterpret_cast<VkDebugUtilsMessengerCallbackDataEXT*>(this) = rhs;
  20434. return *this;
  20435. }
  20436. DebugUtilsMessengerCallbackDataEXT & setPNext( const void* pNext_ )
  20437. {
  20438. pNext = pNext_;
  20439. return *this;
  20440. }
  20441. DebugUtilsMessengerCallbackDataEXT & setFlags( DebugUtilsMessengerCallbackDataFlagsEXT flags_ )
  20442. {
  20443. flags = flags_;
  20444. return *this;
  20445. }
  20446. DebugUtilsMessengerCallbackDataEXT & setPMessageIdName( const char* pMessageIdName_ )
  20447. {
  20448. pMessageIdName = pMessageIdName_;
  20449. return *this;
  20450. }
  20451. DebugUtilsMessengerCallbackDataEXT & setMessageIdNumber( int32_t messageIdNumber_ )
  20452. {
  20453. messageIdNumber = messageIdNumber_;
  20454. return *this;
  20455. }
  20456. DebugUtilsMessengerCallbackDataEXT & setPMessage( const char* pMessage_ )
  20457. {
  20458. pMessage = pMessage_;
  20459. return *this;
  20460. }
  20461. DebugUtilsMessengerCallbackDataEXT & setQueueLabelCount( uint32_t queueLabelCount_ )
  20462. {
  20463. queueLabelCount = queueLabelCount_;
  20464. return *this;
  20465. }
  20466. DebugUtilsMessengerCallbackDataEXT & setPQueueLabels( const DebugUtilsLabelEXT* pQueueLabels_ )
  20467. {
  20468. pQueueLabels = pQueueLabels_;
  20469. return *this;
  20470. }
  20471. DebugUtilsMessengerCallbackDataEXT & setCmdBufLabelCount( uint32_t cmdBufLabelCount_ )
  20472. {
  20473. cmdBufLabelCount = cmdBufLabelCount_;
  20474. return *this;
  20475. }
  20476. DebugUtilsMessengerCallbackDataEXT & setPCmdBufLabels( const DebugUtilsLabelEXT* pCmdBufLabels_ )
  20477. {
  20478. pCmdBufLabels = pCmdBufLabels_;
  20479. return *this;
  20480. }
  20481. DebugUtilsMessengerCallbackDataEXT & setObjectCount( uint32_t objectCount_ )
  20482. {
  20483. objectCount = objectCount_;
  20484. return *this;
  20485. }
  20486. DebugUtilsMessengerCallbackDataEXT & setPObjects( const DebugUtilsObjectNameInfoEXT* pObjects_ )
  20487. {
  20488. pObjects = pObjects_;
  20489. return *this;
  20490. }
  20491. operator VkDebugUtilsMessengerCallbackDataEXT const&() const
  20492. {
  20493. return *reinterpret_cast<const VkDebugUtilsMessengerCallbackDataEXT*>( this );
  20494. }
  20495. operator VkDebugUtilsMessengerCallbackDataEXT &()
  20496. {
  20497. return *reinterpret_cast<VkDebugUtilsMessengerCallbackDataEXT*>( this );
  20498. }
  20499. bool operator==( DebugUtilsMessengerCallbackDataEXT const& rhs ) const
  20500. {
  20501. return ( sType == rhs.sType )
  20502. && ( pNext == rhs.pNext )
  20503. && ( flags == rhs.flags )
  20504. && ( pMessageIdName == rhs.pMessageIdName )
  20505. && ( messageIdNumber == rhs.messageIdNumber )
  20506. && ( pMessage == rhs.pMessage )
  20507. && ( queueLabelCount == rhs.queueLabelCount )
  20508. && ( pQueueLabels == rhs.pQueueLabels )
  20509. && ( cmdBufLabelCount == rhs.cmdBufLabelCount )
  20510. && ( pCmdBufLabels == rhs.pCmdBufLabels )
  20511. && ( objectCount == rhs.objectCount )
  20512. && ( pObjects == rhs.pObjects );
  20513. }
  20514. bool operator!=( DebugUtilsMessengerCallbackDataEXT const& rhs ) const
  20515. {
  20516. return !operator==( rhs );
  20517. }
  20518. private:
  20519. StructureType sType = StructureType::eDebugUtilsMessengerCallbackDataEXT;
  20520. public:
  20521. const void* pNext = nullptr;
  20522. DebugUtilsMessengerCallbackDataFlagsEXT flags;
  20523. const char* pMessageIdName;
  20524. int32_t messageIdNumber;
  20525. const char* pMessage;
  20526. uint32_t queueLabelCount;
  20527. const DebugUtilsLabelEXT* pQueueLabels;
  20528. uint32_t cmdBufLabelCount;
  20529. const DebugUtilsLabelEXT* pCmdBufLabels;
  20530. uint32_t objectCount;
  20531. const DebugUtilsObjectNameInfoEXT* pObjects;
  20532. };
  20533. static_assert( sizeof( DebugUtilsMessengerCallbackDataEXT ) == sizeof( VkDebugUtilsMessengerCallbackDataEXT ), "struct and wrapper have different size!" );
  20534. struct DebugUtilsMessengerCreateInfoEXT
  20535. {
  20536. DebugUtilsMessengerCreateInfoEXT( DebugUtilsMessengerCreateFlagsEXT flags_ = DebugUtilsMessengerCreateFlagsEXT(),
  20537. DebugUtilsMessageSeverityFlagsEXT messageSeverity_ = DebugUtilsMessageSeverityFlagsEXT(),
  20538. DebugUtilsMessageTypeFlagsEXT messageType_ = DebugUtilsMessageTypeFlagsEXT(),
  20539. PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback_ = nullptr,
  20540. void* pUserData_ = nullptr )
  20541. : flags( flags_ )
  20542. , messageSeverity( messageSeverity_ )
  20543. , messageType( messageType_ )
  20544. , pfnUserCallback( pfnUserCallback_ )
  20545. , pUserData( pUserData_ )
  20546. {}
  20547. DebugUtilsMessengerCreateInfoEXT( VkDebugUtilsMessengerCreateInfoEXT const & rhs )
  20548. {
  20549. *reinterpret_cast<VkDebugUtilsMessengerCreateInfoEXT*>(this) = rhs;
  20550. }
  20551. DebugUtilsMessengerCreateInfoEXT& operator=( VkDebugUtilsMessengerCreateInfoEXT const & rhs )
  20552. {
  20553. *reinterpret_cast<VkDebugUtilsMessengerCreateInfoEXT*>(this) = rhs;
  20554. return *this;
  20555. }
  20556. DebugUtilsMessengerCreateInfoEXT & setPNext( const void* pNext_ )
  20557. {
  20558. pNext = pNext_;
  20559. return *this;
  20560. }
  20561. DebugUtilsMessengerCreateInfoEXT & setFlags( DebugUtilsMessengerCreateFlagsEXT flags_ )
  20562. {
  20563. flags = flags_;
  20564. return *this;
  20565. }
  20566. DebugUtilsMessengerCreateInfoEXT & setMessageSeverity( DebugUtilsMessageSeverityFlagsEXT messageSeverity_ )
  20567. {
  20568. messageSeverity = messageSeverity_;
  20569. return *this;
  20570. }
  20571. DebugUtilsMessengerCreateInfoEXT & setMessageType( DebugUtilsMessageTypeFlagsEXT messageType_ )
  20572. {
  20573. messageType = messageType_;
  20574. return *this;
  20575. }
  20576. DebugUtilsMessengerCreateInfoEXT & setPfnUserCallback( PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback_ )
  20577. {
  20578. pfnUserCallback = pfnUserCallback_;
  20579. return *this;
  20580. }
  20581. DebugUtilsMessengerCreateInfoEXT & setPUserData( void* pUserData_ )
  20582. {
  20583. pUserData = pUserData_;
  20584. return *this;
  20585. }
  20586. operator VkDebugUtilsMessengerCreateInfoEXT const&() const
  20587. {
  20588. return *reinterpret_cast<const VkDebugUtilsMessengerCreateInfoEXT*>( this );
  20589. }
  20590. operator VkDebugUtilsMessengerCreateInfoEXT &()
  20591. {
  20592. return *reinterpret_cast<VkDebugUtilsMessengerCreateInfoEXT*>( this );
  20593. }
  20594. bool operator==( DebugUtilsMessengerCreateInfoEXT const& rhs ) const
  20595. {
  20596. return ( sType == rhs.sType )
  20597. && ( pNext == rhs.pNext )
  20598. && ( flags == rhs.flags )
  20599. && ( messageSeverity == rhs.messageSeverity )
  20600. && ( messageType == rhs.messageType )
  20601. && ( pfnUserCallback == rhs.pfnUserCallback )
  20602. && ( pUserData == rhs.pUserData );
  20603. }
  20604. bool operator!=( DebugUtilsMessengerCreateInfoEXT const& rhs ) const
  20605. {
  20606. return !operator==( rhs );
  20607. }
  20608. private:
  20609. StructureType sType = StructureType::eDebugUtilsMessengerCreateInfoEXT;
  20610. public:
  20611. const void* pNext = nullptr;
  20612. DebugUtilsMessengerCreateFlagsEXT flags;
  20613. DebugUtilsMessageSeverityFlagsEXT messageSeverity;
  20614. DebugUtilsMessageTypeFlagsEXT messageType;
  20615. PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback;
  20616. void* pUserData;
  20617. };
  20618. static_assert( sizeof( DebugUtilsMessengerCreateInfoEXT ) == sizeof( VkDebugUtilsMessengerCreateInfoEXT ), "struct and wrapper have different size!" );
  20619. struct DebugUtilsObjectTagInfoEXT
  20620. {
  20621. DebugUtilsObjectTagInfoEXT( ObjectType objectType_ = ObjectType::eUnknown,
  20622. uint64_t objectHandle_ = 0,
  20623. uint64_t tagName_ = 0,
  20624. size_t tagSize_ = 0,
  20625. const void* pTag_ = nullptr )
  20626. : objectType( objectType_ )
  20627. , objectHandle( objectHandle_ )
  20628. , tagName( tagName_ )
  20629. , tagSize( tagSize_ )
  20630. , pTag( pTag_ )
  20631. {}
  20632. DebugUtilsObjectTagInfoEXT( VkDebugUtilsObjectTagInfoEXT const & rhs )
  20633. {
  20634. *reinterpret_cast<VkDebugUtilsObjectTagInfoEXT*>(this) = rhs;
  20635. }
  20636. DebugUtilsObjectTagInfoEXT& operator=( VkDebugUtilsObjectTagInfoEXT const & rhs )
  20637. {
  20638. *reinterpret_cast<VkDebugUtilsObjectTagInfoEXT*>(this) = rhs;
  20639. return *this;
  20640. }
  20641. DebugUtilsObjectTagInfoEXT & setPNext( const void* pNext_ )
  20642. {
  20643. pNext = pNext_;
  20644. return *this;
  20645. }
  20646. DebugUtilsObjectTagInfoEXT & setObjectType( ObjectType objectType_ )
  20647. {
  20648. objectType = objectType_;
  20649. return *this;
  20650. }
  20651. DebugUtilsObjectTagInfoEXT & setObjectHandle( uint64_t objectHandle_ )
  20652. {
  20653. objectHandle = objectHandle_;
  20654. return *this;
  20655. }
  20656. DebugUtilsObjectTagInfoEXT & setTagName( uint64_t tagName_ )
  20657. {
  20658. tagName = tagName_;
  20659. return *this;
  20660. }
  20661. DebugUtilsObjectTagInfoEXT & setTagSize( size_t tagSize_ )
  20662. {
  20663. tagSize = tagSize_;
  20664. return *this;
  20665. }
  20666. DebugUtilsObjectTagInfoEXT & setPTag( const void* pTag_ )
  20667. {
  20668. pTag = pTag_;
  20669. return *this;
  20670. }
  20671. operator VkDebugUtilsObjectTagInfoEXT const&() const
  20672. {
  20673. return *reinterpret_cast<const VkDebugUtilsObjectTagInfoEXT*>( this );
  20674. }
  20675. operator VkDebugUtilsObjectTagInfoEXT &()
  20676. {
  20677. return *reinterpret_cast<VkDebugUtilsObjectTagInfoEXT*>( this );
  20678. }
  20679. bool operator==( DebugUtilsObjectTagInfoEXT const& rhs ) const
  20680. {
  20681. return ( sType == rhs.sType )
  20682. && ( pNext == rhs.pNext )
  20683. && ( objectType == rhs.objectType )
  20684. && ( objectHandle == rhs.objectHandle )
  20685. && ( tagName == rhs.tagName )
  20686. && ( tagSize == rhs.tagSize )
  20687. && ( pTag == rhs.pTag );
  20688. }
  20689. bool operator!=( DebugUtilsObjectTagInfoEXT const& rhs ) const
  20690. {
  20691. return !operator==( rhs );
  20692. }
  20693. private:
  20694. StructureType sType = StructureType::eDebugUtilsObjectTagInfoEXT;
  20695. public:
  20696. const void* pNext = nullptr;
  20697. ObjectType objectType;
  20698. uint64_t objectHandle;
  20699. uint64_t tagName;
  20700. size_t tagSize;
  20701. const void* pTag;
  20702. };
  20703. static_assert( sizeof( DebugUtilsObjectTagInfoEXT ) == sizeof( VkDebugUtilsObjectTagInfoEXT ), "struct and wrapper have different size!" );
  20704. struct DedicatedAllocationBufferCreateInfoNV
  20705. {
  20706. DedicatedAllocationBufferCreateInfoNV( Bool32 dedicatedAllocation_ = 0 )
  20707. : dedicatedAllocation( dedicatedAllocation_ )
  20708. {}
  20709. DedicatedAllocationBufferCreateInfoNV( VkDedicatedAllocationBufferCreateInfoNV const & rhs )
  20710. {
  20711. *reinterpret_cast<VkDedicatedAllocationBufferCreateInfoNV*>(this) = rhs;
  20712. }
  20713. DedicatedAllocationBufferCreateInfoNV& operator=( VkDedicatedAllocationBufferCreateInfoNV const & rhs )
  20714. {
  20715. *reinterpret_cast<VkDedicatedAllocationBufferCreateInfoNV*>(this) = rhs;
  20716. return *this;
  20717. }
  20718. DedicatedAllocationBufferCreateInfoNV & setPNext( const void* pNext_ )
  20719. {
  20720. pNext = pNext_;
  20721. return *this;
  20722. }
  20723. DedicatedAllocationBufferCreateInfoNV & setDedicatedAllocation( Bool32 dedicatedAllocation_ )
  20724. {
  20725. dedicatedAllocation = dedicatedAllocation_;
  20726. return *this;
  20727. }
  20728. operator VkDedicatedAllocationBufferCreateInfoNV const&() const
  20729. {
  20730. return *reinterpret_cast<const VkDedicatedAllocationBufferCreateInfoNV*>( this );
  20731. }
  20732. operator VkDedicatedAllocationBufferCreateInfoNV &()
  20733. {
  20734. return *reinterpret_cast<VkDedicatedAllocationBufferCreateInfoNV*>( this );
  20735. }
  20736. bool operator==( DedicatedAllocationBufferCreateInfoNV const& rhs ) const
  20737. {
  20738. return ( sType == rhs.sType )
  20739. && ( pNext == rhs.pNext )
  20740. && ( dedicatedAllocation == rhs.dedicatedAllocation );
  20741. }
  20742. bool operator!=( DedicatedAllocationBufferCreateInfoNV const& rhs ) const
  20743. {
  20744. return !operator==( rhs );
  20745. }
  20746. private:
  20747. StructureType sType = StructureType::eDedicatedAllocationBufferCreateInfoNV;
  20748. public:
  20749. const void* pNext = nullptr;
  20750. Bool32 dedicatedAllocation;
  20751. };
  20752. static_assert( sizeof( DedicatedAllocationBufferCreateInfoNV ) == sizeof( VkDedicatedAllocationBufferCreateInfoNV ), "struct and wrapper have different size!" );
  20753. struct DedicatedAllocationImageCreateInfoNV
  20754. {
  20755. DedicatedAllocationImageCreateInfoNV( Bool32 dedicatedAllocation_ = 0 )
  20756. : dedicatedAllocation( dedicatedAllocation_ )
  20757. {}
  20758. DedicatedAllocationImageCreateInfoNV( VkDedicatedAllocationImageCreateInfoNV const & rhs )
  20759. {
  20760. *reinterpret_cast<VkDedicatedAllocationImageCreateInfoNV*>(this) = rhs;
  20761. }
  20762. DedicatedAllocationImageCreateInfoNV& operator=( VkDedicatedAllocationImageCreateInfoNV const & rhs )
  20763. {
  20764. *reinterpret_cast<VkDedicatedAllocationImageCreateInfoNV*>(this) = rhs;
  20765. return *this;
  20766. }
  20767. DedicatedAllocationImageCreateInfoNV & setPNext( const void* pNext_ )
  20768. {
  20769. pNext = pNext_;
  20770. return *this;
  20771. }
  20772. DedicatedAllocationImageCreateInfoNV & setDedicatedAllocation( Bool32 dedicatedAllocation_ )
  20773. {
  20774. dedicatedAllocation = dedicatedAllocation_;
  20775. return *this;
  20776. }
  20777. operator VkDedicatedAllocationImageCreateInfoNV const&() const
  20778. {
  20779. return *reinterpret_cast<const VkDedicatedAllocationImageCreateInfoNV*>( this );
  20780. }
  20781. operator VkDedicatedAllocationImageCreateInfoNV &()
  20782. {
  20783. return *reinterpret_cast<VkDedicatedAllocationImageCreateInfoNV*>( this );
  20784. }
  20785. bool operator==( DedicatedAllocationImageCreateInfoNV const& rhs ) const
  20786. {
  20787. return ( sType == rhs.sType )
  20788. && ( pNext == rhs.pNext )
  20789. && ( dedicatedAllocation == rhs.dedicatedAllocation );
  20790. }
  20791. bool operator!=( DedicatedAllocationImageCreateInfoNV const& rhs ) const
  20792. {
  20793. return !operator==( rhs );
  20794. }
  20795. private:
  20796. StructureType sType = StructureType::eDedicatedAllocationImageCreateInfoNV;
  20797. public:
  20798. const void* pNext = nullptr;
  20799. Bool32 dedicatedAllocation;
  20800. };
  20801. static_assert( sizeof( DedicatedAllocationImageCreateInfoNV ) == sizeof( VkDedicatedAllocationImageCreateInfoNV ), "struct and wrapper have different size!" );
  20802. struct DedicatedAllocationMemoryAllocateInfoNV
  20803. {
  20804. DedicatedAllocationMemoryAllocateInfoNV( Image image_ = Image(),
  20805. Buffer buffer_ = Buffer() )
  20806. : image( image_ )
  20807. , buffer( buffer_ )
  20808. {}
  20809. DedicatedAllocationMemoryAllocateInfoNV( VkDedicatedAllocationMemoryAllocateInfoNV const & rhs )
  20810. {
  20811. *reinterpret_cast<VkDedicatedAllocationMemoryAllocateInfoNV*>(this) = rhs;
  20812. }
  20813. DedicatedAllocationMemoryAllocateInfoNV& operator=( VkDedicatedAllocationMemoryAllocateInfoNV const & rhs )
  20814. {
  20815. *reinterpret_cast<VkDedicatedAllocationMemoryAllocateInfoNV*>(this) = rhs;
  20816. return *this;
  20817. }
  20818. DedicatedAllocationMemoryAllocateInfoNV & setPNext( const void* pNext_ )
  20819. {
  20820. pNext = pNext_;
  20821. return *this;
  20822. }
  20823. DedicatedAllocationMemoryAllocateInfoNV & setImage( Image image_ )
  20824. {
  20825. image = image_;
  20826. return *this;
  20827. }
  20828. DedicatedAllocationMemoryAllocateInfoNV & setBuffer( Buffer buffer_ )
  20829. {
  20830. buffer = buffer_;
  20831. return *this;
  20832. }
  20833. operator VkDedicatedAllocationMemoryAllocateInfoNV const&() const
  20834. {
  20835. return *reinterpret_cast<const VkDedicatedAllocationMemoryAllocateInfoNV*>( this );
  20836. }
  20837. operator VkDedicatedAllocationMemoryAllocateInfoNV &()
  20838. {
  20839. return *reinterpret_cast<VkDedicatedAllocationMemoryAllocateInfoNV*>( this );
  20840. }
  20841. bool operator==( DedicatedAllocationMemoryAllocateInfoNV const& rhs ) const
  20842. {
  20843. return ( sType == rhs.sType )
  20844. && ( pNext == rhs.pNext )
  20845. && ( image == rhs.image )
  20846. && ( buffer == rhs.buffer );
  20847. }
  20848. bool operator!=( DedicatedAllocationMemoryAllocateInfoNV const& rhs ) const
  20849. {
  20850. return !operator==( rhs );
  20851. }
  20852. private:
  20853. StructureType sType = StructureType::eDedicatedAllocationMemoryAllocateInfoNV;
  20854. public:
  20855. const void* pNext = nullptr;
  20856. Image image;
  20857. Buffer buffer;
  20858. };
  20859. static_assert( sizeof( DedicatedAllocationMemoryAllocateInfoNV ) == sizeof( VkDedicatedAllocationMemoryAllocateInfoNV ), "struct and wrapper have different size!" );
  20860. struct DescriptorBufferInfo
  20861. {
  20862. DescriptorBufferInfo( Buffer buffer_ = Buffer(),
  20863. DeviceSize offset_ = 0,
  20864. DeviceSize range_ = 0 )
  20865. : buffer( buffer_ )
  20866. , offset( offset_ )
  20867. , range( range_ )
  20868. {}
  20869. DescriptorBufferInfo( VkDescriptorBufferInfo const & rhs )
  20870. {
  20871. *reinterpret_cast<VkDescriptorBufferInfo*>(this) = rhs;
  20872. }
  20873. DescriptorBufferInfo& operator=( VkDescriptorBufferInfo const & rhs )
  20874. {
  20875. *reinterpret_cast<VkDescriptorBufferInfo*>(this) = rhs;
  20876. return *this;
  20877. }
  20878. DescriptorBufferInfo & setBuffer( Buffer buffer_ )
  20879. {
  20880. buffer = buffer_;
  20881. return *this;
  20882. }
  20883. DescriptorBufferInfo & setOffset( DeviceSize offset_ )
  20884. {
  20885. offset = offset_;
  20886. return *this;
  20887. }
  20888. DescriptorBufferInfo & setRange( DeviceSize range_ )
  20889. {
  20890. range = range_;
  20891. return *this;
  20892. }
  20893. operator VkDescriptorBufferInfo const&() const
  20894. {
  20895. return *reinterpret_cast<const VkDescriptorBufferInfo*>( this );
  20896. }
  20897. operator VkDescriptorBufferInfo &()
  20898. {
  20899. return *reinterpret_cast<VkDescriptorBufferInfo*>( this );
  20900. }
  20901. bool operator==( DescriptorBufferInfo const& rhs ) const
  20902. {
  20903. return ( buffer == rhs.buffer )
  20904. && ( offset == rhs.offset )
  20905. && ( range == rhs.range );
  20906. }
  20907. bool operator!=( DescriptorBufferInfo const& rhs ) const
  20908. {
  20909. return !operator==( rhs );
  20910. }
  20911. Buffer buffer;
  20912. DeviceSize offset;
  20913. DeviceSize range;
  20914. };
  20915. static_assert( sizeof( DescriptorBufferInfo ) == sizeof( VkDescriptorBufferInfo ), "struct and wrapper have different size!" );
  20916. struct DescriptorImageInfo
  20917. {
  20918. DescriptorImageInfo( Sampler sampler_ = Sampler(),
  20919. ImageView imageView_ = ImageView(),
  20920. ImageLayout imageLayout_ = ImageLayout::eUndefined )
  20921. : sampler( sampler_ )
  20922. , imageView( imageView_ )
  20923. , imageLayout( imageLayout_ )
  20924. {}
  20925. DescriptorImageInfo( VkDescriptorImageInfo const & rhs )
  20926. {
  20927. *reinterpret_cast<VkDescriptorImageInfo*>(this) = rhs;
  20928. }
  20929. DescriptorImageInfo& operator=( VkDescriptorImageInfo const & rhs )
  20930. {
  20931. *reinterpret_cast<VkDescriptorImageInfo*>(this) = rhs;
  20932. return *this;
  20933. }
  20934. DescriptorImageInfo & setSampler( Sampler sampler_ )
  20935. {
  20936. sampler = sampler_;
  20937. return *this;
  20938. }
  20939. DescriptorImageInfo & setImageView( ImageView imageView_ )
  20940. {
  20941. imageView = imageView_;
  20942. return *this;
  20943. }
  20944. DescriptorImageInfo & setImageLayout( ImageLayout imageLayout_ )
  20945. {
  20946. imageLayout = imageLayout_;
  20947. return *this;
  20948. }
  20949. operator VkDescriptorImageInfo const&() const
  20950. {
  20951. return *reinterpret_cast<const VkDescriptorImageInfo*>( this );
  20952. }
  20953. operator VkDescriptorImageInfo &()
  20954. {
  20955. return *reinterpret_cast<VkDescriptorImageInfo*>( this );
  20956. }
  20957. bool operator==( DescriptorImageInfo const& rhs ) const
  20958. {
  20959. return ( sampler == rhs.sampler )
  20960. && ( imageView == rhs.imageView )
  20961. && ( imageLayout == rhs.imageLayout );
  20962. }
  20963. bool operator!=( DescriptorImageInfo const& rhs ) const
  20964. {
  20965. return !operator==( rhs );
  20966. }
  20967. Sampler sampler;
  20968. ImageView imageView;
  20969. ImageLayout imageLayout;
  20970. };
  20971. static_assert( sizeof( DescriptorImageInfo ) == sizeof( VkDescriptorImageInfo ), "struct and wrapper have different size!" );
  20972. struct DescriptorPoolSize
  20973. {
  20974. DescriptorPoolSize( DescriptorType type_ = DescriptorType::eSampler,
  20975. uint32_t descriptorCount_ = 0 )
  20976. : type( type_ )
  20977. , descriptorCount( descriptorCount_ )
  20978. {}
  20979. DescriptorPoolSize( VkDescriptorPoolSize const & rhs )
  20980. {
  20981. *reinterpret_cast<VkDescriptorPoolSize*>(this) = rhs;
  20982. }
  20983. DescriptorPoolSize& operator=( VkDescriptorPoolSize const & rhs )
  20984. {
  20985. *reinterpret_cast<VkDescriptorPoolSize*>(this) = rhs;
  20986. return *this;
  20987. }
  20988. DescriptorPoolSize & setType( DescriptorType type_ )
  20989. {
  20990. type = type_;
  20991. return *this;
  20992. }
  20993. DescriptorPoolSize & setDescriptorCount( uint32_t descriptorCount_ )
  20994. {
  20995. descriptorCount = descriptorCount_;
  20996. return *this;
  20997. }
  20998. operator VkDescriptorPoolSize const&() const
  20999. {
  21000. return *reinterpret_cast<const VkDescriptorPoolSize*>( this );
  21001. }
  21002. operator VkDescriptorPoolSize &()
  21003. {
  21004. return *reinterpret_cast<VkDescriptorPoolSize*>( this );
  21005. }
  21006. bool operator==( DescriptorPoolSize const& rhs ) const
  21007. {
  21008. return ( type == rhs.type )
  21009. && ( descriptorCount == rhs.descriptorCount );
  21010. }
  21011. bool operator!=( DescriptorPoolSize const& rhs ) const
  21012. {
  21013. return !operator==( rhs );
  21014. }
  21015. DescriptorType type;
  21016. uint32_t descriptorCount;
  21017. };
  21018. static_assert( sizeof( DescriptorPoolSize ) == sizeof( VkDescriptorPoolSize ), "struct and wrapper have different size!" );
  21019. struct DescriptorPoolCreateInfo
  21020. {
  21021. DescriptorPoolCreateInfo( DescriptorPoolCreateFlags flags_ = DescriptorPoolCreateFlags(),
  21022. uint32_t maxSets_ = 0,
  21023. uint32_t poolSizeCount_ = 0,
  21024. const DescriptorPoolSize* pPoolSizes_ = nullptr )
  21025. : flags( flags_ )
  21026. , maxSets( maxSets_ )
  21027. , poolSizeCount( poolSizeCount_ )
  21028. , pPoolSizes( pPoolSizes_ )
  21029. {}
  21030. DescriptorPoolCreateInfo( VkDescriptorPoolCreateInfo const & rhs )
  21031. {
  21032. *reinterpret_cast<VkDescriptorPoolCreateInfo*>(this) = rhs;
  21033. }
  21034. DescriptorPoolCreateInfo& operator=( VkDescriptorPoolCreateInfo const & rhs )
  21035. {
  21036. *reinterpret_cast<VkDescriptorPoolCreateInfo*>(this) = rhs;
  21037. return *this;
  21038. }
  21039. DescriptorPoolCreateInfo & setPNext( const void* pNext_ )
  21040. {
  21041. pNext = pNext_;
  21042. return *this;
  21043. }
  21044. DescriptorPoolCreateInfo & setFlags( DescriptorPoolCreateFlags flags_ )
  21045. {
  21046. flags = flags_;
  21047. return *this;
  21048. }
  21049. DescriptorPoolCreateInfo & setMaxSets( uint32_t maxSets_ )
  21050. {
  21051. maxSets = maxSets_;
  21052. return *this;
  21053. }
  21054. DescriptorPoolCreateInfo & setPoolSizeCount( uint32_t poolSizeCount_ )
  21055. {
  21056. poolSizeCount = poolSizeCount_;
  21057. return *this;
  21058. }
  21059. DescriptorPoolCreateInfo & setPPoolSizes( const DescriptorPoolSize* pPoolSizes_ )
  21060. {
  21061. pPoolSizes = pPoolSizes_;
  21062. return *this;
  21063. }
  21064. operator VkDescriptorPoolCreateInfo const&() const
  21065. {
  21066. return *reinterpret_cast<const VkDescriptorPoolCreateInfo*>( this );
  21067. }
  21068. operator VkDescriptorPoolCreateInfo &()
  21069. {
  21070. return *reinterpret_cast<VkDescriptorPoolCreateInfo*>( this );
  21071. }
  21072. bool operator==( DescriptorPoolCreateInfo const& rhs ) const
  21073. {
  21074. return ( sType == rhs.sType )
  21075. && ( pNext == rhs.pNext )
  21076. && ( flags == rhs.flags )
  21077. && ( maxSets == rhs.maxSets )
  21078. && ( poolSizeCount == rhs.poolSizeCount )
  21079. && ( pPoolSizes == rhs.pPoolSizes );
  21080. }
  21081. bool operator!=( DescriptorPoolCreateInfo const& rhs ) const
  21082. {
  21083. return !operator==( rhs );
  21084. }
  21085. private:
  21086. StructureType sType = StructureType::eDescriptorPoolCreateInfo;
  21087. public:
  21088. const void* pNext = nullptr;
  21089. DescriptorPoolCreateFlags flags;
  21090. uint32_t maxSets;
  21091. uint32_t poolSizeCount;
  21092. const DescriptorPoolSize* pPoolSizes;
  21093. };
  21094. static_assert( sizeof( DescriptorPoolCreateInfo ) == sizeof( VkDescriptorPoolCreateInfo ), "struct and wrapper have different size!" );
  21095. struct DescriptorPoolInlineUniformBlockCreateInfoEXT
  21096. {
  21097. DescriptorPoolInlineUniformBlockCreateInfoEXT( uint32_t maxInlineUniformBlockBindings_ = 0 )
  21098. : maxInlineUniformBlockBindings( maxInlineUniformBlockBindings_ )
  21099. {}
  21100. DescriptorPoolInlineUniformBlockCreateInfoEXT( VkDescriptorPoolInlineUniformBlockCreateInfoEXT const & rhs )
  21101. {
  21102. *reinterpret_cast<VkDescriptorPoolInlineUniformBlockCreateInfoEXT*>(this) = rhs;
  21103. }
  21104. DescriptorPoolInlineUniformBlockCreateInfoEXT& operator=( VkDescriptorPoolInlineUniformBlockCreateInfoEXT const & rhs )
  21105. {
  21106. *reinterpret_cast<VkDescriptorPoolInlineUniformBlockCreateInfoEXT*>(this) = rhs;
  21107. return *this;
  21108. }
  21109. DescriptorPoolInlineUniformBlockCreateInfoEXT & setPNext( const void* pNext_ )
  21110. {
  21111. pNext = pNext_;
  21112. return *this;
  21113. }
  21114. DescriptorPoolInlineUniformBlockCreateInfoEXT & setMaxInlineUniformBlockBindings( uint32_t maxInlineUniformBlockBindings_ )
  21115. {
  21116. maxInlineUniformBlockBindings = maxInlineUniformBlockBindings_;
  21117. return *this;
  21118. }
  21119. operator VkDescriptorPoolInlineUniformBlockCreateInfoEXT const&() const
  21120. {
  21121. return *reinterpret_cast<const VkDescriptorPoolInlineUniformBlockCreateInfoEXT*>( this );
  21122. }
  21123. operator VkDescriptorPoolInlineUniformBlockCreateInfoEXT &()
  21124. {
  21125. return *reinterpret_cast<VkDescriptorPoolInlineUniformBlockCreateInfoEXT*>( this );
  21126. }
  21127. bool operator==( DescriptorPoolInlineUniformBlockCreateInfoEXT const& rhs ) const
  21128. {
  21129. return ( sType == rhs.sType )
  21130. && ( pNext == rhs.pNext )
  21131. && ( maxInlineUniformBlockBindings == rhs.maxInlineUniformBlockBindings );
  21132. }
  21133. bool operator!=( DescriptorPoolInlineUniformBlockCreateInfoEXT const& rhs ) const
  21134. {
  21135. return !operator==( rhs );
  21136. }
  21137. private:
  21138. StructureType sType = StructureType::eDescriptorPoolInlineUniformBlockCreateInfoEXT;
  21139. public:
  21140. const void* pNext = nullptr;
  21141. uint32_t maxInlineUniformBlockBindings;
  21142. };
  21143. static_assert( sizeof( DescriptorPoolInlineUniformBlockCreateInfoEXT ) == sizeof( VkDescriptorPoolInlineUniformBlockCreateInfoEXT ), "struct and wrapper have different size!" );
  21144. struct DescriptorSetAllocateInfo
  21145. {
  21146. DescriptorSetAllocateInfo( DescriptorPool descriptorPool_ = DescriptorPool(),
  21147. uint32_t descriptorSetCount_ = 0,
  21148. const DescriptorSetLayout* pSetLayouts_ = nullptr )
  21149. : descriptorPool( descriptorPool_ )
  21150. , descriptorSetCount( descriptorSetCount_ )
  21151. , pSetLayouts( pSetLayouts_ )
  21152. {}
  21153. DescriptorSetAllocateInfo( VkDescriptorSetAllocateInfo const & rhs )
  21154. {
  21155. *reinterpret_cast<VkDescriptorSetAllocateInfo*>(this) = rhs;
  21156. }
  21157. DescriptorSetAllocateInfo& operator=( VkDescriptorSetAllocateInfo const & rhs )
  21158. {
  21159. *reinterpret_cast<VkDescriptorSetAllocateInfo*>(this) = rhs;
  21160. return *this;
  21161. }
  21162. DescriptorSetAllocateInfo & setPNext( const void* pNext_ )
  21163. {
  21164. pNext = pNext_;
  21165. return *this;
  21166. }
  21167. DescriptorSetAllocateInfo & setDescriptorPool( DescriptorPool descriptorPool_ )
  21168. {
  21169. descriptorPool = descriptorPool_;
  21170. return *this;
  21171. }
  21172. DescriptorSetAllocateInfo & setDescriptorSetCount( uint32_t descriptorSetCount_ )
  21173. {
  21174. descriptorSetCount = descriptorSetCount_;
  21175. return *this;
  21176. }
  21177. DescriptorSetAllocateInfo & setPSetLayouts( const DescriptorSetLayout* pSetLayouts_ )
  21178. {
  21179. pSetLayouts = pSetLayouts_;
  21180. return *this;
  21181. }
  21182. operator VkDescriptorSetAllocateInfo const&() const
  21183. {
  21184. return *reinterpret_cast<const VkDescriptorSetAllocateInfo*>( this );
  21185. }
  21186. operator VkDescriptorSetAllocateInfo &()
  21187. {
  21188. return *reinterpret_cast<VkDescriptorSetAllocateInfo*>( this );
  21189. }
  21190. bool operator==( DescriptorSetAllocateInfo const& rhs ) const
  21191. {
  21192. return ( sType == rhs.sType )
  21193. && ( pNext == rhs.pNext )
  21194. && ( descriptorPool == rhs.descriptorPool )
  21195. && ( descriptorSetCount == rhs.descriptorSetCount )
  21196. && ( pSetLayouts == rhs.pSetLayouts );
  21197. }
  21198. bool operator!=( DescriptorSetAllocateInfo const& rhs ) const
  21199. {
  21200. return !operator==( rhs );
  21201. }
  21202. private:
  21203. StructureType sType = StructureType::eDescriptorSetAllocateInfo;
  21204. public:
  21205. const void* pNext = nullptr;
  21206. DescriptorPool descriptorPool;
  21207. uint32_t descriptorSetCount;
  21208. const DescriptorSetLayout* pSetLayouts;
  21209. };
  21210. static_assert( sizeof( DescriptorSetAllocateInfo ) == sizeof( VkDescriptorSetAllocateInfo ), "struct and wrapper have different size!" );
  21211. struct DescriptorSetLayoutBinding
  21212. {
  21213. DescriptorSetLayoutBinding( uint32_t binding_ = 0,
  21214. DescriptorType descriptorType_ = DescriptorType::eSampler,
  21215. uint32_t descriptorCount_ = 0,
  21216. ShaderStageFlags stageFlags_ = ShaderStageFlags(),
  21217. const Sampler* pImmutableSamplers_ = nullptr )
  21218. : binding( binding_ )
  21219. , descriptorType( descriptorType_ )
  21220. , descriptorCount( descriptorCount_ )
  21221. , stageFlags( stageFlags_ )
  21222. , pImmutableSamplers( pImmutableSamplers_ )
  21223. {}
  21224. DescriptorSetLayoutBinding( VkDescriptorSetLayoutBinding const & rhs )
  21225. {
  21226. *reinterpret_cast<VkDescriptorSetLayoutBinding*>(this) = rhs;
  21227. }
  21228. DescriptorSetLayoutBinding& operator=( VkDescriptorSetLayoutBinding const & rhs )
  21229. {
  21230. *reinterpret_cast<VkDescriptorSetLayoutBinding*>(this) = rhs;
  21231. return *this;
  21232. }
  21233. DescriptorSetLayoutBinding & setBinding( uint32_t binding_ )
  21234. {
  21235. binding = binding_;
  21236. return *this;
  21237. }
  21238. DescriptorSetLayoutBinding & setDescriptorType( DescriptorType descriptorType_ )
  21239. {
  21240. descriptorType = descriptorType_;
  21241. return *this;
  21242. }
  21243. DescriptorSetLayoutBinding & setDescriptorCount( uint32_t descriptorCount_ )
  21244. {
  21245. descriptorCount = descriptorCount_;
  21246. return *this;
  21247. }
  21248. DescriptorSetLayoutBinding & setStageFlags( ShaderStageFlags stageFlags_ )
  21249. {
  21250. stageFlags = stageFlags_;
  21251. return *this;
  21252. }
  21253. DescriptorSetLayoutBinding & setPImmutableSamplers( const Sampler* pImmutableSamplers_ )
  21254. {
  21255. pImmutableSamplers = pImmutableSamplers_;
  21256. return *this;
  21257. }
  21258. operator VkDescriptorSetLayoutBinding const&() const
  21259. {
  21260. return *reinterpret_cast<const VkDescriptorSetLayoutBinding*>( this );
  21261. }
  21262. operator VkDescriptorSetLayoutBinding &()
  21263. {
  21264. return *reinterpret_cast<VkDescriptorSetLayoutBinding*>( this );
  21265. }
  21266. bool operator==( DescriptorSetLayoutBinding const& rhs ) const
  21267. {
  21268. return ( binding == rhs.binding )
  21269. && ( descriptorType == rhs.descriptorType )
  21270. && ( descriptorCount == rhs.descriptorCount )
  21271. && ( stageFlags == rhs.stageFlags )
  21272. && ( pImmutableSamplers == rhs.pImmutableSamplers );
  21273. }
  21274. bool operator!=( DescriptorSetLayoutBinding const& rhs ) const
  21275. {
  21276. return !operator==( rhs );
  21277. }
  21278. uint32_t binding;
  21279. DescriptorType descriptorType;
  21280. uint32_t descriptorCount;
  21281. ShaderStageFlags stageFlags;
  21282. const Sampler* pImmutableSamplers;
  21283. };
  21284. static_assert( sizeof( DescriptorSetLayoutBinding ) == sizeof( VkDescriptorSetLayoutBinding ), "struct and wrapper have different size!" );
  21285. struct DescriptorSetLayoutBindingFlagsCreateInfoEXT
  21286. {
  21287. DescriptorSetLayoutBindingFlagsCreateInfoEXT( uint32_t bindingCount_ = 0,
  21288. const DescriptorBindingFlagsEXT* pBindingFlags_ = nullptr )
  21289. : bindingCount( bindingCount_ )
  21290. , pBindingFlags( pBindingFlags_ )
  21291. {}
  21292. DescriptorSetLayoutBindingFlagsCreateInfoEXT( VkDescriptorSetLayoutBindingFlagsCreateInfoEXT const & rhs )
  21293. {
  21294. *reinterpret_cast<VkDescriptorSetLayoutBindingFlagsCreateInfoEXT*>(this) = rhs;
  21295. }
  21296. DescriptorSetLayoutBindingFlagsCreateInfoEXT& operator=( VkDescriptorSetLayoutBindingFlagsCreateInfoEXT const & rhs )
  21297. {
  21298. *reinterpret_cast<VkDescriptorSetLayoutBindingFlagsCreateInfoEXT*>(this) = rhs;
  21299. return *this;
  21300. }
  21301. DescriptorSetLayoutBindingFlagsCreateInfoEXT & setPNext( const void* pNext_ )
  21302. {
  21303. pNext = pNext_;
  21304. return *this;
  21305. }
  21306. DescriptorSetLayoutBindingFlagsCreateInfoEXT & setBindingCount( uint32_t bindingCount_ )
  21307. {
  21308. bindingCount = bindingCount_;
  21309. return *this;
  21310. }
  21311. DescriptorSetLayoutBindingFlagsCreateInfoEXT & setPBindingFlags( const DescriptorBindingFlagsEXT* pBindingFlags_ )
  21312. {
  21313. pBindingFlags = pBindingFlags_;
  21314. return *this;
  21315. }
  21316. operator VkDescriptorSetLayoutBindingFlagsCreateInfoEXT const&() const
  21317. {
  21318. return *reinterpret_cast<const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT*>( this );
  21319. }
  21320. operator VkDescriptorSetLayoutBindingFlagsCreateInfoEXT &()
  21321. {
  21322. return *reinterpret_cast<VkDescriptorSetLayoutBindingFlagsCreateInfoEXT*>( this );
  21323. }
  21324. bool operator==( DescriptorSetLayoutBindingFlagsCreateInfoEXT const& rhs ) const
  21325. {
  21326. return ( sType == rhs.sType )
  21327. && ( pNext == rhs.pNext )
  21328. && ( bindingCount == rhs.bindingCount )
  21329. && ( pBindingFlags == rhs.pBindingFlags );
  21330. }
  21331. bool operator!=( DescriptorSetLayoutBindingFlagsCreateInfoEXT const& rhs ) const
  21332. {
  21333. return !operator==( rhs );
  21334. }
  21335. private:
  21336. StructureType sType = StructureType::eDescriptorSetLayoutBindingFlagsCreateInfoEXT;
  21337. public:
  21338. const void* pNext = nullptr;
  21339. uint32_t bindingCount;
  21340. const DescriptorBindingFlagsEXT* pBindingFlags;
  21341. };
  21342. static_assert( sizeof( DescriptorSetLayoutBindingFlagsCreateInfoEXT ) == sizeof( VkDescriptorSetLayoutBindingFlagsCreateInfoEXT ), "struct and wrapper have different size!" );
  21343. struct DescriptorSetLayoutCreateInfo
  21344. {
  21345. DescriptorSetLayoutCreateInfo( DescriptorSetLayoutCreateFlags flags_ = DescriptorSetLayoutCreateFlags(),
  21346. uint32_t bindingCount_ = 0,
  21347. const DescriptorSetLayoutBinding* pBindings_ = nullptr )
  21348. : flags( flags_ )
  21349. , bindingCount( bindingCount_ )
  21350. , pBindings( pBindings_ )
  21351. {}
  21352. DescriptorSetLayoutCreateInfo( VkDescriptorSetLayoutCreateInfo const & rhs )
  21353. {
  21354. *reinterpret_cast<VkDescriptorSetLayoutCreateInfo*>(this) = rhs;
  21355. }
  21356. DescriptorSetLayoutCreateInfo& operator=( VkDescriptorSetLayoutCreateInfo const & rhs )
  21357. {
  21358. *reinterpret_cast<VkDescriptorSetLayoutCreateInfo*>(this) = rhs;
  21359. return *this;
  21360. }
  21361. DescriptorSetLayoutCreateInfo & setPNext( const void* pNext_ )
  21362. {
  21363. pNext = pNext_;
  21364. return *this;
  21365. }
  21366. DescriptorSetLayoutCreateInfo & setFlags( DescriptorSetLayoutCreateFlags flags_ )
  21367. {
  21368. flags = flags_;
  21369. return *this;
  21370. }
  21371. DescriptorSetLayoutCreateInfo & setBindingCount( uint32_t bindingCount_ )
  21372. {
  21373. bindingCount = bindingCount_;
  21374. return *this;
  21375. }
  21376. DescriptorSetLayoutCreateInfo & setPBindings( const DescriptorSetLayoutBinding* pBindings_ )
  21377. {
  21378. pBindings = pBindings_;
  21379. return *this;
  21380. }
  21381. operator VkDescriptorSetLayoutCreateInfo const&() const
  21382. {
  21383. return *reinterpret_cast<const VkDescriptorSetLayoutCreateInfo*>( this );
  21384. }
  21385. operator VkDescriptorSetLayoutCreateInfo &()
  21386. {
  21387. return *reinterpret_cast<VkDescriptorSetLayoutCreateInfo*>( this );
  21388. }
  21389. bool operator==( DescriptorSetLayoutCreateInfo const& rhs ) const
  21390. {
  21391. return ( sType == rhs.sType )
  21392. && ( pNext == rhs.pNext )
  21393. && ( flags == rhs.flags )
  21394. && ( bindingCount == rhs.bindingCount )
  21395. && ( pBindings == rhs.pBindings );
  21396. }
  21397. bool operator!=( DescriptorSetLayoutCreateInfo const& rhs ) const
  21398. {
  21399. return !operator==( rhs );
  21400. }
  21401. private:
  21402. StructureType sType = StructureType::eDescriptorSetLayoutCreateInfo;
  21403. public:
  21404. const void* pNext = nullptr;
  21405. DescriptorSetLayoutCreateFlags flags;
  21406. uint32_t bindingCount;
  21407. const DescriptorSetLayoutBinding* pBindings;
  21408. };
  21409. static_assert( sizeof( DescriptorSetLayoutCreateInfo ) == sizeof( VkDescriptorSetLayoutCreateInfo ), "struct and wrapper have different size!" );
  21410. struct DescriptorSetLayoutSupport
  21411. {
  21412. operator VkDescriptorSetLayoutSupport const&() const
  21413. {
  21414. return *reinterpret_cast<const VkDescriptorSetLayoutSupport*>( this );
  21415. }
  21416. operator VkDescriptorSetLayoutSupport &()
  21417. {
  21418. return *reinterpret_cast<VkDescriptorSetLayoutSupport*>( this );
  21419. }
  21420. bool operator==( DescriptorSetLayoutSupport const& rhs ) const
  21421. {
  21422. return ( sType == rhs.sType )
  21423. && ( pNext == rhs.pNext )
  21424. && ( supported == rhs.supported );
  21425. }
  21426. bool operator!=( DescriptorSetLayoutSupport const& rhs ) const
  21427. {
  21428. return !operator==( rhs );
  21429. }
  21430. private:
  21431. StructureType sType = StructureType::eDescriptorSetLayoutSupport;
  21432. public:
  21433. void* pNext = nullptr;
  21434. Bool32 supported;
  21435. };
  21436. static_assert( sizeof( DescriptorSetLayoutSupport ) == sizeof( VkDescriptorSetLayoutSupport ), "struct and wrapper have different size!" );
  21437. struct DescriptorSetVariableDescriptorCountAllocateInfoEXT
  21438. {
  21439. DescriptorSetVariableDescriptorCountAllocateInfoEXT( uint32_t descriptorSetCount_ = 0,
  21440. const uint32_t* pDescriptorCounts_ = nullptr )
  21441. : descriptorSetCount( descriptorSetCount_ )
  21442. , pDescriptorCounts( pDescriptorCounts_ )
  21443. {}
  21444. DescriptorSetVariableDescriptorCountAllocateInfoEXT( VkDescriptorSetVariableDescriptorCountAllocateInfoEXT const & rhs )
  21445. {
  21446. *reinterpret_cast<VkDescriptorSetVariableDescriptorCountAllocateInfoEXT*>(this) = rhs;
  21447. }
  21448. DescriptorSetVariableDescriptorCountAllocateInfoEXT& operator=( VkDescriptorSetVariableDescriptorCountAllocateInfoEXT const & rhs )
  21449. {
  21450. *reinterpret_cast<VkDescriptorSetVariableDescriptorCountAllocateInfoEXT*>(this) = rhs;
  21451. return *this;
  21452. }
  21453. DescriptorSetVariableDescriptorCountAllocateInfoEXT & setPNext( const void* pNext_ )
  21454. {
  21455. pNext = pNext_;
  21456. return *this;
  21457. }
  21458. DescriptorSetVariableDescriptorCountAllocateInfoEXT & setDescriptorSetCount( uint32_t descriptorSetCount_ )
  21459. {
  21460. descriptorSetCount = descriptorSetCount_;
  21461. return *this;
  21462. }
  21463. DescriptorSetVariableDescriptorCountAllocateInfoEXT & setPDescriptorCounts( const uint32_t* pDescriptorCounts_ )
  21464. {
  21465. pDescriptorCounts = pDescriptorCounts_;
  21466. return *this;
  21467. }
  21468. operator VkDescriptorSetVariableDescriptorCountAllocateInfoEXT const&() const
  21469. {
  21470. return *reinterpret_cast<const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT*>( this );
  21471. }
  21472. operator VkDescriptorSetVariableDescriptorCountAllocateInfoEXT &()
  21473. {
  21474. return *reinterpret_cast<VkDescriptorSetVariableDescriptorCountAllocateInfoEXT*>( this );
  21475. }
  21476. bool operator==( DescriptorSetVariableDescriptorCountAllocateInfoEXT const& rhs ) const
  21477. {
  21478. return ( sType == rhs.sType )
  21479. && ( pNext == rhs.pNext )
  21480. && ( descriptorSetCount == rhs.descriptorSetCount )
  21481. && ( pDescriptorCounts == rhs.pDescriptorCounts );
  21482. }
  21483. bool operator!=( DescriptorSetVariableDescriptorCountAllocateInfoEXT const& rhs ) const
  21484. {
  21485. return !operator==( rhs );
  21486. }
  21487. private:
  21488. StructureType sType = StructureType::eDescriptorSetVariableDescriptorCountAllocateInfoEXT;
  21489. public:
  21490. const void* pNext = nullptr;
  21491. uint32_t descriptorSetCount;
  21492. const uint32_t* pDescriptorCounts;
  21493. };
  21494. static_assert( sizeof( DescriptorSetVariableDescriptorCountAllocateInfoEXT ) == sizeof( VkDescriptorSetVariableDescriptorCountAllocateInfoEXT ), "struct and wrapper have different size!" );
  21495. struct DescriptorSetVariableDescriptorCountLayoutSupportEXT
  21496. {
  21497. operator VkDescriptorSetVariableDescriptorCountLayoutSupportEXT const&() const
  21498. {
  21499. return *reinterpret_cast<const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT*>( this );
  21500. }
  21501. operator VkDescriptorSetVariableDescriptorCountLayoutSupportEXT &()
  21502. {
  21503. return *reinterpret_cast<VkDescriptorSetVariableDescriptorCountLayoutSupportEXT*>( this );
  21504. }
  21505. bool operator==( DescriptorSetVariableDescriptorCountLayoutSupportEXT const& rhs ) const
  21506. {
  21507. return ( sType == rhs.sType )
  21508. && ( pNext == rhs.pNext )
  21509. && ( maxVariableDescriptorCount == rhs.maxVariableDescriptorCount );
  21510. }
  21511. bool operator!=( DescriptorSetVariableDescriptorCountLayoutSupportEXT const& rhs ) const
  21512. {
  21513. return !operator==( rhs );
  21514. }
  21515. private:
  21516. StructureType sType = StructureType::eDescriptorSetVariableDescriptorCountLayoutSupportEXT;
  21517. public:
  21518. void* pNext = nullptr;
  21519. uint32_t maxVariableDescriptorCount;
  21520. };
  21521. static_assert( sizeof( DescriptorSetVariableDescriptorCountLayoutSupportEXT ) == sizeof( VkDescriptorSetVariableDescriptorCountLayoutSupportEXT ), "struct and wrapper have different size!" );
  21522. struct DescriptorUpdateTemplateEntry
  21523. {
  21524. DescriptorUpdateTemplateEntry( uint32_t dstBinding_ = 0,
  21525. uint32_t dstArrayElement_ = 0,
  21526. uint32_t descriptorCount_ = 0,
  21527. DescriptorType descriptorType_ = DescriptorType::eSampler,
  21528. size_t offset_ = 0,
  21529. size_t stride_ = 0 )
  21530. : dstBinding( dstBinding_ )
  21531. , dstArrayElement( dstArrayElement_ )
  21532. , descriptorCount( descriptorCount_ )
  21533. , descriptorType( descriptorType_ )
  21534. , offset( offset_ )
  21535. , stride( stride_ )
  21536. {}
  21537. DescriptorUpdateTemplateEntry( VkDescriptorUpdateTemplateEntry const & rhs )
  21538. {
  21539. *reinterpret_cast<VkDescriptorUpdateTemplateEntry*>(this) = rhs;
  21540. }
  21541. DescriptorUpdateTemplateEntry& operator=( VkDescriptorUpdateTemplateEntry const & rhs )
  21542. {
  21543. *reinterpret_cast<VkDescriptorUpdateTemplateEntry*>(this) = rhs;
  21544. return *this;
  21545. }
  21546. DescriptorUpdateTemplateEntry & setDstBinding( uint32_t dstBinding_ )
  21547. {
  21548. dstBinding = dstBinding_;
  21549. return *this;
  21550. }
  21551. DescriptorUpdateTemplateEntry & setDstArrayElement( uint32_t dstArrayElement_ )
  21552. {
  21553. dstArrayElement = dstArrayElement_;
  21554. return *this;
  21555. }
  21556. DescriptorUpdateTemplateEntry & setDescriptorCount( uint32_t descriptorCount_ )
  21557. {
  21558. descriptorCount = descriptorCount_;
  21559. return *this;
  21560. }
  21561. DescriptorUpdateTemplateEntry & setDescriptorType( DescriptorType descriptorType_ )
  21562. {
  21563. descriptorType = descriptorType_;
  21564. return *this;
  21565. }
  21566. DescriptorUpdateTemplateEntry & setOffset( size_t offset_ )
  21567. {
  21568. offset = offset_;
  21569. return *this;
  21570. }
  21571. DescriptorUpdateTemplateEntry & setStride( size_t stride_ )
  21572. {
  21573. stride = stride_;
  21574. return *this;
  21575. }
  21576. operator VkDescriptorUpdateTemplateEntry const&() const
  21577. {
  21578. return *reinterpret_cast<const VkDescriptorUpdateTemplateEntry*>( this );
  21579. }
  21580. operator VkDescriptorUpdateTemplateEntry &()
  21581. {
  21582. return *reinterpret_cast<VkDescriptorUpdateTemplateEntry*>( this );
  21583. }
  21584. bool operator==( DescriptorUpdateTemplateEntry const& rhs ) const
  21585. {
  21586. return ( dstBinding == rhs.dstBinding )
  21587. && ( dstArrayElement == rhs.dstArrayElement )
  21588. && ( descriptorCount == rhs.descriptorCount )
  21589. && ( descriptorType == rhs.descriptorType )
  21590. && ( offset == rhs.offset )
  21591. && ( stride == rhs.stride );
  21592. }
  21593. bool operator!=( DescriptorUpdateTemplateEntry const& rhs ) const
  21594. {
  21595. return !operator==( rhs );
  21596. }
  21597. uint32_t dstBinding;
  21598. uint32_t dstArrayElement;
  21599. uint32_t descriptorCount;
  21600. DescriptorType descriptorType;
  21601. size_t offset;
  21602. size_t stride;
  21603. };
  21604. static_assert( sizeof( DescriptorUpdateTemplateEntry ) == sizeof( VkDescriptorUpdateTemplateEntry ), "struct and wrapper have different size!" );
  21605. struct DescriptorUpdateTemplateCreateInfo
  21606. {
  21607. DescriptorUpdateTemplateCreateInfo( DescriptorUpdateTemplateCreateFlags flags_ = DescriptorUpdateTemplateCreateFlags(),
  21608. uint32_t descriptorUpdateEntryCount_ = 0,
  21609. const DescriptorUpdateTemplateEntry* pDescriptorUpdateEntries_ = nullptr,
  21610. DescriptorUpdateTemplateType templateType_ = DescriptorUpdateTemplateType::eDescriptorSet,
  21611. DescriptorSetLayout descriptorSetLayout_ = DescriptorSetLayout(),
  21612. PipelineBindPoint pipelineBindPoint_ = PipelineBindPoint::eGraphics,
  21613. PipelineLayout pipelineLayout_ = PipelineLayout(),
  21614. uint32_t set_ = 0 )
  21615. : flags( flags_ )
  21616. , descriptorUpdateEntryCount( descriptorUpdateEntryCount_ )
  21617. , pDescriptorUpdateEntries( pDescriptorUpdateEntries_ )
  21618. , templateType( templateType_ )
  21619. , descriptorSetLayout( descriptorSetLayout_ )
  21620. , pipelineBindPoint( pipelineBindPoint_ )
  21621. , pipelineLayout( pipelineLayout_ )
  21622. , set( set_ )
  21623. {}
  21624. DescriptorUpdateTemplateCreateInfo( VkDescriptorUpdateTemplateCreateInfo const & rhs )
  21625. {
  21626. *reinterpret_cast<VkDescriptorUpdateTemplateCreateInfo*>(this) = rhs;
  21627. }
  21628. DescriptorUpdateTemplateCreateInfo& operator=( VkDescriptorUpdateTemplateCreateInfo const & rhs )
  21629. {
  21630. *reinterpret_cast<VkDescriptorUpdateTemplateCreateInfo*>(this) = rhs;
  21631. return *this;
  21632. }
  21633. DescriptorUpdateTemplateCreateInfo & setPNext( const void* pNext_ )
  21634. {
  21635. pNext = pNext_;
  21636. return *this;
  21637. }
  21638. DescriptorUpdateTemplateCreateInfo & setFlags( DescriptorUpdateTemplateCreateFlags flags_ )
  21639. {
  21640. flags = flags_;
  21641. return *this;
  21642. }
  21643. DescriptorUpdateTemplateCreateInfo & setDescriptorUpdateEntryCount( uint32_t descriptorUpdateEntryCount_ )
  21644. {
  21645. descriptorUpdateEntryCount = descriptorUpdateEntryCount_;
  21646. return *this;
  21647. }
  21648. DescriptorUpdateTemplateCreateInfo & setPDescriptorUpdateEntries( const DescriptorUpdateTemplateEntry* pDescriptorUpdateEntries_ )
  21649. {
  21650. pDescriptorUpdateEntries = pDescriptorUpdateEntries_;
  21651. return *this;
  21652. }
  21653. DescriptorUpdateTemplateCreateInfo & setTemplateType( DescriptorUpdateTemplateType templateType_ )
  21654. {
  21655. templateType = templateType_;
  21656. return *this;
  21657. }
  21658. DescriptorUpdateTemplateCreateInfo & setDescriptorSetLayout( DescriptorSetLayout descriptorSetLayout_ )
  21659. {
  21660. descriptorSetLayout = descriptorSetLayout_;
  21661. return *this;
  21662. }
  21663. DescriptorUpdateTemplateCreateInfo & setPipelineBindPoint( PipelineBindPoint pipelineBindPoint_ )
  21664. {
  21665. pipelineBindPoint = pipelineBindPoint_;
  21666. return *this;
  21667. }
  21668. DescriptorUpdateTemplateCreateInfo & setPipelineLayout( PipelineLayout pipelineLayout_ )
  21669. {
  21670. pipelineLayout = pipelineLayout_;
  21671. return *this;
  21672. }
  21673. DescriptorUpdateTemplateCreateInfo & setSet( uint32_t set_ )
  21674. {
  21675. set = set_;
  21676. return *this;
  21677. }
  21678. operator VkDescriptorUpdateTemplateCreateInfo const&() const
  21679. {
  21680. return *reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo*>( this );
  21681. }
  21682. operator VkDescriptorUpdateTemplateCreateInfo &()
  21683. {
  21684. return *reinterpret_cast<VkDescriptorUpdateTemplateCreateInfo*>( this );
  21685. }
  21686. bool operator==( DescriptorUpdateTemplateCreateInfo const& rhs ) const
  21687. {
  21688. return ( sType == rhs.sType )
  21689. && ( pNext == rhs.pNext )
  21690. && ( flags == rhs.flags )
  21691. && ( descriptorUpdateEntryCount == rhs.descriptorUpdateEntryCount )
  21692. && ( pDescriptorUpdateEntries == rhs.pDescriptorUpdateEntries )
  21693. && ( templateType == rhs.templateType )
  21694. && ( descriptorSetLayout == rhs.descriptorSetLayout )
  21695. && ( pipelineBindPoint == rhs.pipelineBindPoint )
  21696. && ( pipelineLayout == rhs.pipelineLayout )
  21697. && ( set == rhs.set );
  21698. }
  21699. bool operator!=( DescriptorUpdateTemplateCreateInfo const& rhs ) const
  21700. {
  21701. return !operator==( rhs );
  21702. }
  21703. private:
  21704. StructureType sType = StructureType::eDescriptorUpdateTemplateCreateInfo;
  21705. public:
  21706. const void* pNext = nullptr;
  21707. DescriptorUpdateTemplateCreateFlags flags;
  21708. uint32_t descriptorUpdateEntryCount;
  21709. const DescriptorUpdateTemplateEntry* pDescriptorUpdateEntries;
  21710. DescriptorUpdateTemplateType templateType;
  21711. DescriptorSetLayout descriptorSetLayout;
  21712. PipelineBindPoint pipelineBindPoint;
  21713. PipelineLayout pipelineLayout;
  21714. uint32_t set;
  21715. };
  21716. static_assert( sizeof( DescriptorUpdateTemplateCreateInfo ) == sizeof( VkDescriptorUpdateTemplateCreateInfo ), "struct and wrapper have different size!" );
  21717. struct DeviceQueueCreateInfo
  21718. {
  21719. DeviceQueueCreateInfo( DeviceQueueCreateFlags flags_ = DeviceQueueCreateFlags(),
  21720. uint32_t queueFamilyIndex_ = 0,
  21721. uint32_t queueCount_ = 0,
  21722. const float* pQueuePriorities_ = nullptr )
  21723. : flags( flags_ )
  21724. , queueFamilyIndex( queueFamilyIndex_ )
  21725. , queueCount( queueCount_ )
  21726. , pQueuePriorities( pQueuePriorities_ )
  21727. {}
  21728. DeviceQueueCreateInfo( VkDeviceQueueCreateInfo const & rhs )
  21729. {
  21730. *reinterpret_cast<VkDeviceQueueCreateInfo*>(this) = rhs;
  21731. }
  21732. DeviceQueueCreateInfo& operator=( VkDeviceQueueCreateInfo const & rhs )
  21733. {
  21734. *reinterpret_cast<VkDeviceQueueCreateInfo*>(this) = rhs;
  21735. return *this;
  21736. }
  21737. DeviceQueueCreateInfo & setPNext( const void* pNext_ )
  21738. {
  21739. pNext = pNext_;
  21740. return *this;
  21741. }
  21742. DeviceQueueCreateInfo & setFlags( DeviceQueueCreateFlags flags_ )
  21743. {
  21744. flags = flags_;
  21745. return *this;
  21746. }
  21747. DeviceQueueCreateInfo & setQueueFamilyIndex( uint32_t queueFamilyIndex_ )
  21748. {
  21749. queueFamilyIndex = queueFamilyIndex_;
  21750. return *this;
  21751. }
  21752. DeviceQueueCreateInfo & setQueueCount( uint32_t queueCount_ )
  21753. {
  21754. queueCount = queueCount_;
  21755. return *this;
  21756. }
  21757. DeviceQueueCreateInfo & setPQueuePriorities( const float* pQueuePriorities_ )
  21758. {
  21759. pQueuePriorities = pQueuePriorities_;
  21760. return *this;
  21761. }
  21762. operator VkDeviceQueueCreateInfo const&() const
  21763. {
  21764. return *reinterpret_cast<const VkDeviceQueueCreateInfo*>( this );
  21765. }
  21766. operator VkDeviceQueueCreateInfo &()
  21767. {
  21768. return *reinterpret_cast<VkDeviceQueueCreateInfo*>( this );
  21769. }
  21770. bool operator==( DeviceQueueCreateInfo const& rhs ) const
  21771. {
  21772. return ( sType == rhs.sType )
  21773. && ( pNext == rhs.pNext )
  21774. && ( flags == rhs.flags )
  21775. && ( queueFamilyIndex == rhs.queueFamilyIndex )
  21776. && ( queueCount == rhs.queueCount )
  21777. && ( pQueuePriorities == rhs.pQueuePriorities );
  21778. }
  21779. bool operator!=( DeviceQueueCreateInfo const& rhs ) const
  21780. {
  21781. return !operator==( rhs );
  21782. }
  21783. private:
  21784. StructureType sType = StructureType::eDeviceQueueCreateInfo;
  21785. public:
  21786. const void* pNext = nullptr;
  21787. DeviceQueueCreateFlags flags;
  21788. uint32_t queueFamilyIndex;
  21789. uint32_t queueCount;
  21790. const float* pQueuePriorities;
  21791. };
  21792. static_assert( sizeof( DeviceQueueCreateInfo ) == sizeof( VkDeviceQueueCreateInfo ), "struct and wrapper have different size!" );
  21793. struct PhysicalDeviceFeatures
  21794. {
  21795. PhysicalDeviceFeatures( Bool32 robustBufferAccess_ = 0,
  21796. Bool32 fullDrawIndexUint32_ = 0,
  21797. Bool32 imageCubeArray_ = 0,
  21798. Bool32 independentBlend_ = 0,
  21799. Bool32 geometryShader_ = 0,
  21800. Bool32 tessellationShader_ = 0,
  21801. Bool32 sampleRateShading_ = 0,
  21802. Bool32 dualSrcBlend_ = 0,
  21803. Bool32 logicOp_ = 0,
  21804. Bool32 multiDrawIndirect_ = 0,
  21805. Bool32 drawIndirectFirstInstance_ = 0,
  21806. Bool32 depthClamp_ = 0,
  21807. Bool32 depthBiasClamp_ = 0,
  21808. Bool32 fillModeNonSolid_ = 0,
  21809. Bool32 depthBounds_ = 0,
  21810. Bool32 wideLines_ = 0,
  21811. Bool32 largePoints_ = 0,
  21812. Bool32 alphaToOne_ = 0,
  21813. Bool32 multiViewport_ = 0,
  21814. Bool32 samplerAnisotropy_ = 0,
  21815. Bool32 textureCompressionETC2_ = 0,
  21816. Bool32 textureCompressionASTC_LDR_ = 0,
  21817. Bool32 textureCompressionBC_ = 0,
  21818. Bool32 occlusionQueryPrecise_ = 0,
  21819. Bool32 pipelineStatisticsQuery_ = 0,
  21820. Bool32 vertexPipelineStoresAndAtomics_ = 0,
  21821. Bool32 fragmentStoresAndAtomics_ = 0,
  21822. Bool32 shaderTessellationAndGeometryPointSize_ = 0,
  21823. Bool32 shaderImageGatherExtended_ = 0,
  21824. Bool32 shaderStorageImageExtendedFormats_ = 0,
  21825. Bool32 shaderStorageImageMultisample_ = 0,
  21826. Bool32 shaderStorageImageReadWithoutFormat_ = 0,
  21827. Bool32 shaderStorageImageWriteWithoutFormat_ = 0,
  21828. Bool32 shaderUniformBufferArrayDynamicIndexing_ = 0,
  21829. Bool32 shaderSampledImageArrayDynamicIndexing_ = 0,
  21830. Bool32 shaderStorageBufferArrayDynamicIndexing_ = 0,
  21831. Bool32 shaderStorageImageArrayDynamicIndexing_ = 0,
  21832. Bool32 shaderClipDistance_ = 0,
  21833. Bool32 shaderCullDistance_ = 0,
  21834. Bool32 shaderFloat64_ = 0,
  21835. Bool32 shaderInt64_ = 0,
  21836. Bool32 shaderInt16_ = 0,
  21837. Bool32 shaderResourceResidency_ = 0,
  21838. Bool32 shaderResourceMinLod_ = 0,
  21839. Bool32 sparseBinding_ = 0,
  21840. Bool32 sparseResidencyBuffer_ = 0,
  21841. Bool32 sparseResidencyImage2D_ = 0,
  21842. Bool32 sparseResidencyImage3D_ = 0,
  21843. Bool32 sparseResidency2Samples_ = 0,
  21844. Bool32 sparseResidency4Samples_ = 0,
  21845. Bool32 sparseResidency8Samples_ = 0,
  21846. Bool32 sparseResidency16Samples_ = 0,
  21847. Bool32 sparseResidencyAliased_ = 0,
  21848. Bool32 variableMultisampleRate_ = 0,
  21849. Bool32 inheritedQueries_ = 0 )
  21850. : robustBufferAccess( robustBufferAccess_ )
  21851. , fullDrawIndexUint32( fullDrawIndexUint32_ )
  21852. , imageCubeArray( imageCubeArray_ )
  21853. , independentBlend( independentBlend_ )
  21854. , geometryShader( geometryShader_ )
  21855. , tessellationShader( tessellationShader_ )
  21856. , sampleRateShading( sampleRateShading_ )
  21857. , dualSrcBlend( dualSrcBlend_ )
  21858. , logicOp( logicOp_ )
  21859. , multiDrawIndirect( multiDrawIndirect_ )
  21860. , drawIndirectFirstInstance( drawIndirectFirstInstance_ )
  21861. , depthClamp( depthClamp_ )
  21862. , depthBiasClamp( depthBiasClamp_ )
  21863. , fillModeNonSolid( fillModeNonSolid_ )
  21864. , depthBounds( depthBounds_ )
  21865. , wideLines( wideLines_ )
  21866. , largePoints( largePoints_ )
  21867. , alphaToOne( alphaToOne_ )
  21868. , multiViewport( multiViewport_ )
  21869. , samplerAnisotropy( samplerAnisotropy_ )
  21870. , textureCompressionETC2( textureCompressionETC2_ )
  21871. , textureCompressionASTC_LDR( textureCompressionASTC_LDR_ )
  21872. , textureCompressionBC( textureCompressionBC_ )
  21873. , occlusionQueryPrecise( occlusionQueryPrecise_ )
  21874. , pipelineStatisticsQuery( pipelineStatisticsQuery_ )
  21875. , vertexPipelineStoresAndAtomics( vertexPipelineStoresAndAtomics_ )
  21876. , fragmentStoresAndAtomics( fragmentStoresAndAtomics_ )
  21877. , shaderTessellationAndGeometryPointSize( shaderTessellationAndGeometryPointSize_ )
  21878. , shaderImageGatherExtended( shaderImageGatherExtended_ )
  21879. , shaderStorageImageExtendedFormats( shaderStorageImageExtendedFormats_ )
  21880. , shaderStorageImageMultisample( shaderStorageImageMultisample_ )
  21881. , shaderStorageImageReadWithoutFormat( shaderStorageImageReadWithoutFormat_ )
  21882. , shaderStorageImageWriteWithoutFormat( shaderStorageImageWriteWithoutFormat_ )
  21883. , shaderUniformBufferArrayDynamicIndexing( shaderUniformBufferArrayDynamicIndexing_ )
  21884. , shaderSampledImageArrayDynamicIndexing( shaderSampledImageArrayDynamicIndexing_ )
  21885. , shaderStorageBufferArrayDynamicIndexing( shaderStorageBufferArrayDynamicIndexing_ )
  21886. , shaderStorageImageArrayDynamicIndexing( shaderStorageImageArrayDynamicIndexing_ )
  21887. , shaderClipDistance( shaderClipDistance_ )
  21888. , shaderCullDistance( shaderCullDistance_ )
  21889. , shaderFloat64( shaderFloat64_ )
  21890. , shaderInt64( shaderInt64_ )
  21891. , shaderInt16( shaderInt16_ )
  21892. , shaderResourceResidency( shaderResourceResidency_ )
  21893. , shaderResourceMinLod( shaderResourceMinLod_ )
  21894. , sparseBinding( sparseBinding_ )
  21895. , sparseResidencyBuffer( sparseResidencyBuffer_ )
  21896. , sparseResidencyImage2D( sparseResidencyImage2D_ )
  21897. , sparseResidencyImage3D( sparseResidencyImage3D_ )
  21898. , sparseResidency2Samples( sparseResidency2Samples_ )
  21899. , sparseResidency4Samples( sparseResidency4Samples_ )
  21900. , sparseResidency8Samples( sparseResidency8Samples_ )
  21901. , sparseResidency16Samples( sparseResidency16Samples_ )
  21902. , sparseResidencyAliased( sparseResidencyAliased_ )
  21903. , variableMultisampleRate( variableMultisampleRate_ )
  21904. , inheritedQueries( inheritedQueries_ )
  21905. {}
  21906. PhysicalDeviceFeatures( VkPhysicalDeviceFeatures const & rhs )
  21907. {
  21908. *reinterpret_cast<VkPhysicalDeviceFeatures*>(this) = rhs;
  21909. }
  21910. PhysicalDeviceFeatures& operator=( VkPhysicalDeviceFeatures const & rhs )
  21911. {
  21912. *reinterpret_cast<VkPhysicalDeviceFeatures*>(this) = rhs;
  21913. return *this;
  21914. }
  21915. PhysicalDeviceFeatures & setRobustBufferAccess( Bool32 robustBufferAccess_ )
  21916. {
  21917. robustBufferAccess = robustBufferAccess_;
  21918. return *this;
  21919. }
  21920. PhysicalDeviceFeatures & setFullDrawIndexUint32( Bool32 fullDrawIndexUint32_ )
  21921. {
  21922. fullDrawIndexUint32 = fullDrawIndexUint32_;
  21923. return *this;
  21924. }
  21925. PhysicalDeviceFeatures & setImageCubeArray( Bool32 imageCubeArray_ )
  21926. {
  21927. imageCubeArray = imageCubeArray_;
  21928. return *this;
  21929. }
  21930. PhysicalDeviceFeatures & setIndependentBlend( Bool32 independentBlend_ )
  21931. {
  21932. independentBlend = independentBlend_;
  21933. return *this;
  21934. }
  21935. PhysicalDeviceFeatures & setGeometryShader( Bool32 geometryShader_ )
  21936. {
  21937. geometryShader = geometryShader_;
  21938. return *this;
  21939. }
  21940. PhysicalDeviceFeatures & setTessellationShader( Bool32 tessellationShader_ )
  21941. {
  21942. tessellationShader = tessellationShader_;
  21943. return *this;
  21944. }
  21945. PhysicalDeviceFeatures & setSampleRateShading( Bool32 sampleRateShading_ )
  21946. {
  21947. sampleRateShading = sampleRateShading_;
  21948. return *this;
  21949. }
  21950. PhysicalDeviceFeatures & setDualSrcBlend( Bool32 dualSrcBlend_ )
  21951. {
  21952. dualSrcBlend = dualSrcBlend_;
  21953. return *this;
  21954. }
  21955. PhysicalDeviceFeatures & setLogicOp( Bool32 logicOp_ )
  21956. {
  21957. logicOp = logicOp_;
  21958. return *this;
  21959. }
  21960. PhysicalDeviceFeatures & setMultiDrawIndirect( Bool32 multiDrawIndirect_ )
  21961. {
  21962. multiDrawIndirect = multiDrawIndirect_;
  21963. return *this;
  21964. }
  21965. PhysicalDeviceFeatures & setDrawIndirectFirstInstance( Bool32 drawIndirectFirstInstance_ )
  21966. {
  21967. drawIndirectFirstInstance = drawIndirectFirstInstance_;
  21968. return *this;
  21969. }
  21970. PhysicalDeviceFeatures & setDepthClamp( Bool32 depthClamp_ )
  21971. {
  21972. depthClamp = depthClamp_;
  21973. return *this;
  21974. }
  21975. PhysicalDeviceFeatures & setDepthBiasClamp( Bool32 depthBiasClamp_ )
  21976. {
  21977. depthBiasClamp = depthBiasClamp_;
  21978. return *this;
  21979. }
  21980. PhysicalDeviceFeatures & setFillModeNonSolid( Bool32 fillModeNonSolid_ )
  21981. {
  21982. fillModeNonSolid = fillModeNonSolid_;
  21983. return *this;
  21984. }
  21985. PhysicalDeviceFeatures & setDepthBounds( Bool32 depthBounds_ )
  21986. {
  21987. depthBounds = depthBounds_;
  21988. return *this;
  21989. }
  21990. PhysicalDeviceFeatures & setWideLines( Bool32 wideLines_ )
  21991. {
  21992. wideLines = wideLines_;
  21993. return *this;
  21994. }
  21995. PhysicalDeviceFeatures & setLargePoints( Bool32 largePoints_ )
  21996. {
  21997. largePoints = largePoints_;
  21998. return *this;
  21999. }
  22000. PhysicalDeviceFeatures & setAlphaToOne( Bool32 alphaToOne_ )
  22001. {
  22002. alphaToOne = alphaToOne_;
  22003. return *this;
  22004. }
  22005. PhysicalDeviceFeatures & setMultiViewport( Bool32 multiViewport_ )
  22006. {
  22007. multiViewport = multiViewport_;
  22008. return *this;
  22009. }
  22010. PhysicalDeviceFeatures & setSamplerAnisotropy( Bool32 samplerAnisotropy_ )
  22011. {
  22012. samplerAnisotropy = samplerAnisotropy_;
  22013. return *this;
  22014. }
  22015. PhysicalDeviceFeatures & setTextureCompressionETC2( Bool32 textureCompressionETC2_ )
  22016. {
  22017. textureCompressionETC2 = textureCompressionETC2_;
  22018. return *this;
  22019. }
  22020. PhysicalDeviceFeatures & setTextureCompressionASTC_LDR( Bool32 textureCompressionASTC_LDR_ )
  22021. {
  22022. textureCompressionASTC_LDR = textureCompressionASTC_LDR_;
  22023. return *this;
  22024. }
  22025. PhysicalDeviceFeatures & setTextureCompressionBC( Bool32 textureCompressionBC_ )
  22026. {
  22027. textureCompressionBC = textureCompressionBC_;
  22028. return *this;
  22029. }
  22030. PhysicalDeviceFeatures & setOcclusionQueryPrecise( Bool32 occlusionQueryPrecise_ )
  22031. {
  22032. occlusionQueryPrecise = occlusionQueryPrecise_;
  22033. return *this;
  22034. }
  22035. PhysicalDeviceFeatures & setPipelineStatisticsQuery( Bool32 pipelineStatisticsQuery_ )
  22036. {
  22037. pipelineStatisticsQuery = pipelineStatisticsQuery_;
  22038. return *this;
  22039. }
  22040. PhysicalDeviceFeatures & setVertexPipelineStoresAndAtomics( Bool32 vertexPipelineStoresAndAtomics_ )
  22041. {
  22042. vertexPipelineStoresAndAtomics = vertexPipelineStoresAndAtomics_;
  22043. return *this;
  22044. }
  22045. PhysicalDeviceFeatures & setFragmentStoresAndAtomics( Bool32 fragmentStoresAndAtomics_ )
  22046. {
  22047. fragmentStoresAndAtomics = fragmentStoresAndAtomics_;
  22048. return *this;
  22049. }
  22050. PhysicalDeviceFeatures & setShaderTessellationAndGeometryPointSize( Bool32 shaderTessellationAndGeometryPointSize_ )
  22051. {
  22052. shaderTessellationAndGeometryPointSize = shaderTessellationAndGeometryPointSize_;
  22053. return *this;
  22054. }
  22055. PhysicalDeviceFeatures & setShaderImageGatherExtended( Bool32 shaderImageGatherExtended_ )
  22056. {
  22057. shaderImageGatherExtended = shaderImageGatherExtended_;
  22058. return *this;
  22059. }
  22060. PhysicalDeviceFeatures & setShaderStorageImageExtendedFormats( Bool32 shaderStorageImageExtendedFormats_ )
  22061. {
  22062. shaderStorageImageExtendedFormats = shaderStorageImageExtendedFormats_;
  22063. return *this;
  22064. }
  22065. PhysicalDeviceFeatures & setShaderStorageImageMultisample( Bool32 shaderStorageImageMultisample_ )
  22066. {
  22067. shaderStorageImageMultisample = shaderStorageImageMultisample_;
  22068. return *this;
  22069. }
  22070. PhysicalDeviceFeatures & setShaderStorageImageReadWithoutFormat( Bool32 shaderStorageImageReadWithoutFormat_ )
  22071. {
  22072. shaderStorageImageReadWithoutFormat = shaderStorageImageReadWithoutFormat_;
  22073. return *this;
  22074. }
  22075. PhysicalDeviceFeatures & setShaderStorageImageWriteWithoutFormat( Bool32 shaderStorageImageWriteWithoutFormat_ )
  22076. {
  22077. shaderStorageImageWriteWithoutFormat = shaderStorageImageWriteWithoutFormat_;
  22078. return *this;
  22079. }
  22080. PhysicalDeviceFeatures & setShaderUniformBufferArrayDynamicIndexing( Bool32 shaderUniformBufferArrayDynamicIndexing_ )
  22081. {
  22082. shaderUniformBufferArrayDynamicIndexing = shaderUniformBufferArrayDynamicIndexing_;
  22083. return *this;
  22084. }
  22085. PhysicalDeviceFeatures & setShaderSampledImageArrayDynamicIndexing( Bool32 shaderSampledImageArrayDynamicIndexing_ )
  22086. {
  22087. shaderSampledImageArrayDynamicIndexing = shaderSampledImageArrayDynamicIndexing_;
  22088. return *this;
  22089. }
  22090. PhysicalDeviceFeatures & setShaderStorageBufferArrayDynamicIndexing( Bool32 shaderStorageBufferArrayDynamicIndexing_ )
  22091. {
  22092. shaderStorageBufferArrayDynamicIndexing = shaderStorageBufferArrayDynamicIndexing_;
  22093. return *this;
  22094. }
  22095. PhysicalDeviceFeatures & setShaderStorageImageArrayDynamicIndexing( Bool32 shaderStorageImageArrayDynamicIndexing_ )
  22096. {
  22097. shaderStorageImageArrayDynamicIndexing = shaderStorageImageArrayDynamicIndexing_;
  22098. return *this;
  22099. }
  22100. PhysicalDeviceFeatures & setShaderClipDistance( Bool32 shaderClipDistance_ )
  22101. {
  22102. shaderClipDistance = shaderClipDistance_;
  22103. return *this;
  22104. }
  22105. PhysicalDeviceFeatures & setShaderCullDistance( Bool32 shaderCullDistance_ )
  22106. {
  22107. shaderCullDistance = shaderCullDistance_;
  22108. return *this;
  22109. }
  22110. PhysicalDeviceFeatures & setShaderFloat64( Bool32 shaderFloat64_ )
  22111. {
  22112. shaderFloat64 = shaderFloat64_;
  22113. return *this;
  22114. }
  22115. PhysicalDeviceFeatures & setShaderInt64( Bool32 shaderInt64_ )
  22116. {
  22117. shaderInt64 = shaderInt64_;
  22118. return *this;
  22119. }
  22120. PhysicalDeviceFeatures & setShaderInt16( Bool32 shaderInt16_ )
  22121. {
  22122. shaderInt16 = shaderInt16_;
  22123. return *this;
  22124. }
  22125. PhysicalDeviceFeatures & setShaderResourceResidency( Bool32 shaderResourceResidency_ )
  22126. {
  22127. shaderResourceResidency = shaderResourceResidency_;
  22128. return *this;
  22129. }
  22130. PhysicalDeviceFeatures & setShaderResourceMinLod( Bool32 shaderResourceMinLod_ )
  22131. {
  22132. shaderResourceMinLod = shaderResourceMinLod_;
  22133. return *this;
  22134. }
  22135. PhysicalDeviceFeatures & setSparseBinding( Bool32 sparseBinding_ )
  22136. {
  22137. sparseBinding = sparseBinding_;
  22138. return *this;
  22139. }
  22140. PhysicalDeviceFeatures & setSparseResidencyBuffer( Bool32 sparseResidencyBuffer_ )
  22141. {
  22142. sparseResidencyBuffer = sparseResidencyBuffer_;
  22143. return *this;
  22144. }
  22145. PhysicalDeviceFeatures & setSparseResidencyImage2D( Bool32 sparseResidencyImage2D_ )
  22146. {
  22147. sparseResidencyImage2D = sparseResidencyImage2D_;
  22148. return *this;
  22149. }
  22150. PhysicalDeviceFeatures & setSparseResidencyImage3D( Bool32 sparseResidencyImage3D_ )
  22151. {
  22152. sparseResidencyImage3D = sparseResidencyImage3D_;
  22153. return *this;
  22154. }
  22155. PhysicalDeviceFeatures & setSparseResidency2Samples( Bool32 sparseResidency2Samples_ )
  22156. {
  22157. sparseResidency2Samples = sparseResidency2Samples_;
  22158. return *this;
  22159. }
  22160. PhysicalDeviceFeatures & setSparseResidency4Samples( Bool32 sparseResidency4Samples_ )
  22161. {
  22162. sparseResidency4Samples = sparseResidency4Samples_;
  22163. return *this;
  22164. }
  22165. PhysicalDeviceFeatures & setSparseResidency8Samples( Bool32 sparseResidency8Samples_ )
  22166. {
  22167. sparseResidency8Samples = sparseResidency8Samples_;
  22168. return *this;
  22169. }
  22170. PhysicalDeviceFeatures & setSparseResidency16Samples( Bool32 sparseResidency16Samples_ )
  22171. {
  22172. sparseResidency16Samples = sparseResidency16Samples_;
  22173. return *this;
  22174. }
  22175. PhysicalDeviceFeatures & setSparseResidencyAliased( Bool32 sparseResidencyAliased_ )
  22176. {
  22177. sparseResidencyAliased = sparseResidencyAliased_;
  22178. return *this;
  22179. }
  22180. PhysicalDeviceFeatures & setVariableMultisampleRate( Bool32 variableMultisampleRate_ )
  22181. {
  22182. variableMultisampleRate = variableMultisampleRate_;
  22183. return *this;
  22184. }
  22185. PhysicalDeviceFeatures & setInheritedQueries( Bool32 inheritedQueries_ )
  22186. {
  22187. inheritedQueries = inheritedQueries_;
  22188. return *this;
  22189. }
  22190. operator VkPhysicalDeviceFeatures const&() const
  22191. {
  22192. return *reinterpret_cast<const VkPhysicalDeviceFeatures*>( this );
  22193. }
  22194. operator VkPhysicalDeviceFeatures &()
  22195. {
  22196. return *reinterpret_cast<VkPhysicalDeviceFeatures*>( this );
  22197. }
  22198. bool operator==( PhysicalDeviceFeatures const& rhs ) const
  22199. {
  22200. return ( robustBufferAccess == rhs.robustBufferAccess )
  22201. && ( fullDrawIndexUint32 == rhs.fullDrawIndexUint32 )
  22202. && ( imageCubeArray == rhs.imageCubeArray )
  22203. && ( independentBlend == rhs.independentBlend )
  22204. && ( geometryShader == rhs.geometryShader )
  22205. && ( tessellationShader == rhs.tessellationShader )
  22206. && ( sampleRateShading == rhs.sampleRateShading )
  22207. && ( dualSrcBlend == rhs.dualSrcBlend )
  22208. && ( logicOp == rhs.logicOp )
  22209. && ( multiDrawIndirect == rhs.multiDrawIndirect )
  22210. && ( drawIndirectFirstInstance == rhs.drawIndirectFirstInstance )
  22211. && ( depthClamp == rhs.depthClamp )
  22212. && ( depthBiasClamp == rhs.depthBiasClamp )
  22213. && ( fillModeNonSolid == rhs.fillModeNonSolid )
  22214. && ( depthBounds == rhs.depthBounds )
  22215. && ( wideLines == rhs.wideLines )
  22216. && ( largePoints == rhs.largePoints )
  22217. && ( alphaToOne == rhs.alphaToOne )
  22218. && ( multiViewport == rhs.multiViewport )
  22219. && ( samplerAnisotropy == rhs.samplerAnisotropy )
  22220. && ( textureCompressionETC2 == rhs.textureCompressionETC2 )
  22221. && ( textureCompressionASTC_LDR == rhs.textureCompressionASTC_LDR )
  22222. && ( textureCompressionBC == rhs.textureCompressionBC )
  22223. && ( occlusionQueryPrecise == rhs.occlusionQueryPrecise )
  22224. && ( pipelineStatisticsQuery == rhs.pipelineStatisticsQuery )
  22225. && ( vertexPipelineStoresAndAtomics == rhs.vertexPipelineStoresAndAtomics )
  22226. && ( fragmentStoresAndAtomics == rhs.fragmentStoresAndAtomics )
  22227. && ( shaderTessellationAndGeometryPointSize == rhs.shaderTessellationAndGeometryPointSize )
  22228. && ( shaderImageGatherExtended == rhs.shaderImageGatherExtended )
  22229. && ( shaderStorageImageExtendedFormats == rhs.shaderStorageImageExtendedFormats )
  22230. && ( shaderStorageImageMultisample == rhs.shaderStorageImageMultisample )
  22231. && ( shaderStorageImageReadWithoutFormat == rhs.shaderStorageImageReadWithoutFormat )
  22232. && ( shaderStorageImageWriteWithoutFormat == rhs.shaderStorageImageWriteWithoutFormat )
  22233. && ( shaderUniformBufferArrayDynamicIndexing == rhs.shaderUniformBufferArrayDynamicIndexing )
  22234. && ( shaderSampledImageArrayDynamicIndexing == rhs.shaderSampledImageArrayDynamicIndexing )
  22235. && ( shaderStorageBufferArrayDynamicIndexing == rhs.shaderStorageBufferArrayDynamicIndexing )
  22236. && ( shaderStorageImageArrayDynamicIndexing == rhs.shaderStorageImageArrayDynamicIndexing )
  22237. && ( shaderClipDistance == rhs.shaderClipDistance )
  22238. && ( shaderCullDistance == rhs.shaderCullDistance )
  22239. && ( shaderFloat64 == rhs.shaderFloat64 )
  22240. && ( shaderInt64 == rhs.shaderInt64 )
  22241. && ( shaderInt16 == rhs.shaderInt16 )
  22242. && ( shaderResourceResidency == rhs.shaderResourceResidency )
  22243. && ( shaderResourceMinLod == rhs.shaderResourceMinLod )
  22244. && ( sparseBinding == rhs.sparseBinding )
  22245. && ( sparseResidencyBuffer == rhs.sparseResidencyBuffer )
  22246. && ( sparseResidencyImage2D == rhs.sparseResidencyImage2D )
  22247. && ( sparseResidencyImage3D == rhs.sparseResidencyImage3D )
  22248. && ( sparseResidency2Samples == rhs.sparseResidency2Samples )
  22249. && ( sparseResidency4Samples == rhs.sparseResidency4Samples )
  22250. && ( sparseResidency8Samples == rhs.sparseResidency8Samples )
  22251. && ( sparseResidency16Samples == rhs.sparseResidency16Samples )
  22252. && ( sparseResidencyAliased == rhs.sparseResidencyAliased )
  22253. && ( variableMultisampleRate == rhs.variableMultisampleRate )
  22254. && ( inheritedQueries == rhs.inheritedQueries );
  22255. }
  22256. bool operator!=( PhysicalDeviceFeatures const& rhs ) const
  22257. {
  22258. return !operator==( rhs );
  22259. }
  22260. Bool32 robustBufferAccess;
  22261. Bool32 fullDrawIndexUint32;
  22262. Bool32 imageCubeArray;
  22263. Bool32 independentBlend;
  22264. Bool32 geometryShader;
  22265. Bool32 tessellationShader;
  22266. Bool32 sampleRateShading;
  22267. Bool32 dualSrcBlend;
  22268. Bool32 logicOp;
  22269. Bool32 multiDrawIndirect;
  22270. Bool32 drawIndirectFirstInstance;
  22271. Bool32 depthClamp;
  22272. Bool32 depthBiasClamp;
  22273. Bool32 fillModeNonSolid;
  22274. Bool32 depthBounds;
  22275. Bool32 wideLines;
  22276. Bool32 largePoints;
  22277. Bool32 alphaToOne;
  22278. Bool32 multiViewport;
  22279. Bool32 samplerAnisotropy;
  22280. Bool32 textureCompressionETC2;
  22281. Bool32 textureCompressionASTC_LDR;
  22282. Bool32 textureCompressionBC;
  22283. Bool32 occlusionQueryPrecise;
  22284. Bool32 pipelineStatisticsQuery;
  22285. Bool32 vertexPipelineStoresAndAtomics;
  22286. Bool32 fragmentStoresAndAtomics;
  22287. Bool32 shaderTessellationAndGeometryPointSize;
  22288. Bool32 shaderImageGatherExtended;
  22289. Bool32 shaderStorageImageExtendedFormats;
  22290. Bool32 shaderStorageImageMultisample;
  22291. Bool32 shaderStorageImageReadWithoutFormat;
  22292. Bool32 shaderStorageImageWriteWithoutFormat;
  22293. Bool32 shaderUniformBufferArrayDynamicIndexing;
  22294. Bool32 shaderSampledImageArrayDynamicIndexing;
  22295. Bool32 shaderStorageBufferArrayDynamicIndexing;
  22296. Bool32 shaderStorageImageArrayDynamicIndexing;
  22297. Bool32 shaderClipDistance;
  22298. Bool32 shaderCullDistance;
  22299. Bool32 shaderFloat64;
  22300. Bool32 shaderInt64;
  22301. Bool32 shaderInt16;
  22302. Bool32 shaderResourceResidency;
  22303. Bool32 shaderResourceMinLod;
  22304. Bool32 sparseBinding;
  22305. Bool32 sparseResidencyBuffer;
  22306. Bool32 sparseResidencyImage2D;
  22307. Bool32 sparseResidencyImage3D;
  22308. Bool32 sparseResidency2Samples;
  22309. Bool32 sparseResidency4Samples;
  22310. Bool32 sparseResidency8Samples;
  22311. Bool32 sparseResidency16Samples;
  22312. Bool32 sparseResidencyAliased;
  22313. Bool32 variableMultisampleRate;
  22314. Bool32 inheritedQueries;
  22315. };
  22316. static_assert( sizeof( PhysicalDeviceFeatures ) == sizeof( VkPhysicalDeviceFeatures ), "struct and wrapper have different size!" );
  22317. struct DeviceCreateInfo
  22318. {
  22319. DeviceCreateInfo( DeviceCreateFlags flags_ = DeviceCreateFlags(),
  22320. uint32_t queueCreateInfoCount_ = 0,
  22321. const DeviceQueueCreateInfo* pQueueCreateInfos_ = nullptr,
  22322. uint32_t enabledLayerCount_ = 0,
  22323. const char* const* ppEnabledLayerNames_ = nullptr,
  22324. uint32_t enabledExtensionCount_ = 0,
  22325. const char* const* ppEnabledExtensionNames_ = nullptr,
  22326. const PhysicalDeviceFeatures* pEnabledFeatures_ = nullptr )
  22327. : flags( flags_ )
  22328. , queueCreateInfoCount( queueCreateInfoCount_ )
  22329. , pQueueCreateInfos( pQueueCreateInfos_ )
  22330. , enabledLayerCount( enabledLayerCount_ )
  22331. , ppEnabledLayerNames( ppEnabledLayerNames_ )
  22332. , enabledExtensionCount( enabledExtensionCount_ )
  22333. , ppEnabledExtensionNames( ppEnabledExtensionNames_ )
  22334. , pEnabledFeatures( pEnabledFeatures_ )
  22335. {}
  22336. DeviceCreateInfo( VkDeviceCreateInfo const & rhs )
  22337. {
  22338. *reinterpret_cast<VkDeviceCreateInfo*>(this) = rhs;
  22339. }
  22340. DeviceCreateInfo& operator=( VkDeviceCreateInfo const & rhs )
  22341. {
  22342. *reinterpret_cast<VkDeviceCreateInfo*>(this) = rhs;
  22343. return *this;
  22344. }
  22345. DeviceCreateInfo & setPNext( const void* pNext_ )
  22346. {
  22347. pNext = pNext_;
  22348. return *this;
  22349. }
  22350. DeviceCreateInfo & setFlags( DeviceCreateFlags flags_ )
  22351. {
  22352. flags = flags_;
  22353. return *this;
  22354. }
  22355. DeviceCreateInfo & setQueueCreateInfoCount( uint32_t queueCreateInfoCount_ )
  22356. {
  22357. queueCreateInfoCount = queueCreateInfoCount_;
  22358. return *this;
  22359. }
  22360. DeviceCreateInfo & setPQueueCreateInfos( const DeviceQueueCreateInfo* pQueueCreateInfos_ )
  22361. {
  22362. pQueueCreateInfos = pQueueCreateInfos_;
  22363. return *this;
  22364. }
  22365. DeviceCreateInfo & setEnabledLayerCount( uint32_t enabledLayerCount_ )
  22366. {
  22367. enabledLayerCount = enabledLayerCount_;
  22368. return *this;
  22369. }
  22370. DeviceCreateInfo & setPpEnabledLayerNames( const char* const* ppEnabledLayerNames_ )
  22371. {
  22372. ppEnabledLayerNames = ppEnabledLayerNames_;
  22373. return *this;
  22374. }
  22375. DeviceCreateInfo & setEnabledExtensionCount( uint32_t enabledExtensionCount_ )
  22376. {
  22377. enabledExtensionCount = enabledExtensionCount_;
  22378. return *this;
  22379. }
  22380. DeviceCreateInfo & setPpEnabledExtensionNames( const char* const* ppEnabledExtensionNames_ )
  22381. {
  22382. ppEnabledExtensionNames = ppEnabledExtensionNames_;
  22383. return *this;
  22384. }
  22385. DeviceCreateInfo & setPEnabledFeatures( const PhysicalDeviceFeatures* pEnabledFeatures_ )
  22386. {
  22387. pEnabledFeatures = pEnabledFeatures_;
  22388. return *this;
  22389. }
  22390. operator VkDeviceCreateInfo const&() const
  22391. {
  22392. return *reinterpret_cast<const VkDeviceCreateInfo*>( this );
  22393. }
  22394. operator VkDeviceCreateInfo &()
  22395. {
  22396. return *reinterpret_cast<VkDeviceCreateInfo*>( this );
  22397. }
  22398. bool operator==( DeviceCreateInfo const& rhs ) const
  22399. {
  22400. return ( sType == rhs.sType )
  22401. && ( pNext == rhs.pNext )
  22402. && ( flags == rhs.flags )
  22403. && ( queueCreateInfoCount == rhs.queueCreateInfoCount )
  22404. && ( pQueueCreateInfos == rhs.pQueueCreateInfos )
  22405. && ( enabledLayerCount == rhs.enabledLayerCount )
  22406. && ( ppEnabledLayerNames == rhs.ppEnabledLayerNames )
  22407. && ( enabledExtensionCount == rhs.enabledExtensionCount )
  22408. && ( ppEnabledExtensionNames == rhs.ppEnabledExtensionNames )
  22409. && ( pEnabledFeatures == rhs.pEnabledFeatures );
  22410. }
  22411. bool operator!=( DeviceCreateInfo const& rhs ) const
  22412. {
  22413. return !operator==( rhs );
  22414. }
  22415. private:
  22416. StructureType sType = StructureType::eDeviceCreateInfo;
  22417. public:
  22418. const void* pNext = nullptr;
  22419. DeviceCreateFlags flags;
  22420. uint32_t queueCreateInfoCount;
  22421. const DeviceQueueCreateInfo* pQueueCreateInfos;
  22422. uint32_t enabledLayerCount;
  22423. const char* const* ppEnabledLayerNames;
  22424. uint32_t enabledExtensionCount;
  22425. const char* const* ppEnabledExtensionNames;
  22426. const PhysicalDeviceFeatures* pEnabledFeatures;
  22427. };
  22428. static_assert( sizeof( DeviceCreateInfo ) == sizeof( VkDeviceCreateInfo ), "struct and wrapper have different size!" );
  22429. struct DeviceEventInfoEXT
  22430. {
  22431. DeviceEventInfoEXT( DeviceEventTypeEXT deviceEvent_ = DeviceEventTypeEXT::eDisplayHotplug )
  22432. : deviceEvent( deviceEvent_ )
  22433. {}
  22434. DeviceEventInfoEXT( VkDeviceEventInfoEXT const & rhs )
  22435. {
  22436. *reinterpret_cast<VkDeviceEventInfoEXT*>(this) = rhs;
  22437. }
  22438. DeviceEventInfoEXT& operator=( VkDeviceEventInfoEXT const & rhs )
  22439. {
  22440. *reinterpret_cast<VkDeviceEventInfoEXT*>(this) = rhs;
  22441. return *this;
  22442. }
  22443. DeviceEventInfoEXT & setPNext( const void* pNext_ )
  22444. {
  22445. pNext = pNext_;
  22446. return *this;
  22447. }
  22448. DeviceEventInfoEXT & setDeviceEvent( DeviceEventTypeEXT deviceEvent_ )
  22449. {
  22450. deviceEvent = deviceEvent_;
  22451. return *this;
  22452. }
  22453. operator VkDeviceEventInfoEXT const&() const
  22454. {
  22455. return *reinterpret_cast<const VkDeviceEventInfoEXT*>( this );
  22456. }
  22457. operator VkDeviceEventInfoEXT &()
  22458. {
  22459. return *reinterpret_cast<VkDeviceEventInfoEXT*>( this );
  22460. }
  22461. bool operator==( DeviceEventInfoEXT const& rhs ) const
  22462. {
  22463. return ( sType == rhs.sType )
  22464. && ( pNext == rhs.pNext )
  22465. && ( deviceEvent == rhs.deviceEvent );
  22466. }
  22467. bool operator!=( DeviceEventInfoEXT const& rhs ) const
  22468. {
  22469. return !operator==( rhs );
  22470. }
  22471. private:
  22472. StructureType sType = StructureType::eDeviceEventInfoEXT;
  22473. public:
  22474. const void* pNext = nullptr;
  22475. DeviceEventTypeEXT deviceEvent;
  22476. };
  22477. static_assert( sizeof( DeviceEventInfoEXT ) == sizeof( VkDeviceEventInfoEXT ), "struct and wrapper have different size!" );
  22478. struct DeviceGeneratedCommandsFeaturesNVX
  22479. {
  22480. DeviceGeneratedCommandsFeaturesNVX( Bool32 computeBindingPointSupport_ = 0 )
  22481. : computeBindingPointSupport( computeBindingPointSupport_ )
  22482. {}
  22483. DeviceGeneratedCommandsFeaturesNVX( VkDeviceGeneratedCommandsFeaturesNVX const & rhs )
  22484. {
  22485. *reinterpret_cast<VkDeviceGeneratedCommandsFeaturesNVX*>(this) = rhs;
  22486. }
  22487. DeviceGeneratedCommandsFeaturesNVX& operator=( VkDeviceGeneratedCommandsFeaturesNVX const & rhs )
  22488. {
  22489. *reinterpret_cast<VkDeviceGeneratedCommandsFeaturesNVX*>(this) = rhs;
  22490. return *this;
  22491. }
  22492. DeviceGeneratedCommandsFeaturesNVX & setPNext( const void* pNext_ )
  22493. {
  22494. pNext = pNext_;
  22495. return *this;
  22496. }
  22497. DeviceGeneratedCommandsFeaturesNVX & setComputeBindingPointSupport( Bool32 computeBindingPointSupport_ )
  22498. {
  22499. computeBindingPointSupport = computeBindingPointSupport_;
  22500. return *this;
  22501. }
  22502. operator VkDeviceGeneratedCommandsFeaturesNVX const&() const
  22503. {
  22504. return *reinterpret_cast<const VkDeviceGeneratedCommandsFeaturesNVX*>( this );
  22505. }
  22506. operator VkDeviceGeneratedCommandsFeaturesNVX &()
  22507. {
  22508. return *reinterpret_cast<VkDeviceGeneratedCommandsFeaturesNVX*>( this );
  22509. }
  22510. bool operator==( DeviceGeneratedCommandsFeaturesNVX const& rhs ) const
  22511. {
  22512. return ( sType == rhs.sType )
  22513. && ( pNext == rhs.pNext )
  22514. && ( computeBindingPointSupport == rhs.computeBindingPointSupport );
  22515. }
  22516. bool operator!=( DeviceGeneratedCommandsFeaturesNVX const& rhs ) const
  22517. {
  22518. return !operator==( rhs );
  22519. }
  22520. private:
  22521. StructureType sType = StructureType::eDeviceGeneratedCommandsFeaturesNVX;
  22522. public:
  22523. const void* pNext = nullptr;
  22524. Bool32 computeBindingPointSupport;
  22525. };
  22526. static_assert( sizeof( DeviceGeneratedCommandsFeaturesNVX ) == sizeof( VkDeviceGeneratedCommandsFeaturesNVX ), "struct and wrapper have different size!" );
  22527. struct DeviceGeneratedCommandsLimitsNVX
  22528. {
  22529. DeviceGeneratedCommandsLimitsNVX( uint32_t maxIndirectCommandsLayoutTokenCount_ = 0,
  22530. uint32_t maxObjectEntryCounts_ = 0,
  22531. uint32_t minSequenceCountBufferOffsetAlignment_ = 0,
  22532. uint32_t minSequenceIndexBufferOffsetAlignment_ = 0,
  22533. uint32_t minCommandsTokenBufferOffsetAlignment_ = 0 )
  22534. : maxIndirectCommandsLayoutTokenCount( maxIndirectCommandsLayoutTokenCount_ )
  22535. , maxObjectEntryCounts( maxObjectEntryCounts_ )
  22536. , minSequenceCountBufferOffsetAlignment( minSequenceCountBufferOffsetAlignment_ )
  22537. , minSequenceIndexBufferOffsetAlignment( minSequenceIndexBufferOffsetAlignment_ )
  22538. , minCommandsTokenBufferOffsetAlignment( minCommandsTokenBufferOffsetAlignment_ )
  22539. {}
  22540. DeviceGeneratedCommandsLimitsNVX( VkDeviceGeneratedCommandsLimitsNVX const & rhs )
  22541. {
  22542. *reinterpret_cast<VkDeviceGeneratedCommandsLimitsNVX*>(this) = rhs;
  22543. }
  22544. DeviceGeneratedCommandsLimitsNVX& operator=( VkDeviceGeneratedCommandsLimitsNVX const & rhs )
  22545. {
  22546. *reinterpret_cast<VkDeviceGeneratedCommandsLimitsNVX*>(this) = rhs;
  22547. return *this;
  22548. }
  22549. DeviceGeneratedCommandsLimitsNVX & setPNext( const void* pNext_ )
  22550. {
  22551. pNext = pNext_;
  22552. return *this;
  22553. }
  22554. DeviceGeneratedCommandsLimitsNVX & setMaxIndirectCommandsLayoutTokenCount( uint32_t maxIndirectCommandsLayoutTokenCount_ )
  22555. {
  22556. maxIndirectCommandsLayoutTokenCount = maxIndirectCommandsLayoutTokenCount_;
  22557. return *this;
  22558. }
  22559. DeviceGeneratedCommandsLimitsNVX & setMaxObjectEntryCounts( uint32_t maxObjectEntryCounts_ )
  22560. {
  22561. maxObjectEntryCounts = maxObjectEntryCounts_;
  22562. return *this;
  22563. }
  22564. DeviceGeneratedCommandsLimitsNVX & setMinSequenceCountBufferOffsetAlignment( uint32_t minSequenceCountBufferOffsetAlignment_ )
  22565. {
  22566. minSequenceCountBufferOffsetAlignment = minSequenceCountBufferOffsetAlignment_;
  22567. return *this;
  22568. }
  22569. DeviceGeneratedCommandsLimitsNVX & setMinSequenceIndexBufferOffsetAlignment( uint32_t minSequenceIndexBufferOffsetAlignment_ )
  22570. {
  22571. minSequenceIndexBufferOffsetAlignment = minSequenceIndexBufferOffsetAlignment_;
  22572. return *this;
  22573. }
  22574. DeviceGeneratedCommandsLimitsNVX & setMinCommandsTokenBufferOffsetAlignment( uint32_t minCommandsTokenBufferOffsetAlignment_ )
  22575. {
  22576. minCommandsTokenBufferOffsetAlignment = minCommandsTokenBufferOffsetAlignment_;
  22577. return *this;
  22578. }
  22579. operator VkDeviceGeneratedCommandsLimitsNVX const&() const
  22580. {
  22581. return *reinterpret_cast<const VkDeviceGeneratedCommandsLimitsNVX*>( this );
  22582. }
  22583. operator VkDeviceGeneratedCommandsLimitsNVX &()
  22584. {
  22585. return *reinterpret_cast<VkDeviceGeneratedCommandsLimitsNVX*>( this );
  22586. }
  22587. bool operator==( DeviceGeneratedCommandsLimitsNVX const& rhs ) const
  22588. {
  22589. return ( sType == rhs.sType )
  22590. && ( pNext == rhs.pNext )
  22591. && ( maxIndirectCommandsLayoutTokenCount == rhs.maxIndirectCommandsLayoutTokenCount )
  22592. && ( maxObjectEntryCounts == rhs.maxObjectEntryCounts )
  22593. && ( minSequenceCountBufferOffsetAlignment == rhs.minSequenceCountBufferOffsetAlignment )
  22594. && ( minSequenceIndexBufferOffsetAlignment == rhs.minSequenceIndexBufferOffsetAlignment )
  22595. && ( minCommandsTokenBufferOffsetAlignment == rhs.minCommandsTokenBufferOffsetAlignment );
  22596. }
  22597. bool operator!=( DeviceGeneratedCommandsLimitsNVX const& rhs ) const
  22598. {
  22599. return !operator==( rhs );
  22600. }
  22601. private:
  22602. StructureType sType = StructureType::eDeviceGeneratedCommandsLimitsNVX;
  22603. public:
  22604. const void* pNext = nullptr;
  22605. uint32_t maxIndirectCommandsLayoutTokenCount;
  22606. uint32_t maxObjectEntryCounts;
  22607. uint32_t minSequenceCountBufferOffsetAlignment;
  22608. uint32_t minSequenceIndexBufferOffsetAlignment;
  22609. uint32_t minCommandsTokenBufferOffsetAlignment;
  22610. };
  22611. static_assert( sizeof( DeviceGeneratedCommandsLimitsNVX ) == sizeof( VkDeviceGeneratedCommandsLimitsNVX ), "struct and wrapper have different size!" );
  22612. struct DeviceGroupBindSparseInfo
  22613. {
  22614. DeviceGroupBindSparseInfo( uint32_t resourceDeviceIndex_ = 0,
  22615. uint32_t memoryDeviceIndex_ = 0 )
  22616. : resourceDeviceIndex( resourceDeviceIndex_ )
  22617. , memoryDeviceIndex( memoryDeviceIndex_ )
  22618. {}
  22619. DeviceGroupBindSparseInfo( VkDeviceGroupBindSparseInfo const & rhs )
  22620. {
  22621. *reinterpret_cast<VkDeviceGroupBindSparseInfo*>(this) = rhs;
  22622. }
  22623. DeviceGroupBindSparseInfo& operator=( VkDeviceGroupBindSparseInfo const & rhs )
  22624. {
  22625. *reinterpret_cast<VkDeviceGroupBindSparseInfo*>(this) = rhs;
  22626. return *this;
  22627. }
  22628. DeviceGroupBindSparseInfo & setPNext( const void* pNext_ )
  22629. {
  22630. pNext = pNext_;
  22631. return *this;
  22632. }
  22633. DeviceGroupBindSparseInfo & setResourceDeviceIndex( uint32_t resourceDeviceIndex_ )
  22634. {
  22635. resourceDeviceIndex = resourceDeviceIndex_;
  22636. return *this;
  22637. }
  22638. DeviceGroupBindSparseInfo & setMemoryDeviceIndex( uint32_t memoryDeviceIndex_ )
  22639. {
  22640. memoryDeviceIndex = memoryDeviceIndex_;
  22641. return *this;
  22642. }
  22643. operator VkDeviceGroupBindSparseInfo const&() const
  22644. {
  22645. return *reinterpret_cast<const VkDeviceGroupBindSparseInfo*>( this );
  22646. }
  22647. operator VkDeviceGroupBindSparseInfo &()
  22648. {
  22649. return *reinterpret_cast<VkDeviceGroupBindSparseInfo*>( this );
  22650. }
  22651. bool operator==( DeviceGroupBindSparseInfo const& rhs ) const
  22652. {
  22653. return ( sType == rhs.sType )
  22654. && ( pNext == rhs.pNext )
  22655. && ( resourceDeviceIndex == rhs.resourceDeviceIndex )
  22656. && ( memoryDeviceIndex == rhs.memoryDeviceIndex );
  22657. }
  22658. bool operator!=( DeviceGroupBindSparseInfo const& rhs ) const
  22659. {
  22660. return !operator==( rhs );
  22661. }
  22662. private:
  22663. StructureType sType = StructureType::eDeviceGroupBindSparseInfo;
  22664. public:
  22665. const void* pNext = nullptr;
  22666. uint32_t resourceDeviceIndex;
  22667. uint32_t memoryDeviceIndex;
  22668. };
  22669. static_assert( sizeof( DeviceGroupBindSparseInfo ) == sizeof( VkDeviceGroupBindSparseInfo ), "struct and wrapper have different size!" );
  22670. struct DeviceGroupCommandBufferBeginInfo
  22671. {
  22672. DeviceGroupCommandBufferBeginInfo( uint32_t deviceMask_ = 0 )
  22673. : deviceMask( deviceMask_ )
  22674. {}
  22675. DeviceGroupCommandBufferBeginInfo( VkDeviceGroupCommandBufferBeginInfo const & rhs )
  22676. {
  22677. *reinterpret_cast<VkDeviceGroupCommandBufferBeginInfo*>(this) = rhs;
  22678. }
  22679. DeviceGroupCommandBufferBeginInfo& operator=( VkDeviceGroupCommandBufferBeginInfo const & rhs )
  22680. {
  22681. *reinterpret_cast<VkDeviceGroupCommandBufferBeginInfo*>(this) = rhs;
  22682. return *this;
  22683. }
  22684. DeviceGroupCommandBufferBeginInfo & setPNext( const void* pNext_ )
  22685. {
  22686. pNext = pNext_;
  22687. return *this;
  22688. }
  22689. DeviceGroupCommandBufferBeginInfo & setDeviceMask( uint32_t deviceMask_ )
  22690. {
  22691. deviceMask = deviceMask_;
  22692. return *this;
  22693. }
  22694. operator VkDeviceGroupCommandBufferBeginInfo const&() const
  22695. {
  22696. return *reinterpret_cast<const VkDeviceGroupCommandBufferBeginInfo*>( this );
  22697. }
  22698. operator VkDeviceGroupCommandBufferBeginInfo &()
  22699. {
  22700. return *reinterpret_cast<VkDeviceGroupCommandBufferBeginInfo*>( this );
  22701. }
  22702. bool operator==( DeviceGroupCommandBufferBeginInfo const& rhs ) const
  22703. {
  22704. return ( sType == rhs.sType )
  22705. && ( pNext == rhs.pNext )
  22706. && ( deviceMask == rhs.deviceMask );
  22707. }
  22708. bool operator!=( DeviceGroupCommandBufferBeginInfo const& rhs ) const
  22709. {
  22710. return !operator==( rhs );
  22711. }
  22712. private:
  22713. StructureType sType = StructureType::eDeviceGroupCommandBufferBeginInfo;
  22714. public:
  22715. const void* pNext = nullptr;
  22716. uint32_t deviceMask;
  22717. };
  22718. static_assert( sizeof( DeviceGroupCommandBufferBeginInfo ) == sizeof( VkDeviceGroupCommandBufferBeginInfo ), "struct and wrapper have different size!" );
  22719. struct DeviceGroupDeviceCreateInfo
  22720. {
  22721. DeviceGroupDeviceCreateInfo( uint32_t physicalDeviceCount_ = 0,
  22722. const PhysicalDevice* pPhysicalDevices_ = nullptr )
  22723. : physicalDeviceCount( physicalDeviceCount_ )
  22724. , pPhysicalDevices( pPhysicalDevices_ )
  22725. {}
  22726. DeviceGroupDeviceCreateInfo( VkDeviceGroupDeviceCreateInfo const & rhs )
  22727. {
  22728. *reinterpret_cast<VkDeviceGroupDeviceCreateInfo*>(this) = rhs;
  22729. }
  22730. DeviceGroupDeviceCreateInfo& operator=( VkDeviceGroupDeviceCreateInfo const & rhs )
  22731. {
  22732. *reinterpret_cast<VkDeviceGroupDeviceCreateInfo*>(this) = rhs;
  22733. return *this;
  22734. }
  22735. DeviceGroupDeviceCreateInfo & setPNext( const void* pNext_ )
  22736. {
  22737. pNext = pNext_;
  22738. return *this;
  22739. }
  22740. DeviceGroupDeviceCreateInfo & setPhysicalDeviceCount( uint32_t physicalDeviceCount_ )
  22741. {
  22742. physicalDeviceCount = physicalDeviceCount_;
  22743. return *this;
  22744. }
  22745. DeviceGroupDeviceCreateInfo & setPPhysicalDevices( const PhysicalDevice* pPhysicalDevices_ )
  22746. {
  22747. pPhysicalDevices = pPhysicalDevices_;
  22748. return *this;
  22749. }
  22750. operator VkDeviceGroupDeviceCreateInfo const&() const
  22751. {
  22752. return *reinterpret_cast<const VkDeviceGroupDeviceCreateInfo*>( this );
  22753. }
  22754. operator VkDeviceGroupDeviceCreateInfo &()
  22755. {
  22756. return *reinterpret_cast<VkDeviceGroupDeviceCreateInfo*>( this );
  22757. }
  22758. bool operator==( DeviceGroupDeviceCreateInfo const& rhs ) const
  22759. {
  22760. return ( sType == rhs.sType )
  22761. && ( pNext == rhs.pNext )
  22762. && ( physicalDeviceCount == rhs.physicalDeviceCount )
  22763. && ( pPhysicalDevices == rhs.pPhysicalDevices );
  22764. }
  22765. bool operator!=( DeviceGroupDeviceCreateInfo const& rhs ) const
  22766. {
  22767. return !operator==( rhs );
  22768. }
  22769. private:
  22770. StructureType sType = StructureType::eDeviceGroupDeviceCreateInfo;
  22771. public:
  22772. const void* pNext = nullptr;
  22773. uint32_t physicalDeviceCount;
  22774. const PhysicalDevice* pPhysicalDevices;
  22775. };
  22776. static_assert( sizeof( DeviceGroupDeviceCreateInfo ) == sizeof( VkDeviceGroupDeviceCreateInfo ), "struct and wrapper have different size!" );
  22777. struct DeviceGroupPresentCapabilitiesKHR
  22778. {
  22779. operator VkDeviceGroupPresentCapabilitiesKHR const&() const
  22780. {
  22781. return *reinterpret_cast<const VkDeviceGroupPresentCapabilitiesKHR*>( this );
  22782. }
  22783. operator VkDeviceGroupPresentCapabilitiesKHR &()
  22784. {
  22785. return *reinterpret_cast<VkDeviceGroupPresentCapabilitiesKHR*>( this );
  22786. }
  22787. bool operator==( DeviceGroupPresentCapabilitiesKHR const& rhs ) const
  22788. {
  22789. return ( sType == rhs.sType )
  22790. && ( pNext == rhs.pNext )
  22791. && ( memcmp( presentMask, rhs.presentMask, VK_MAX_DEVICE_GROUP_SIZE * sizeof( uint32_t ) ) == 0 )
  22792. && ( modes == rhs.modes );
  22793. }
  22794. bool operator!=( DeviceGroupPresentCapabilitiesKHR const& rhs ) const
  22795. {
  22796. return !operator==( rhs );
  22797. }
  22798. private:
  22799. StructureType sType = StructureType::eDeviceGroupPresentCapabilitiesKHR;
  22800. public:
  22801. const void* pNext = nullptr;
  22802. uint32_t presentMask[VK_MAX_DEVICE_GROUP_SIZE];
  22803. DeviceGroupPresentModeFlagsKHR modes;
  22804. };
  22805. static_assert( sizeof( DeviceGroupPresentCapabilitiesKHR ) == sizeof( VkDeviceGroupPresentCapabilitiesKHR ), "struct and wrapper have different size!" );
  22806. struct DeviceGroupPresentInfoKHR
  22807. {
  22808. DeviceGroupPresentInfoKHR( uint32_t swapchainCount_ = 0,
  22809. const uint32_t* pDeviceMasks_ = nullptr,
  22810. DeviceGroupPresentModeFlagBitsKHR mode_ = DeviceGroupPresentModeFlagBitsKHR::eLocal )
  22811. : swapchainCount( swapchainCount_ )
  22812. , pDeviceMasks( pDeviceMasks_ )
  22813. , mode( mode_ )
  22814. {}
  22815. DeviceGroupPresentInfoKHR( VkDeviceGroupPresentInfoKHR const & rhs )
  22816. {
  22817. *reinterpret_cast<VkDeviceGroupPresentInfoKHR*>(this) = rhs;
  22818. }
  22819. DeviceGroupPresentInfoKHR& operator=( VkDeviceGroupPresentInfoKHR const & rhs )
  22820. {
  22821. *reinterpret_cast<VkDeviceGroupPresentInfoKHR*>(this) = rhs;
  22822. return *this;
  22823. }
  22824. DeviceGroupPresentInfoKHR & setPNext( const void* pNext_ )
  22825. {
  22826. pNext = pNext_;
  22827. return *this;
  22828. }
  22829. DeviceGroupPresentInfoKHR & setSwapchainCount( uint32_t swapchainCount_ )
  22830. {
  22831. swapchainCount = swapchainCount_;
  22832. return *this;
  22833. }
  22834. DeviceGroupPresentInfoKHR & setPDeviceMasks( const uint32_t* pDeviceMasks_ )
  22835. {
  22836. pDeviceMasks = pDeviceMasks_;
  22837. return *this;
  22838. }
  22839. DeviceGroupPresentInfoKHR & setMode( DeviceGroupPresentModeFlagBitsKHR mode_ )
  22840. {
  22841. mode = mode_;
  22842. return *this;
  22843. }
  22844. operator VkDeviceGroupPresentInfoKHR const&() const
  22845. {
  22846. return *reinterpret_cast<const VkDeviceGroupPresentInfoKHR*>( this );
  22847. }
  22848. operator VkDeviceGroupPresentInfoKHR &()
  22849. {
  22850. return *reinterpret_cast<VkDeviceGroupPresentInfoKHR*>( this );
  22851. }
  22852. bool operator==( DeviceGroupPresentInfoKHR const& rhs ) const
  22853. {
  22854. return ( sType == rhs.sType )
  22855. && ( pNext == rhs.pNext )
  22856. && ( swapchainCount == rhs.swapchainCount )
  22857. && ( pDeviceMasks == rhs.pDeviceMasks )
  22858. && ( mode == rhs.mode );
  22859. }
  22860. bool operator!=( DeviceGroupPresentInfoKHR const& rhs ) const
  22861. {
  22862. return !operator==( rhs );
  22863. }
  22864. private:
  22865. StructureType sType = StructureType::eDeviceGroupPresentInfoKHR;
  22866. public:
  22867. const void* pNext = nullptr;
  22868. uint32_t swapchainCount;
  22869. const uint32_t* pDeviceMasks;
  22870. DeviceGroupPresentModeFlagBitsKHR mode;
  22871. };
  22872. static_assert( sizeof( DeviceGroupPresentInfoKHR ) == sizeof( VkDeviceGroupPresentInfoKHR ), "struct and wrapper have different size!" );
  22873. struct DeviceGroupRenderPassBeginInfo
  22874. {
  22875. DeviceGroupRenderPassBeginInfo( uint32_t deviceMask_ = 0,
  22876. uint32_t deviceRenderAreaCount_ = 0,
  22877. const Rect2D* pDeviceRenderAreas_ = nullptr )
  22878. : deviceMask( deviceMask_ )
  22879. , deviceRenderAreaCount( deviceRenderAreaCount_ )
  22880. , pDeviceRenderAreas( pDeviceRenderAreas_ )
  22881. {}
  22882. DeviceGroupRenderPassBeginInfo( VkDeviceGroupRenderPassBeginInfo const & rhs )
  22883. {
  22884. *reinterpret_cast<VkDeviceGroupRenderPassBeginInfo*>(this) = rhs;
  22885. }
  22886. DeviceGroupRenderPassBeginInfo& operator=( VkDeviceGroupRenderPassBeginInfo const & rhs )
  22887. {
  22888. *reinterpret_cast<VkDeviceGroupRenderPassBeginInfo*>(this) = rhs;
  22889. return *this;
  22890. }
  22891. DeviceGroupRenderPassBeginInfo & setPNext( const void* pNext_ )
  22892. {
  22893. pNext = pNext_;
  22894. return *this;
  22895. }
  22896. DeviceGroupRenderPassBeginInfo & setDeviceMask( uint32_t deviceMask_ )
  22897. {
  22898. deviceMask = deviceMask_;
  22899. return *this;
  22900. }
  22901. DeviceGroupRenderPassBeginInfo & setDeviceRenderAreaCount( uint32_t deviceRenderAreaCount_ )
  22902. {
  22903. deviceRenderAreaCount = deviceRenderAreaCount_;
  22904. return *this;
  22905. }
  22906. DeviceGroupRenderPassBeginInfo & setPDeviceRenderAreas( const Rect2D* pDeviceRenderAreas_ )
  22907. {
  22908. pDeviceRenderAreas = pDeviceRenderAreas_;
  22909. return *this;
  22910. }
  22911. operator VkDeviceGroupRenderPassBeginInfo const&() const
  22912. {
  22913. return *reinterpret_cast<const VkDeviceGroupRenderPassBeginInfo*>( this );
  22914. }
  22915. operator VkDeviceGroupRenderPassBeginInfo &()
  22916. {
  22917. return *reinterpret_cast<VkDeviceGroupRenderPassBeginInfo*>( this );
  22918. }
  22919. bool operator==( DeviceGroupRenderPassBeginInfo const& rhs ) const
  22920. {
  22921. return ( sType == rhs.sType )
  22922. && ( pNext == rhs.pNext )
  22923. && ( deviceMask == rhs.deviceMask )
  22924. && ( deviceRenderAreaCount == rhs.deviceRenderAreaCount )
  22925. && ( pDeviceRenderAreas == rhs.pDeviceRenderAreas );
  22926. }
  22927. bool operator!=( DeviceGroupRenderPassBeginInfo const& rhs ) const
  22928. {
  22929. return !operator==( rhs );
  22930. }
  22931. private:
  22932. StructureType sType = StructureType::eDeviceGroupRenderPassBeginInfo;
  22933. public:
  22934. const void* pNext = nullptr;
  22935. uint32_t deviceMask;
  22936. uint32_t deviceRenderAreaCount;
  22937. const Rect2D* pDeviceRenderAreas;
  22938. };
  22939. static_assert( sizeof( DeviceGroupRenderPassBeginInfo ) == sizeof( VkDeviceGroupRenderPassBeginInfo ), "struct and wrapper have different size!" );
  22940. struct DeviceGroupSubmitInfo
  22941. {
  22942. DeviceGroupSubmitInfo( uint32_t waitSemaphoreCount_ = 0,
  22943. const uint32_t* pWaitSemaphoreDeviceIndices_ = nullptr,
  22944. uint32_t commandBufferCount_ = 0,
  22945. const uint32_t* pCommandBufferDeviceMasks_ = nullptr,
  22946. uint32_t signalSemaphoreCount_ = 0,
  22947. const uint32_t* pSignalSemaphoreDeviceIndices_ = nullptr )
  22948. : waitSemaphoreCount( waitSemaphoreCount_ )
  22949. , pWaitSemaphoreDeviceIndices( pWaitSemaphoreDeviceIndices_ )
  22950. , commandBufferCount( commandBufferCount_ )
  22951. , pCommandBufferDeviceMasks( pCommandBufferDeviceMasks_ )
  22952. , signalSemaphoreCount( signalSemaphoreCount_ )
  22953. , pSignalSemaphoreDeviceIndices( pSignalSemaphoreDeviceIndices_ )
  22954. {}
  22955. DeviceGroupSubmitInfo( VkDeviceGroupSubmitInfo const & rhs )
  22956. {
  22957. *reinterpret_cast<VkDeviceGroupSubmitInfo*>(this) = rhs;
  22958. }
  22959. DeviceGroupSubmitInfo& operator=( VkDeviceGroupSubmitInfo const & rhs )
  22960. {
  22961. *reinterpret_cast<VkDeviceGroupSubmitInfo*>(this) = rhs;
  22962. return *this;
  22963. }
  22964. DeviceGroupSubmitInfo & setPNext( const void* pNext_ )
  22965. {
  22966. pNext = pNext_;
  22967. return *this;
  22968. }
  22969. DeviceGroupSubmitInfo & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ )
  22970. {
  22971. waitSemaphoreCount = waitSemaphoreCount_;
  22972. return *this;
  22973. }
  22974. DeviceGroupSubmitInfo & setPWaitSemaphoreDeviceIndices( const uint32_t* pWaitSemaphoreDeviceIndices_ )
  22975. {
  22976. pWaitSemaphoreDeviceIndices = pWaitSemaphoreDeviceIndices_;
  22977. return *this;
  22978. }
  22979. DeviceGroupSubmitInfo & setCommandBufferCount( uint32_t commandBufferCount_ )
  22980. {
  22981. commandBufferCount = commandBufferCount_;
  22982. return *this;
  22983. }
  22984. DeviceGroupSubmitInfo & setPCommandBufferDeviceMasks( const uint32_t* pCommandBufferDeviceMasks_ )
  22985. {
  22986. pCommandBufferDeviceMasks = pCommandBufferDeviceMasks_;
  22987. return *this;
  22988. }
  22989. DeviceGroupSubmitInfo & setSignalSemaphoreCount( uint32_t signalSemaphoreCount_ )
  22990. {
  22991. signalSemaphoreCount = signalSemaphoreCount_;
  22992. return *this;
  22993. }
  22994. DeviceGroupSubmitInfo & setPSignalSemaphoreDeviceIndices( const uint32_t* pSignalSemaphoreDeviceIndices_ )
  22995. {
  22996. pSignalSemaphoreDeviceIndices = pSignalSemaphoreDeviceIndices_;
  22997. return *this;
  22998. }
  22999. operator VkDeviceGroupSubmitInfo const&() const
  23000. {
  23001. return *reinterpret_cast<const VkDeviceGroupSubmitInfo*>( this );
  23002. }
  23003. operator VkDeviceGroupSubmitInfo &()
  23004. {
  23005. return *reinterpret_cast<VkDeviceGroupSubmitInfo*>( this );
  23006. }
  23007. bool operator==( DeviceGroupSubmitInfo const& rhs ) const
  23008. {
  23009. return ( sType == rhs.sType )
  23010. && ( pNext == rhs.pNext )
  23011. && ( waitSemaphoreCount == rhs.waitSemaphoreCount )
  23012. && ( pWaitSemaphoreDeviceIndices == rhs.pWaitSemaphoreDeviceIndices )
  23013. && ( commandBufferCount == rhs.commandBufferCount )
  23014. && ( pCommandBufferDeviceMasks == rhs.pCommandBufferDeviceMasks )
  23015. && ( signalSemaphoreCount == rhs.signalSemaphoreCount )
  23016. && ( pSignalSemaphoreDeviceIndices == rhs.pSignalSemaphoreDeviceIndices );
  23017. }
  23018. bool operator!=( DeviceGroupSubmitInfo const& rhs ) const
  23019. {
  23020. return !operator==( rhs );
  23021. }
  23022. private:
  23023. StructureType sType = StructureType::eDeviceGroupSubmitInfo;
  23024. public:
  23025. const void* pNext = nullptr;
  23026. uint32_t waitSemaphoreCount;
  23027. const uint32_t* pWaitSemaphoreDeviceIndices;
  23028. uint32_t commandBufferCount;
  23029. const uint32_t* pCommandBufferDeviceMasks;
  23030. uint32_t signalSemaphoreCount;
  23031. const uint32_t* pSignalSemaphoreDeviceIndices;
  23032. };
  23033. static_assert( sizeof( DeviceGroupSubmitInfo ) == sizeof( VkDeviceGroupSubmitInfo ), "struct and wrapper have different size!" );
  23034. struct DeviceGroupSwapchainCreateInfoKHR
  23035. {
  23036. DeviceGroupSwapchainCreateInfoKHR( DeviceGroupPresentModeFlagsKHR modes_ = DeviceGroupPresentModeFlagsKHR() )
  23037. : modes( modes_ )
  23038. {}
  23039. DeviceGroupSwapchainCreateInfoKHR( VkDeviceGroupSwapchainCreateInfoKHR const & rhs )
  23040. {
  23041. *reinterpret_cast<VkDeviceGroupSwapchainCreateInfoKHR*>(this) = rhs;
  23042. }
  23043. DeviceGroupSwapchainCreateInfoKHR& operator=( VkDeviceGroupSwapchainCreateInfoKHR const & rhs )
  23044. {
  23045. *reinterpret_cast<VkDeviceGroupSwapchainCreateInfoKHR*>(this) = rhs;
  23046. return *this;
  23047. }
  23048. DeviceGroupSwapchainCreateInfoKHR & setPNext( const void* pNext_ )
  23049. {
  23050. pNext = pNext_;
  23051. return *this;
  23052. }
  23053. DeviceGroupSwapchainCreateInfoKHR & setModes( DeviceGroupPresentModeFlagsKHR modes_ )
  23054. {
  23055. modes = modes_;
  23056. return *this;
  23057. }
  23058. operator VkDeviceGroupSwapchainCreateInfoKHR const&() const
  23059. {
  23060. return *reinterpret_cast<const VkDeviceGroupSwapchainCreateInfoKHR*>( this );
  23061. }
  23062. operator VkDeviceGroupSwapchainCreateInfoKHR &()
  23063. {
  23064. return *reinterpret_cast<VkDeviceGroupSwapchainCreateInfoKHR*>( this );
  23065. }
  23066. bool operator==( DeviceGroupSwapchainCreateInfoKHR const& rhs ) const
  23067. {
  23068. return ( sType == rhs.sType )
  23069. && ( pNext == rhs.pNext )
  23070. && ( modes == rhs.modes );
  23071. }
  23072. bool operator!=( DeviceGroupSwapchainCreateInfoKHR const& rhs ) const
  23073. {
  23074. return !operator==( rhs );
  23075. }
  23076. private:
  23077. StructureType sType = StructureType::eDeviceGroupSwapchainCreateInfoKHR;
  23078. public:
  23079. const void* pNext = nullptr;
  23080. DeviceGroupPresentModeFlagsKHR modes;
  23081. };
  23082. static_assert( sizeof( DeviceGroupSwapchainCreateInfoKHR ) == sizeof( VkDeviceGroupSwapchainCreateInfoKHR ), "struct and wrapper have different size!" );
  23083. struct DeviceMemoryOverallocationCreateInfoAMD
  23084. {
  23085. DeviceMemoryOverallocationCreateInfoAMD( MemoryOverallocationBehaviorAMD overallocationBehavior_ = MemoryOverallocationBehaviorAMD::eDefault )
  23086. : overallocationBehavior( overallocationBehavior_ )
  23087. {}
  23088. DeviceMemoryOverallocationCreateInfoAMD( VkDeviceMemoryOverallocationCreateInfoAMD const & rhs )
  23089. {
  23090. *reinterpret_cast<VkDeviceMemoryOverallocationCreateInfoAMD*>(this) = rhs;
  23091. }
  23092. DeviceMemoryOverallocationCreateInfoAMD& operator=( VkDeviceMemoryOverallocationCreateInfoAMD const & rhs )
  23093. {
  23094. *reinterpret_cast<VkDeviceMemoryOverallocationCreateInfoAMD*>(this) = rhs;
  23095. return *this;
  23096. }
  23097. DeviceMemoryOverallocationCreateInfoAMD & setPNext( const void* pNext_ )
  23098. {
  23099. pNext = pNext_;
  23100. return *this;
  23101. }
  23102. DeviceMemoryOverallocationCreateInfoAMD & setOverallocationBehavior( MemoryOverallocationBehaviorAMD overallocationBehavior_ )
  23103. {
  23104. overallocationBehavior = overallocationBehavior_;
  23105. return *this;
  23106. }
  23107. operator VkDeviceMemoryOverallocationCreateInfoAMD const&() const
  23108. {
  23109. return *reinterpret_cast<const VkDeviceMemoryOverallocationCreateInfoAMD*>( this );
  23110. }
  23111. operator VkDeviceMemoryOverallocationCreateInfoAMD &()
  23112. {
  23113. return *reinterpret_cast<VkDeviceMemoryOverallocationCreateInfoAMD*>( this );
  23114. }
  23115. bool operator==( DeviceMemoryOverallocationCreateInfoAMD const& rhs ) const
  23116. {
  23117. return ( sType == rhs.sType )
  23118. && ( pNext == rhs.pNext )
  23119. && ( overallocationBehavior == rhs.overallocationBehavior );
  23120. }
  23121. bool operator!=( DeviceMemoryOverallocationCreateInfoAMD const& rhs ) const
  23122. {
  23123. return !operator==( rhs );
  23124. }
  23125. private:
  23126. StructureType sType = StructureType::eDeviceMemoryOverallocationCreateInfoAMD;
  23127. public:
  23128. const void* pNext = nullptr;
  23129. MemoryOverallocationBehaviorAMD overallocationBehavior;
  23130. };
  23131. static_assert( sizeof( DeviceMemoryOverallocationCreateInfoAMD ) == sizeof( VkDeviceMemoryOverallocationCreateInfoAMD ), "struct and wrapper have different size!" );
  23132. struct DeviceQueueGlobalPriorityCreateInfoEXT
  23133. {
  23134. DeviceQueueGlobalPriorityCreateInfoEXT( QueueGlobalPriorityEXT globalPriority_ = QueueGlobalPriorityEXT::eLow )
  23135. : globalPriority( globalPriority_ )
  23136. {}
  23137. DeviceQueueGlobalPriorityCreateInfoEXT( VkDeviceQueueGlobalPriorityCreateInfoEXT const & rhs )
  23138. {
  23139. *reinterpret_cast<VkDeviceQueueGlobalPriorityCreateInfoEXT*>(this) = rhs;
  23140. }
  23141. DeviceQueueGlobalPriorityCreateInfoEXT& operator=( VkDeviceQueueGlobalPriorityCreateInfoEXT const & rhs )
  23142. {
  23143. *reinterpret_cast<VkDeviceQueueGlobalPriorityCreateInfoEXT*>(this) = rhs;
  23144. return *this;
  23145. }
  23146. DeviceQueueGlobalPriorityCreateInfoEXT & setPNext( const void* pNext_ )
  23147. {
  23148. pNext = pNext_;
  23149. return *this;
  23150. }
  23151. DeviceQueueGlobalPriorityCreateInfoEXT & setGlobalPriority( QueueGlobalPriorityEXT globalPriority_ )
  23152. {
  23153. globalPriority = globalPriority_;
  23154. return *this;
  23155. }
  23156. operator VkDeviceQueueGlobalPriorityCreateInfoEXT const&() const
  23157. {
  23158. return *reinterpret_cast<const VkDeviceQueueGlobalPriorityCreateInfoEXT*>( this );
  23159. }
  23160. operator VkDeviceQueueGlobalPriorityCreateInfoEXT &()
  23161. {
  23162. return *reinterpret_cast<VkDeviceQueueGlobalPriorityCreateInfoEXT*>( this );
  23163. }
  23164. bool operator==( DeviceQueueGlobalPriorityCreateInfoEXT const& rhs ) const
  23165. {
  23166. return ( sType == rhs.sType )
  23167. && ( pNext == rhs.pNext )
  23168. && ( globalPriority == rhs.globalPriority );
  23169. }
  23170. bool operator!=( DeviceQueueGlobalPriorityCreateInfoEXT const& rhs ) const
  23171. {
  23172. return !operator==( rhs );
  23173. }
  23174. private:
  23175. StructureType sType = StructureType::eDeviceQueueGlobalPriorityCreateInfoEXT;
  23176. public:
  23177. const void* pNext = nullptr;
  23178. QueueGlobalPriorityEXT globalPriority;
  23179. };
  23180. static_assert( sizeof( DeviceQueueGlobalPriorityCreateInfoEXT ) == sizeof( VkDeviceQueueGlobalPriorityCreateInfoEXT ), "struct and wrapper have different size!" );
  23181. struct DeviceQueueInfo2
  23182. {
  23183. DeviceQueueInfo2( DeviceQueueCreateFlags flags_ = DeviceQueueCreateFlags(),
  23184. uint32_t queueFamilyIndex_ = 0,
  23185. uint32_t queueIndex_ = 0 )
  23186. : flags( flags_ )
  23187. , queueFamilyIndex( queueFamilyIndex_ )
  23188. , queueIndex( queueIndex_ )
  23189. {}
  23190. DeviceQueueInfo2( VkDeviceQueueInfo2 const & rhs )
  23191. {
  23192. *reinterpret_cast<VkDeviceQueueInfo2*>(this) = rhs;
  23193. }
  23194. DeviceQueueInfo2& operator=( VkDeviceQueueInfo2 const & rhs )
  23195. {
  23196. *reinterpret_cast<VkDeviceQueueInfo2*>(this) = rhs;
  23197. return *this;
  23198. }
  23199. DeviceQueueInfo2 & setPNext( const void* pNext_ )
  23200. {
  23201. pNext = pNext_;
  23202. return *this;
  23203. }
  23204. DeviceQueueInfo2 & setFlags( DeviceQueueCreateFlags flags_ )
  23205. {
  23206. flags = flags_;
  23207. return *this;
  23208. }
  23209. DeviceQueueInfo2 & setQueueFamilyIndex( uint32_t queueFamilyIndex_ )
  23210. {
  23211. queueFamilyIndex = queueFamilyIndex_;
  23212. return *this;
  23213. }
  23214. DeviceQueueInfo2 & setQueueIndex( uint32_t queueIndex_ )
  23215. {
  23216. queueIndex = queueIndex_;
  23217. return *this;
  23218. }
  23219. operator VkDeviceQueueInfo2 const&() const
  23220. {
  23221. return *reinterpret_cast<const VkDeviceQueueInfo2*>( this );
  23222. }
  23223. operator VkDeviceQueueInfo2 &()
  23224. {
  23225. return *reinterpret_cast<VkDeviceQueueInfo2*>( this );
  23226. }
  23227. bool operator==( DeviceQueueInfo2 const& rhs ) const
  23228. {
  23229. return ( sType == rhs.sType )
  23230. && ( pNext == rhs.pNext )
  23231. && ( flags == rhs.flags )
  23232. && ( queueFamilyIndex == rhs.queueFamilyIndex )
  23233. && ( queueIndex == rhs.queueIndex );
  23234. }
  23235. bool operator!=( DeviceQueueInfo2 const& rhs ) const
  23236. {
  23237. return !operator==( rhs );
  23238. }
  23239. private:
  23240. StructureType sType = StructureType::eDeviceQueueInfo2;
  23241. public:
  23242. const void* pNext = nullptr;
  23243. DeviceQueueCreateFlags flags;
  23244. uint32_t queueFamilyIndex;
  23245. uint32_t queueIndex;
  23246. };
  23247. static_assert( sizeof( DeviceQueueInfo2 ) == sizeof( VkDeviceQueueInfo2 ), "struct and wrapper have different size!" );
  23248. struct DispatchIndirectCommand
  23249. {
  23250. DispatchIndirectCommand( uint32_t x_ = 0,
  23251. uint32_t y_ = 0,
  23252. uint32_t z_ = 0 )
  23253. : x( x_ )
  23254. , y( y_ )
  23255. , z( z_ )
  23256. {}
  23257. DispatchIndirectCommand( VkDispatchIndirectCommand const & rhs )
  23258. {
  23259. *reinterpret_cast<VkDispatchIndirectCommand*>(this) = rhs;
  23260. }
  23261. DispatchIndirectCommand& operator=( VkDispatchIndirectCommand const & rhs )
  23262. {
  23263. *reinterpret_cast<VkDispatchIndirectCommand*>(this) = rhs;
  23264. return *this;
  23265. }
  23266. DispatchIndirectCommand & setX( uint32_t x_ )
  23267. {
  23268. x = x_;
  23269. return *this;
  23270. }
  23271. DispatchIndirectCommand & setY( uint32_t y_ )
  23272. {
  23273. y = y_;
  23274. return *this;
  23275. }
  23276. DispatchIndirectCommand & setZ( uint32_t z_ )
  23277. {
  23278. z = z_;
  23279. return *this;
  23280. }
  23281. operator VkDispatchIndirectCommand const&() const
  23282. {
  23283. return *reinterpret_cast<const VkDispatchIndirectCommand*>( this );
  23284. }
  23285. operator VkDispatchIndirectCommand &()
  23286. {
  23287. return *reinterpret_cast<VkDispatchIndirectCommand*>( this );
  23288. }
  23289. bool operator==( DispatchIndirectCommand const& rhs ) const
  23290. {
  23291. return ( x == rhs.x )
  23292. && ( y == rhs.y )
  23293. && ( z == rhs.z );
  23294. }
  23295. bool operator!=( DispatchIndirectCommand const& rhs ) const
  23296. {
  23297. return !operator==( rhs );
  23298. }
  23299. uint32_t x;
  23300. uint32_t y;
  23301. uint32_t z;
  23302. };
  23303. static_assert( sizeof( DispatchIndirectCommand ) == sizeof( VkDispatchIndirectCommand ), "struct and wrapper have different size!" );
  23304. struct DisplayEventInfoEXT
  23305. {
  23306. DisplayEventInfoEXT( DisplayEventTypeEXT displayEvent_ = DisplayEventTypeEXT::eFirstPixelOut )
  23307. : displayEvent( displayEvent_ )
  23308. {}
  23309. DisplayEventInfoEXT( VkDisplayEventInfoEXT const & rhs )
  23310. {
  23311. *reinterpret_cast<VkDisplayEventInfoEXT*>(this) = rhs;
  23312. }
  23313. DisplayEventInfoEXT& operator=( VkDisplayEventInfoEXT const & rhs )
  23314. {
  23315. *reinterpret_cast<VkDisplayEventInfoEXT*>(this) = rhs;
  23316. return *this;
  23317. }
  23318. DisplayEventInfoEXT & setPNext( const void* pNext_ )
  23319. {
  23320. pNext = pNext_;
  23321. return *this;
  23322. }
  23323. DisplayEventInfoEXT & setDisplayEvent( DisplayEventTypeEXT displayEvent_ )
  23324. {
  23325. displayEvent = displayEvent_;
  23326. return *this;
  23327. }
  23328. operator VkDisplayEventInfoEXT const&() const
  23329. {
  23330. return *reinterpret_cast<const VkDisplayEventInfoEXT*>( this );
  23331. }
  23332. operator VkDisplayEventInfoEXT &()
  23333. {
  23334. return *reinterpret_cast<VkDisplayEventInfoEXT*>( this );
  23335. }
  23336. bool operator==( DisplayEventInfoEXT const& rhs ) const
  23337. {
  23338. return ( sType == rhs.sType )
  23339. && ( pNext == rhs.pNext )
  23340. && ( displayEvent == rhs.displayEvent );
  23341. }
  23342. bool operator!=( DisplayEventInfoEXT const& rhs ) const
  23343. {
  23344. return !operator==( rhs );
  23345. }
  23346. private:
  23347. StructureType sType = StructureType::eDisplayEventInfoEXT;
  23348. public:
  23349. const void* pNext = nullptr;
  23350. DisplayEventTypeEXT displayEvent;
  23351. };
  23352. static_assert( sizeof( DisplayEventInfoEXT ) == sizeof( VkDisplayEventInfoEXT ), "struct and wrapper have different size!" );
  23353. struct DisplayModeParametersKHR
  23354. {
  23355. DisplayModeParametersKHR( Extent2D visibleRegion_ = Extent2D(),
  23356. uint32_t refreshRate_ = 0 )
  23357. : visibleRegion( visibleRegion_ )
  23358. , refreshRate( refreshRate_ )
  23359. {}
  23360. DisplayModeParametersKHR( VkDisplayModeParametersKHR const & rhs )
  23361. {
  23362. *reinterpret_cast<VkDisplayModeParametersKHR*>(this) = rhs;
  23363. }
  23364. DisplayModeParametersKHR& operator=( VkDisplayModeParametersKHR const & rhs )
  23365. {
  23366. *reinterpret_cast<VkDisplayModeParametersKHR*>(this) = rhs;
  23367. return *this;
  23368. }
  23369. DisplayModeParametersKHR & setVisibleRegion( Extent2D visibleRegion_ )
  23370. {
  23371. visibleRegion = visibleRegion_;
  23372. return *this;
  23373. }
  23374. DisplayModeParametersKHR & setRefreshRate( uint32_t refreshRate_ )
  23375. {
  23376. refreshRate = refreshRate_;
  23377. return *this;
  23378. }
  23379. operator VkDisplayModeParametersKHR const&() const
  23380. {
  23381. return *reinterpret_cast<const VkDisplayModeParametersKHR*>( this );
  23382. }
  23383. operator VkDisplayModeParametersKHR &()
  23384. {
  23385. return *reinterpret_cast<VkDisplayModeParametersKHR*>( this );
  23386. }
  23387. bool operator==( DisplayModeParametersKHR const& rhs ) const
  23388. {
  23389. return ( visibleRegion == rhs.visibleRegion )
  23390. && ( refreshRate == rhs.refreshRate );
  23391. }
  23392. bool operator!=( DisplayModeParametersKHR const& rhs ) const
  23393. {
  23394. return !operator==( rhs );
  23395. }
  23396. Extent2D visibleRegion;
  23397. uint32_t refreshRate;
  23398. };
  23399. static_assert( sizeof( DisplayModeParametersKHR ) == sizeof( VkDisplayModeParametersKHR ), "struct and wrapper have different size!" );
  23400. struct DisplayModeCreateInfoKHR
  23401. {
  23402. DisplayModeCreateInfoKHR( DisplayModeCreateFlagsKHR flags_ = DisplayModeCreateFlagsKHR(),
  23403. DisplayModeParametersKHR parameters_ = DisplayModeParametersKHR() )
  23404. : flags( flags_ )
  23405. , parameters( parameters_ )
  23406. {}
  23407. DisplayModeCreateInfoKHR( VkDisplayModeCreateInfoKHR const & rhs )
  23408. {
  23409. *reinterpret_cast<VkDisplayModeCreateInfoKHR*>(this) = rhs;
  23410. }
  23411. DisplayModeCreateInfoKHR& operator=( VkDisplayModeCreateInfoKHR const & rhs )
  23412. {
  23413. *reinterpret_cast<VkDisplayModeCreateInfoKHR*>(this) = rhs;
  23414. return *this;
  23415. }
  23416. DisplayModeCreateInfoKHR & setPNext( const void* pNext_ )
  23417. {
  23418. pNext = pNext_;
  23419. return *this;
  23420. }
  23421. DisplayModeCreateInfoKHR & setFlags( DisplayModeCreateFlagsKHR flags_ )
  23422. {
  23423. flags = flags_;
  23424. return *this;
  23425. }
  23426. DisplayModeCreateInfoKHR & setParameters( DisplayModeParametersKHR parameters_ )
  23427. {
  23428. parameters = parameters_;
  23429. return *this;
  23430. }
  23431. operator VkDisplayModeCreateInfoKHR const&() const
  23432. {
  23433. return *reinterpret_cast<const VkDisplayModeCreateInfoKHR*>( this );
  23434. }
  23435. operator VkDisplayModeCreateInfoKHR &()
  23436. {
  23437. return *reinterpret_cast<VkDisplayModeCreateInfoKHR*>( this );
  23438. }
  23439. bool operator==( DisplayModeCreateInfoKHR const& rhs ) const
  23440. {
  23441. return ( sType == rhs.sType )
  23442. && ( pNext == rhs.pNext )
  23443. && ( flags == rhs.flags )
  23444. && ( parameters == rhs.parameters );
  23445. }
  23446. bool operator!=( DisplayModeCreateInfoKHR const& rhs ) const
  23447. {
  23448. return !operator==( rhs );
  23449. }
  23450. private:
  23451. StructureType sType = StructureType::eDisplayModeCreateInfoKHR;
  23452. public:
  23453. const void* pNext = nullptr;
  23454. DisplayModeCreateFlagsKHR flags;
  23455. DisplayModeParametersKHR parameters;
  23456. };
  23457. static_assert( sizeof( DisplayModeCreateInfoKHR ) == sizeof( VkDisplayModeCreateInfoKHR ), "struct and wrapper have different size!" );
  23458. struct DisplayModePropertiesKHR
  23459. {
  23460. operator VkDisplayModePropertiesKHR const&() const
  23461. {
  23462. return *reinterpret_cast<const VkDisplayModePropertiesKHR*>( this );
  23463. }
  23464. operator VkDisplayModePropertiesKHR &()
  23465. {
  23466. return *reinterpret_cast<VkDisplayModePropertiesKHR*>( this );
  23467. }
  23468. bool operator==( DisplayModePropertiesKHR const& rhs ) const
  23469. {
  23470. return ( displayMode == rhs.displayMode )
  23471. && ( parameters == rhs.parameters );
  23472. }
  23473. bool operator!=( DisplayModePropertiesKHR const& rhs ) const
  23474. {
  23475. return !operator==( rhs );
  23476. }
  23477. DisplayModeKHR displayMode;
  23478. DisplayModeParametersKHR parameters;
  23479. };
  23480. static_assert( sizeof( DisplayModePropertiesKHR ) == sizeof( VkDisplayModePropertiesKHR ), "struct and wrapper have different size!" );
  23481. struct DisplayModeProperties2KHR
  23482. {
  23483. operator VkDisplayModeProperties2KHR const&() const
  23484. {
  23485. return *reinterpret_cast<const VkDisplayModeProperties2KHR*>( this );
  23486. }
  23487. operator VkDisplayModeProperties2KHR &()
  23488. {
  23489. return *reinterpret_cast<VkDisplayModeProperties2KHR*>( this );
  23490. }
  23491. bool operator==( DisplayModeProperties2KHR const& rhs ) const
  23492. {
  23493. return ( sType == rhs.sType )
  23494. && ( pNext == rhs.pNext )
  23495. && ( displayModeProperties == rhs.displayModeProperties );
  23496. }
  23497. bool operator!=( DisplayModeProperties2KHR const& rhs ) const
  23498. {
  23499. return !operator==( rhs );
  23500. }
  23501. private:
  23502. StructureType sType = StructureType::eDisplayModeProperties2KHR;
  23503. public:
  23504. void* pNext = nullptr;
  23505. DisplayModePropertiesKHR displayModeProperties;
  23506. };
  23507. static_assert( sizeof( DisplayModeProperties2KHR ) == sizeof( VkDisplayModeProperties2KHR ), "struct and wrapper have different size!" );
  23508. struct DisplayNativeHdrSurfaceCapabilitiesAMD
  23509. {
  23510. operator VkDisplayNativeHdrSurfaceCapabilitiesAMD const&() const
  23511. {
  23512. return *reinterpret_cast<const VkDisplayNativeHdrSurfaceCapabilitiesAMD*>( this );
  23513. }
  23514. operator VkDisplayNativeHdrSurfaceCapabilitiesAMD &()
  23515. {
  23516. return *reinterpret_cast<VkDisplayNativeHdrSurfaceCapabilitiesAMD*>( this );
  23517. }
  23518. bool operator==( DisplayNativeHdrSurfaceCapabilitiesAMD const& rhs ) const
  23519. {
  23520. return ( sType == rhs.sType )
  23521. && ( pNext == rhs.pNext )
  23522. && ( localDimmingSupport == rhs.localDimmingSupport );
  23523. }
  23524. bool operator!=( DisplayNativeHdrSurfaceCapabilitiesAMD const& rhs ) const
  23525. {
  23526. return !operator==( rhs );
  23527. }
  23528. private:
  23529. StructureType sType = StructureType::eDisplayNativeHdrSurfaceCapabilitiesAMD;
  23530. public:
  23531. void* pNext = nullptr;
  23532. Bool32 localDimmingSupport;
  23533. };
  23534. static_assert( sizeof( DisplayNativeHdrSurfaceCapabilitiesAMD ) == sizeof( VkDisplayNativeHdrSurfaceCapabilitiesAMD ), "struct and wrapper have different size!" );
  23535. struct DisplayPlaneCapabilitiesKHR
  23536. {
  23537. operator VkDisplayPlaneCapabilitiesKHR const&() const
  23538. {
  23539. return *reinterpret_cast<const VkDisplayPlaneCapabilitiesKHR*>( this );
  23540. }
  23541. operator VkDisplayPlaneCapabilitiesKHR &()
  23542. {
  23543. return *reinterpret_cast<VkDisplayPlaneCapabilitiesKHR*>( this );
  23544. }
  23545. bool operator==( DisplayPlaneCapabilitiesKHR const& rhs ) const
  23546. {
  23547. return ( supportedAlpha == rhs.supportedAlpha )
  23548. && ( minSrcPosition == rhs.minSrcPosition )
  23549. && ( maxSrcPosition == rhs.maxSrcPosition )
  23550. && ( minSrcExtent == rhs.minSrcExtent )
  23551. && ( maxSrcExtent == rhs.maxSrcExtent )
  23552. && ( minDstPosition == rhs.minDstPosition )
  23553. && ( maxDstPosition == rhs.maxDstPosition )
  23554. && ( minDstExtent == rhs.minDstExtent )
  23555. && ( maxDstExtent == rhs.maxDstExtent );
  23556. }
  23557. bool operator!=( DisplayPlaneCapabilitiesKHR const& rhs ) const
  23558. {
  23559. return !operator==( rhs );
  23560. }
  23561. DisplayPlaneAlphaFlagsKHR supportedAlpha;
  23562. Offset2D minSrcPosition;
  23563. Offset2D maxSrcPosition;
  23564. Extent2D minSrcExtent;
  23565. Extent2D maxSrcExtent;
  23566. Offset2D minDstPosition;
  23567. Offset2D maxDstPosition;
  23568. Extent2D minDstExtent;
  23569. Extent2D maxDstExtent;
  23570. };
  23571. static_assert( sizeof( DisplayPlaneCapabilitiesKHR ) == sizeof( VkDisplayPlaneCapabilitiesKHR ), "struct and wrapper have different size!" );
  23572. struct DisplayPlaneCapabilities2KHR
  23573. {
  23574. operator VkDisplayPlaneCapabilities2KHR const&() const
  23575. {
  23576. return *reinterpret_cast<const VkDisplayPlaneCapabilities2KHR*>( this );
  23577. }
  23578. operator VkDisplayPlaneCapabilities2KHR &()
  23579. {
  23580. return *reinterpret_cast<VkDisplayPlaneCapabilities2KHR*>( this );
  23581. }
  23582. bool operator==( DisplayPlaneCapabilities2KHR const& rhs ) const
  23583. {
  23584. return ( sType == rhs.sType )
  23585. && ( pNext == rhs.pNext )
  23586. && ( capabilities == rhs.capabilities );
  23587. }
  23588. bool operator!=( DisplayPlaneCapabilities2KHR const& rhs ) const
  23589. {
  23590. return !operator==( rhs );
  23591. }
  23592. private:
  23593. StructureType sType = StructureType::eDisplayPlaneCapabilities2KHR;
  23594. public:
  23595. void* pNext = nullptr;
  23596. DisplayPlaneCapabilitiesKHR capabilities;
  23597. };
  23598. static_assert( sizeof( DisplayPlaneCapabilities2KHR ) == sizeof( VkDisplayPlaneCapabilities2KHR ), "struct and wrapper have different size!" );
  23599. struct DisplayPlaneInfo2KHR
  23600. {
  23601. DisplayPlaneInfo2KHR( DisplayModeKHR mode_ = DisplayModeKHR(),
  23602. uint32_t planeIndex_ = 0 )
  23603. : mode( mode_ )
  23604. , planeIndex( planeIndex_ )
  23605. {}
  23606. DisplayPlaneInfo2KHR( VkDisplayPlaneInfo2KHR const & rhs )
  23607. {
  23608. *reinterpret_cast<VkDisplayPlaneInfo2KHR*>(this) = rhs;
  23609. }
  23610. DisplayPlaneInfo2KHR& operator=( VkDisplayPlaneInfo2KHR const & rhs )
  23611. {
  23612. *reinterpret_cast<VkDisplayPlaneInfo2KHR*>(this) = rhs;
  23613. return *this;
  23614. }
  23615. DisplayPlaneInfo2KHR & setPNext( const void* pNext_ )
  23616. {
  23617. pNext = pNext_;
  23618. return *this;
  23619. }
  23620. DisplayPlaneInfo2KHR & setMode( DisplayModeKHR mode_ )
  23621. {
  23622. mode = mode_;
  23623. return *this;
  23624. }
  23625. DisplayPlaneInfo2KHR & setPlaneIndex( uint32_t planeIndex_ )
  23626. {
  23627. planeIndex = planeIndex_;
  23628. return *this;
  23629. }
  23630. operator VkDisplayPlaneInfo2KHR const&() const
  23631. {
  23632. return *reinterpret_cast<const VkDisplayPlaneInfo2KHR*>( this );
  23633. }
  23634. operator VkDisplayPlaneInfo2KHR &()
  23635. {
  23636. return *reinterpret_cast<VkDisplayPlaneInfo2KHR*>( this );
  23637. }
  23638. bool operator==( DisplayPlaneInfo2KHR const& rhs ) const
  23639. {
  23640. return ( sType == rhs.sType )
  23641. && ( pNext == rhs.pNext )
  23642. && ( mode == rhs.mode )
  23643. && ( planeIndex == rhs.planeIndex );
  23644. }
  23645. bool operator!=( DisplayPlaneInfo2KHR const& rhs ) const
  23646. {
  23647. return !operator==( rhs );
  23648. }
  23649. private:
  23650. StructureType sType = StructureType::eDisplayPlaneInfo2KHR;
  23651. public:
  23652. const void* pNext = nullptr;
  23653. DisplayModeKHR mode;
  23654. uint32_t planeIndex;
  23655. };
  23656. static_assert( sizeof( DisplayPlaneInfo2KHR ) == sizeof( VkDisplayPlaneInfo2KHR ), "struct and wrapper have different size!" );
  23657. struct DisplayPlanePropertiesKHR
  23658. {
  23659. operator VkDisplayPlanePropertiesKHR const&() const
  23660. {
  23661. return *reinterpret_cast<const VkDisplayPlanePropertiesKHR*>( this );
  23662. }
  23663. operator VkDisplayPlanePropertiesKHR &()
  23664. {
  23665. return *reinterpret_cast<VkDisplayPlanePropertiesKHR*>( this );
  23666. }
  23667. bool operator==( DisplayPlanePropertiesKHR const& rhs ) const
  23668. {
  23669. return ( currentDisplay == rhs.currentDisplay )
  23670. && ( currentStackIndex == rhs.currentStackIndex );
  23671. }
  23672. bool operator!=( DisplayPlanePropertiesKHR const& rhs ) const
  23673. {
  23674. return !operator==( rhs );
  23675. }
  23676. DisplayKHR currentDisplay;
  23677. uint32_t currentStackIndex;
  23678. };
  23679. static_assert( sizeof( DisplayPlanePropertiesKHR ) == sizeof( VkDisplayPlanePropertiesKHR ), "struct and wrapper have different size!" );
  23680. struct DisplayPlaneProperties2KHR
  23681. {
  23682. operator VkDisplayPlaneProperties2KHR const&() const
  23683. {
  23684. return *reinterpret_cast<const VkDisplayPlaneProperties2KHR*>( this );
  23685. }
  23686. operator VkDisplayPlaneProperties2KHR &()
  23687. {
  23688. return *reinterpret_cast<VkDisplayPlaneProperties2KHR*>( this );
  23689. }
  23690. bool operator==( DisplayPlaneProperties2KHR const& rhs ) const
  23691. {
  23692. return ( sType == rhs.sType )
  23693. && ( pNext == rhs.pNext )
  23694. && ( displayPlaneProperties == rhs.displayPlaneProperties );
  23695. }
  23696. bool operator!=( DisplayPlaneProperties2KHR const& rhs ) const
  23697. {
  23698. return !operator==( rhs );
  23699. }
  23700. private:
  23701. StructureType sType = StructureType::eDisplayPlaneProperties2KHR;
  23702. public:
  23703. void* pNext = nullptr;
  23704. DisplayPlanePropertiesKHR displayPlaneProperties;
  23705. };
  23706. static_assert( sizeof( DisplayPlaneProperties2KHR ) == sizeof( VkDisplayPlaneProperties2KHR ), "struct and wrapper have different size!" );
  23707. struct DisplayPowerInfoEXT
  23708. {
  23709. DisplayPowerInfoEXT( DisplayPowerStateEXT powerState_ = DisplayPowerStateEXT::eOff )
  23710. : powerState( powerState_ )
  23711. {}
  23712. DisplayPowerInfoEXT( VkDisplayPowerInfoEXT const & rhs )
  23713. {
  23714. *reinterpret_cast<VkDisplayPowerInfoEXT*>(this) = rhs;
  23715. }
  23716. DisplayPowerInfoEXT& operator=( VkDisplayPowerInfoEXT const & rhs )
  23717. {
  23718. *reinterpret_cast<VkDisplayPowerInfoEXT*>(this) = rhs;
  23719. return *this;
  23720. }
  23721. DisplayPowerInfoEXT & setPNext( const void* pNext_ )
  23722. {
  23723. pNext = pNext_;
  23724. return *this;
  23725. }
  23726. DisplayPowerInfoEXT & setPowerState( DisplayPowerStateEXT powerState_ )
  23727. {
  23728. powerState = powerState_;
  23729. return *this;
  23730. }
  23731. operator VkDisplayPowerInfoEXT const&() const
  23732. {
  23733. return *reinterpret_cast<const VkDisplayPowerInfoEXT*>( this );
  23734. }
  23735. operator VkDisplayPowerInfoEXT &()
  23736. {
  23737. return *reinterpret_cast<VkDisplayPowerInfoEXT*>( this );
  23738. }
  23739. bool operator==( DisplayPowerInfoEXT const& rhs ) const
  23740. {
  23741. return ( sType == rhs.sType )
  23742. && ( pNext == rhs.pNext )
  23743. && ( powerState == rhs.powerState );
  23744. }
  23745. bool operator!=( DisplayPowerInfoEXT const& rhs ) const
  23746. {
  23747. return !operator==( rhs );
  23748. }
  23749. private:
  23750. StructureType sType = StructureType::eDisplayPowerInfoEXT;
  23751. public:
  23752. const void* pNext = nullptr;
  23753. DisplayPowerStateEXT powerState;
  23754. };
  23755. static_assert( sizeof( DisplayPowerInfoEXT ) == sizeof( VkDisplayPowerInfoEXT ), "struct and wrapper have different size!" );
  23756. struct DisplayPresentInfoKHR
  23757. {
  23758. DisplayPresentInfoKHR( Rect2D srcRect_ = Rect2D(),
  23759. Rect2D dstRect_ = Rect2D(),
  23760. Bool32 persistent_ = 0 )
  23761. : srcRect( srcRect_ )
  23762. , dstRect( dstRect_ )
  23763. , persistent( persistent_ )
  23764. {}
  23765. DisplayPresentInfoKHR( VkDisplayPresentInfoKHR const & rhs )
  23766. {
  23767. *reinterpret_cast<VkDisplayPresentInfoKHR*>(this) = rhs;
  23768. }
  23769. DisplayPresentInfoKHR& operator=( VkDisplayPresentInfoKHR const & rhs )
  23770. {
  23771. *reinterpret_cast<VkDisplayPresentInfoKHR*>(this) = rhs;
  23772. return *this;
  23773. }
  23774. DisplayPresentInfoKHR & setPNext( const void* pNext_ )
  23775. {
  23776. pNext = pNext_;
  23777. return *this;
  23778. }
  23779. DisplayPresentInfoKHR & setSrcRect( Rect2D srcRect_ )
  23780. {
  23781. srcRect = srcRect_;
  23782. return *this;
  23783. }
  23784. DisplayPresentInfoKHR & setDstRect( Rect2D dstRect_ )
  23785. {
  23786. dstRect = dstRect_;
  23787. return *this;
  23788. }
  23789. DisplayPresentInfoKHR & setPersistent( Bool32 persistent_ )
  23790. {
  23791. persistent = persistent_;
  23792. return *this;
  23793. }
  23794. operator VkDisplayPresentInfoKHR const&() const
  23795. {
  23796. return *reinterpret_cast<const VkDisplayPresentInfoKHR*>( this );
  23797. }
  23798. operator VkDisplayPresentInfoKHR &()
  23799. {
  23800. return *reinterpret_cast<VkDisplayPresentInfoKHR*>( this );
  23801. }
  23802. bool operator==( DisplayPresentInfoKHR const& rhs ) const
  23803. {
  23804. return ( sType == rhs.sType )
  23805. && ( pNext == rhs.pNext )
  23806. && ( srcRect == rhs.srcRect )
  23807. && ( dstRect == rhs.dstRect )
  23808. && ( persistent == rhs.persistent );
  23809. }
  23810. bool operator!=( DisplayPresentInfoKHR const& rhs ) const
  23811. {
  23812. return !operator==( rhs );
  23813. }
  23814. private:
  23815. StructureType sType = StructureType::eDisplayPresentInfoKHR;
  23816. public:
  23817. const void* pNext = nullptr;
  23818. Rect2D srcRect;
  23819. Rect2D dstRect;
  23820. Bool32 persistent;
  23821. };
  23822. static_assert( sizeof( DisplayPresentInfoKHR ) == sizeof( VkDisplayPresentInfoKHR ), "struct and wrapper have different size!" );
  23823. struct DisplayPropertiesKHR
  23824. {
  23825. operator VkDisplayPropertiesKHR const&() const
  23826. {
  23827. return *reinterpret_cast<const VkDisplayPropertiesKHR*>( this );
  23828. }
  23829. operator VkDisplayPropertiesKHR &()
  23830. {
  23831. return *reinterpret_cast<VkDisplayPropertiesKHR*>( this );
  23832. }
  23833. bool operator==( DisplayPropertiesKHR const& rhs ) const
  23834. {
  23835. return ( display == rhs.display )
  23836. && ( displayName == rhs.displayName )
  23837. && ( physicalDimensions == rhs.physicalDimensions )
  23838. && ( physicalResolution == rhs.physicalResolution )
  23839. && ( supportedTransforms == rhs.supportedTransforms )
  23840. && ( planeReorderPossible == rhs.planeReorderPossible )
  23841. && ( persistentContent == rhs.persistentContent );
  23842. }
  23843. bool operator!=( DisplayPropertiesKHR const& rhs ) const
  23844. {
  23845. return !operator==( rhs );
  23846. }
  23847. DisplayKHR display;
  23848. const char* displayName;
  23849. Extent2D physicalDimensions;
  23850. Extent2D physicalResolution;
  23851. SurfaceTransformFlagsKHR supportedTransforms;
  23852. Bool32 planeReorderPossible;
  23853. Bool32 persistentContent;
  23854. };
  23855. static_assert( sizeof( DisplayPropertiesKHR ) == sizeof( VkDisplayPropertiesKHR ), "struct and wrapper have different size!" );
  23856. struct DisplayProperties2KHR
  23857. {
  23858. operator VkDisplayProperties2KHR const&() const
  23859. {
  23860. return *reinterpret_cast<const VkDisplayProperties2KHR*>( this );
  23861. }
  23862. operator VkDisplayProperties2KHR &()
  23863. {
  23864. return *reinterpret_cast<VkDisplayProperties2KHR*>( this );
  23865. }
  23866. bool operator==( DisplayProperties2KHR const& rhs ) const
  23867. {
  23868. return ( sType == rhs.sType )
  23869. && ( pNext == rhs.pNext )
  23870. && ( displayProperties == rhs.displayProperties );
  23871. }
  23872. bool operator!=( DisplayProperties2KHR const& rhs ) const
  23873. {
  23874. return !operator==( rhs );
  23875. }
  23876. private:
  23877. StructureType sType = StructureType::eDisplayProperties2KHR;
  23878. public:
  23879. void* pNext = nullptr;
  23880. DisplayPropertiesKHR displayProperties;
  23881. };
  23882. static_assert( sizeof( DisplayProperties2KHR ) == sizeof( VkDisplayProperties2KHR ), "struct and wrapper have different size!" );
  23883. struct DisplaySurfaceCreateInfoKHR
  23884. {
  23885. DisplaySurfaceCreateInfoKHR( DisplaySurfaceCreateFlagsKHR flags_ = DisplaySurfaceCreateFlagsKHR(),
  23886. DisplayModeKHR displayMode_ = DisplayModeKHR(),
  23887. uint32_t planeIndex_ = 0,
  23888. uint32_t planeStackIndex_ = 0,
  23889. SurfaceTransformFlagBitsKHR transform_ = SurfaceTransformFlagBitsKHR::eIdentity,
  23890. float globalAlpha_ = 0,
  23891. DisplayPlaneAlphaFlagBitsKHR alphaMode_ = DisplayPlaneAlphaFlagBitsKHR::eOpaque,
  23892. Extent2D imageExtent_ = Extent2D() )
  23893. : flags( flags_ )
  23894. , displayMode( displayMode_ )
  23895. , planeIndex( planeIndex_ )
  23896. , planeStackIndex( planeStackIndex_ )
  23897. , transform( transform_ )
  23898. , globalAlpha( globalAlpha_ )
  23899. , alphaMode( alphaMode_ )
  23900. , imageExtent( imageExtent_ )
  23901. {}
  23902. DisplaySurfaceCreateInfoKHR( VkDisplaySurfaceCreateInfoKHR const & rhs )
  23903. {
  23904. *reinterpret_cast<VkDisplaySurfaceCreateInfoKHR*>(this) = rhs;
  23905. }
  23906. DisplaySurfaceCreateInfoKHR& operator=( VkDisplaySurfaceCreateInfoKHR const & rhs )
  23907. {
  23908. *reinterpret_cast<VkDisplaySurfaceCreateInfoKHR*>(this) = rhs;
  23909. return *this;
  23910. }
  23911. DisplaySurfaceCreateInfoKHR & setPNext( const void* pNext_ )
  23912. {
  23913. pNext = pNext_;
  23914. return *this;
  23915. }
  23916. DisplaySurfaceCreateInfoKHR & setFlags( DisplaySurfaceCreateFlagsKHR flags_ )
  23917. {
  23918. flags = flags_;
  23919. return *this;
  23920. }
  23921. DisplaySurfaceCreateInfoKHR & setDisplayMode( DisplayModeKHR displayMode_ )
  23922. {
  23923. displayMode = displayMode_;
  23924. return *this;
  23925. }
  23926. DisplaySurfaceCreateInfoKHR & setPlaneIndex( uint32_t planeIndex_ )
  23927. {
  23928. planeIndex = planeIndex_;
  23929. return *this;
  23930. }
  23931. DisplaySurfaceCreateInfoKHR & setPlaneStackIndex( uint32_t planeStackIndex_ )
  23932. {
  23933. planeStackIndex = planeStackIndex_;
  23934. return *this;
  23935. }
  23936. DisplaySurfaceCreateInfoKHR & setTransform( SurfaceTransformFlagBitsKHR transform_ )
  23937. {
  23938. transform = transform_;
  23939. return *this;
  23940. }
  23941. DisplaySurfaceCreateInfoKHR & setGlobalAlpha( float globalAlpha_ )
  23942. {
  23943. globalAlpha = globalAlpha_;
  23944. return *this;
  23945. }
  23946. DisplaySurfaceCreateInfoKHR & setAlphaMode( DisplayPlaneAlphaFlagBitsKHR alphaMode_ )
  23947. {
  23948. alphaMode = alphaMode_;
  23949. return *this;
  23950. }
  23951. DisplaySurfaceCreateInfoKHR & setImageExtent( Extent2D imageExtent_ )
  23952. {
  23953. imageExtent = imageExtent_;
  23954. return *this;
  23955. }
  23956. operator VkDisplaySurfaceCreateInfoKHR const&() const
  23957. {
  23958. return *reinterpret_cast<const VkDisplaySurfaceCreateInfoKHR*>( this );
  23959. }
  23960. operator VkDisplaySurfaceCreateInfoKHR &()
  23961. {
  23962. return *reinterpret_cast<VkDisplaySurfaceCreateInfoKHR*>( this );
  23963. }
  23964. bool operator==( DisplaySurfaceCreateInfoKHR const& rhs ) const
  23965. {
  23966. return ( sType == rhs.sType )
  23967. && ( pNext == rhs.pNext )
  23968. && ( flags == rhs.flags )
  23969. && ( displayMode == rhs.displayMode )
  23970. && ( planeIndex == rhs.planeIndex )
  23971. && ( planeStackIndex == rhs.planeStackIndex )
  23972. && ( transform == rhs.transform )
  23973. && ( globalAlpha == rhs.globalAlpha )
  23974. && ( alphaMode == rhs.alphaMode )
  23975. && ( imageExtent == rhs.imageExtent );
  23976. }
  23977. bool operator!=( DisplaySurfaceCreateInfoKHR const& rhs ) const
  23978. {
  23979. return !operator==( rhs );
  23980. }
  23981. private:
  23982. StructureType sType = StructureType::eDisplaySurfaceCreateInfoKHR;
  23983. public:
  23984. const void* pNext = nullptr;
  23985. DisplaySurfaceCreateFlagsKHR flags;
  23986. DisplayModeKHR displayMode;
  23987. uint32_t planeIndex;
  23988. uint32_t planeStackIndex;
  23989. SurfaceTransformFlagBitsKHR transform;
  23990. float globalAlpha;
  23991. DisplayPlaneAlphaFlagBitsKHR alphaMode;
  23992. Extent2D imageExtent;
  23993. };
  23994. static_assert( sizeof( DisplaySurfaceCreateInfoKHR ) == sizeof( VkDisplaySurfaceCreateInfoKHR ), "struct and wrapper have different size!" );
  23995. struct DrawIndexedIndirectCommand
  23996. {
  23997. DrawIndexedIndirectCommand( uint32_t indexCount_ = 0,
  23998. uint32_t instanceCount_ = 0,
  23999. uint32_t firstIndex_ = 0,
  24000. int32_t vertexOffset_ = 0,
  24001. uint32_t firstInstance_ = 0 )
  24002. : indexCount( indexCount_ )
  24003. , instanceCount( instanceCount_ )
  24004. , firstIndex( firstIndex_ )
  24005. , vertexOffset( vertexOffset_ )
  24006. , firstInstance( firstInstance_ )
  24007. {}
  24008. DrawIndexedIndirectCommand( VkDrawIndexedIndirectCommand const & rhs )
  24009. {
  24010. *reinterpret_cast<VkDrawIndexedIndirectCommand*>(this) = rhs;
  24011. }
  24012. DrawIndexedIndirectCommand& operator=( VkDrawIndexedIndirectCommand const & rhs )
  24013. {
  24014. *reinterpret_cast<VkDrawIndexedIndirectCommand*>(this) = rhs;
  24015. return *this;
  24016. }
  24017. DrawIndexedIndirectCommand & setIndexCount( uint32_t indexCount_ )
  24018. {
  24019. indexCount = indexCount_;
  24020. return *this;
  24021. }
  24022. DrawIndexedIndirectCommand & setInstanceCount( uint32_t instanceCount_ )
  24023. {
  24024. instanceCount = instanceCount_;
  24025. return *this;
  24026. }
  24027. DrawIndexedIndirectCommand & setFirstIndex( uint32_t firstIndex_ )
  24028. {
  24029. firstIndex = firstIndex_;
  24030. return *this;
  24031. }
  24032. DrawIndexedIndirectCommand & setVertexOffset( int32_t vertexOffset_ )
  24033. {
  24034. vertexOffset = vertexOffset_;
  24035. return *this;
  24036. }
  24037. DrawIndexedIndirectCommand & setFirstInstance( uint32_t firstInstance_ )
  24038. {
  24039. firstInstance = firstInstance_;
  24040. return *this;
  24041. }
  24042. operator VkDrawIndexedIndirectCommand const&() const
  24043. {
  24044. return *reinterpret_cast<const VkDrawIndexedIndirectCommand*>( this );
  24045. }
  24046. operator VkDrawIndexedIndirectCommand &()
  24047. {
  24048. return *reinterpret_cast<VkDrawIndexedIndirectCommand*>( this );
  24049. }
  24050. bool operator==( DrawIndexedIndirectCommand const& rhs ) const
  24051. {
  24052. return ( indexCount == rhs.indexCount )
  24053. && ( instanceCount == rhs.instanceCount )
  24054. && ( firstIndex == rhs.firstIndex )
  24055. && ( vertexOffset == rhs.vertexOffset )
  24056. && ( firstInstance == rhs.firstInstance );
  24057. }
  24058. bool operator!=( DrawIndexedIndirectCommand const& rhs ) const
  24059. {
  24060. return !operator==( rhs );
  24061. }
  24062. uint32_t indexCount;
  24063. uint32_t instanceCount;
  24064. uint32_t firstIndex;
  24065. int32_t vertexOffset;
  24066. uint32_t firstInstance;
  24067. };
  24068. static_assert( sizeof( DrawIndexedIndirectCommand ) == sizeof( VkDrawIndexedIndirectCommand ), "struct and wrapper have different size!" );
  24069. struct DrawIndirectCommand
  24070. {
  24071. DrawIndirectCommand( uint32_t vertexCount_ = 0,
  24072. uint32_t instanceCount_ = 0,
  24073. uint32_t firstVertex_ = 0,
  24074. uint32_t firstInstance_ = 0 )
  24075. : vertexCount( vertexCount_ )
  24076. , instanceCount( instanceCount_ )
  24077. , firstVertex( firstVertex_ )
  24078. , firstInstance( firstInstance_ )
  24079. {}
  24080. DrawIndirectCommand( VkDrawIndirectCommand const & rhs )
  24081. {
  24082. *reinterpret_cast<VkDrawIndirectCommand*>(this) = rhs;
  24083. }
  24084. DrawIndirectCommand& operator=( VkDrawIndirectCommand const & rhs )
  24085. {
  24086. *reinterpret_cast<VkDrawIndirectCommand*>(this) = rhs;
  24087. return *this;
  24088. }
  24089. DrawIndirectCommand & setVertexCount( uint32_t vertexCount_ )
  24090. {
  24091. vertexCount = vertexCount_;
  24092. return *this;
  24093. }
  24094. DrawIndirectCommand & setInstanceCount( uint32_t instanceCount_ )
  24095. {
  24096. instanceCount = instanceCount_;
  24097. return *this;
  24098. }
  24099. DrawIndirectCommand & setFirstVertex( uint32_t firstVertex_ )
  24100. {
  24101. firstVertex = firstVertex_;
  24102. return *this;
  24103. }
  24104. DrawIndirectCommand & setFirstInstance( uint32_t firstInstance_ )
  24105. {
  24106. firstInstance = firstInstance_;
  24107. return *this;
  24108. }
  24109. operator VkDrawIndirectCommand const&() const
  24110. {
  24111. return *reinterpret_cast<const VkDrawIndirectCommand*>( this );
  24112. }
  24113. operator VkDrawIndirectCommand &()
  24114. {
  24115. return *reinterpret_cast<VkDrawIndirectCommand*>( this );
  24116. }
  24117. bool operator==( DrawIndirectCommand const& rhs ) const
  24118. {
  24119. return ( vertexCount == rhs.vertexCount )
  24120. && ( instanceCount == rhs.instanceCount )
  24121. && ( firstVertex == rhs.firstVertex )
  24122. && ( firstInstance == rhs.firstInstance );
  24123. }
  24124. bool operator!=( DrawIndirectCommand const& rhs ) const
  24125. {
  24126. return !operator==( rhs );
  24127. }
  24128. uint32_t vertexCount;
  24129. uint32_t instanceCount;
  24130. uint32_t firstVertex;
  24131. uint32_t firstInstance;
  24132. };
  24133. static_assert( sizeof( DrawIndirectCommand ) == sizeof( VkDrawIndirectCommand ), "struct and wrapper have different size!" );
  24134. struct DrawMeshTasksIndirectCommandNV
  24135. {
  24136. DrawMeshTasksIndirectCommandNV( uint32_t taskCount_ = 0,
  24137. uint32_t firstTask_ = 0 )
  24138. : taskCount( taskCount_ )
  24139. , firstTask( firstTask_ )
  24140. {}
  24141. DrawMeshTasksIndirectCommandNV( VkDrawMeshTasksIndirectCommandNV const & rhs )
  24142. {
  24143. *reinterpret_cast<VkDrawMeshTasksIndirectCommandNV*>(this) = rhs;
  24144. }
  24145. DrawMeshTasksIndirectCommandNV& operator=( VkDrawMeshTasksIndirectCommandNV const & rhs )
  24146. {
  24147. *reinterpret_cast<VkDrawMeshTasksIndirectCommandNV*>(this) = rhs;
  24148. return *this;
  24149. }
  24150. DrawMeshTasksIndirectCommandNV & setTaskCount( uint32_t taskCount_ )
  24151. {
  24152. taskCount = taskCount_;
  24153. return *this;
  24154. }
  24155. DrawMeshTasksIndirectCommandNV & setFirstTask( uint32_t firstTask_ )
  24156. {
  24157. firstTask = firstTask_;
  24158. return *this;
  24159. }
  24160. operator VkDrawMeshTasksIndirectCommandNV const&() const
  24161. {
  24162. return *reinterpret_cast<const VkDrawMeshTasksIndirectCommandNV*>( this );
  24163. }
  24164. operator VkDrawMeshTasksIndirectCommandNV &()
  24165. {
  24166. return *reinterpret_cast<VkDrawMeshTasksIndirectCommandNV*>( this );
  24167. }
  24168. bool operator==( DrawMeshTasksIndirectCommandNV const& rhs ) const
  24169. {
  24170. return ( taskCount == rhs.taskCount )
  24171. && ( firstTask == rhs.firstTask );
  24172. }
  24173. bool operator!=( DrawMeshTasksIndirectCommandNV const& rhs ) const
  24174. {
  24175. return !operator==( rhs );
  24176. }
  24177. uint32_t taskCount;
  24178. uint32_t firstTask;
  24179. };
  24180. static_assert( sizeof( DrawMeshTasksIndirectCommandNV ) == sizeof( VkDrawMeshTasksIndirectCommandNV ), "struct and wrapper have different size!" );
  24181. struct DrmFormatModifierPropertiesEXT
  24182. {
  24183. operator VkDrmFormatModifierPropertiesEXT const&() const
  24184. {
  24185. return *reinterpret_cast<const VkDrmFormatModifierPropertiesEXT*>( this );
  24186. }
  24187. operator VkDrmFormatModifierPropertiesEXT &()
  24188. {
  24189. return *reinterpret_cast<VkDrmFormatModifierPropertiesEXT*>( this );
  24190. }
  24191. bool operator==( DrmFormatModifierPropertiesEXT const& rhs ) const
  24192. {
  24193. return ( drmFormatModifier == rhs.drmFormatModifier )
  24194. && ( drmFormatModifierPlaneCount == rhs.drmFormatModifierPlaneCount )
  24195. && ( drmFormatModifierTilingFeatures == rhs.drmFormatModifierTilingFeatures );
  24196. }
  24197. bool operator!=( DrmFormatModifierPropertiesEXT const& rhs ) const
  24198. {
  24199. return !operator==( rhs );
  24200. }
  24201. uint64_t drmFormatModifier;
  24202. uint32_t drmFormatModifierPlaneCount;
  24203. FormatFeatureFlags drmFormatModifierTilingFeatures;
  24204. };
  24205. static_assert( sizeof( DrmFormatModifierPropertiesEXT ) == sizeof( VkDrmFormatModifierPropertiesEXT ), "struct and wrapper have different size!" );
  24206. struct DrmFormatModifierPropertiesListEXT
  24207. {
  24208. operator VkDrmFormatModifierPropertiesListEXT const&() const
  24209. {
  24210. return *reinterpret_cast<const VkDrmFormatModifierPropertiesListEXT*>( this );
  24211. }
  24212. operator VkDrmFormatModifierPropertiesListEXT &()
  24213. {
  24214. return *reinterpret_cast<VkDrmFormatModifierPropertiesListEXT*>( this );
  24215. }
  24216. bool operator==( DrmFormatModifierPropertiesListEXT const& rhs ) const
  24217. {
  24218. return ( sType == rhs.sType )
  24219. && ( pNext == rhs.pNext )
  24220. && ( drmFormatModifierCount == rhs.drmFormatModifierCount )
  24221. && ( pDrmFormatModifierProperties == rhs.pDrmFormatModifierProperties );
  24222. }
  24223. bool operator!=( DrmFormatModifierPropertiesListEXT const& rhs ) const
  24224. {
  24225. return !operator==( rhs );
  24226. }
  24227. private:
  24228. StructureType sType = StructureType::eDrmFormatModifierPropertiesListEXT;
  24229. public:
  24230. void* pNext = nullptr;
  24231. uint32_t drmFormatModifierCount;
  24232. DrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties;
  24233. };
  24234. static_assert( sizeof( DrmFormatModifierPropertiesListEXT ) == sizeof( VkDrmFormatModifierPropertiesListEXT ), "struct and wrapper have different size!" );
  24235. struct EventCreateInfo
  24236. {
  24237. EventCreateInfo( EventCreateFlags flags_ = EventCreateFlags() )
  24238. : flags( flags_ )
  24239. {}
  24240. EventCreateInfo( VkEventCreateInfo const & rhs )
  24241. {
  24242. *reinterpret_cast<VkEventCreateInfo*>(this) = rhs;
  24243. }
  24244. EventCreateInfo& operator=( VkEventCreateInfo const & rhs )
  24245. {
  24246. *reinterpret_cast<VkEventCreateInfo*>(this) = rhs;
  24247. return *this;
  24248. }
  24249. EventCreateInfo & setPNext( const void* pNext_ )
  24250. {
  24251. pNext = pNext_;
  24252. return *this;
  24253. }
  24254. EventCreateInfo & setFlags( EventCreateFlags flags_ )
  24255. {
  24256. flags = flags_;
  24257. return *this;
  24258. }
  24259. operator VkEventCreateInfo const&() const
  24260. {
  24261. return *reinterpret_cast<const VkEventCreateInfo*>( this );
  24262. }
  24263. operator VkEventCreateInfo &()
  24264. {
  24265. return *reinterpret_cast<VkEventCreateInfo*>( this );
  24266. }
  24267. bool operator==( EventCreateInfo const& rhs ) const
  24268. {
  24269. return ( sType == rhs.sType )
  24270. && ( pNext == rhs.pNext )
  24271. && ( flags == rhs.flags );
  24272. }
  24273. bool operator!=( EventCreateInfo const& rhs ) const
  24274. {
  24275. return !operator==( rhs );
  24276. }
  24277. private:
  24278. StructureType sType = StructureType::eEventCreateInfo;
  24279. public:
  24280. const void* pNext = nullptr;
  24281. EventCreateFlags flags;
  24282. };
  24283. static_assert( sizeof( EventCreateInfo ) == sizeof( VkEventCreateInfo ), "struct and wrapper have different size!" );
  24284. struct ExportFenceCreateInfo
  24285. {
  24286. ExportFenceCreateInfo( ExternalFenceHandleTypeFlags handleTypes_ = ExternalFenceHandleTypeFlags() )
  24287. : handleTypes( handleTypes_ )
  24288. {}
  24289. ExportFenceCreateInfo( VkExportFenceCreateInfo const & rhs )
  24290. {
  24291. *reinterpret_cast<VkExportFenceCreateInfo*>(this) = rhs;
  24292. }
  24293. ExportFenceCreateInfo& operator=( VkExportFenceCreateInfo const & rhs )
  24294. {
  24295. *reinterpret_cast<VkExportFenceCreateInfo*>(this) = rhs;
  24296. return *this;
  24297. }
  24298. ExportFenceCreateInfo & setPNext( const void* pNext_ )
  24299. {
  24300. pNext = pNext_;
  24301. return *this;
  24302. }
  24303. ExportFenceCreateInfo & setHandleTypes( ExternalFenceHandleTypeFlags handleTypes_ )
  24304. {
  24305. handleTypes = handleTypes_;
  24306. return *this;
  24307. }
  24308. operator VkExportFenceCreateInfo const&() const
  24309. {
  24310. return *reinterpret_cast<const VkExportFenceCreateInfo*>( this );
  24311. }
  24312. operator VkExportFenceCreateInfo &()
  24313. {
  24314. return *reinterpret_cast<VkExportFenceCreateInfo*>( this );
  24315. }
  24316. bool operator==( ExportFenceCreateInfo const& rhs ) const
  24317. {
  24318. return ( sType == rhs.sType )
  24319. && ( pNext == rhs.pNext )
  24320. && ( handleTypes == rhs.handleTypes );
  24321. }
  24322. bool operator!=( ExportFenceCreateInfo const& rhs ) const
  24323. {
  24324. return !operator==( rhs );
  24325. }
  24326. private:
  24327. StructureType sType = StructureType::eExportFenceCreateInfo;
  24328. public:
  24329. const void* pNext = nullptr;
  24330. ExternalFenceHandleTypeFlags handleTypes;
  24331. };
  24332. static_assert( sizeof( ExportFenceCreateInfo ) == sizeof( VkExportFenceCreateInfo ), "struct and wrapper have different size!" );
  24333. #ifdef VK_USE_PLATFORM_WIN32_KHR
  24334. struct ExportFenceWin32HandleInfoKHR
  24335. {
  24336. ExportFenceWin32HandleInfoKHR( const SECURITY_ATTRIBUTES* pAttributes_ = nullptr,
  24337. DWORD dwAccess_ = 0,
  24338. LPCWSTR name_ = nullptr )
  24339. : pAttributes( pAttributes_ )
  24340. , dwAccess( dwAccess_ )
  24341. , name( name_ )
  24342. {}
  24343. ExportFenceWin32HandleInfoKHR( VkExportFenceWin32HandleInfoKHR const & rhs )
  24344. {
  24345. *reinterpret_cast<VkExportFenceWin32HandleInfoKHR*>(this) = rhs;
  24346. }
  24347. ExportFenceWin32HandleInfoKHR& operator=( VkExportFenceWin32HandleInfoKHR const & rhs )
  24348. {
  24349. *reinterpret_cast<VkExportFenceWin32HandleInfoKHR*>(this) = rhs;
  24350. return *this;
  24351. }
  24352. ExportFenceWin32HandleInfoKHR & setPNext( const void* pNext_ )
  24353. {
  24354. pNext = pNext_;
  24355. return *this;
  24356. }
  24357. ExportFenceWin32HandleInfoKHR & setPAttributes( const SECURITY_ATTRIBUTES* pAttributes_ )
  24358. {
  24359. pAttributes = pAttributes_;
  24360. return *this;
  24361. }
  24362. ExportFenceWin32HandleInfoKHR & setDwAccess( DWORD dwAccess_ )
  24363. {
  24364. dwAccess = dwAccess_;
  24365. return *this;
  24366. }
  24367. ExportFenceWin32HandleInfoKHR & setName( LPCWSTR name_ )
  24368. {
  24369. name = name_;
  24370. return *this;
  24371. }
  24372. operator VkExportFenceWin32HandleInfoKHR const&() const
  24373. {
  24374. return *reinterpret_cast<const VkExportFenceWin32HandleInfoKHR*>( this );
  24375. }
  24376. operator VkExportFenceWin32HandleInfoKHR &()
  24377. {
  24378. return *reinterpret_cast<VkExportFenceWin32HandleInfoKHR*>( this );
  24379. }
  24380. bool operator==( ExportFenceWin32HandleInfoKHR const& rhs ) const
  24381. {
  24382. return ( sType == rhs.sType )
  24383. && ( pNext == rhs.pNext )
  24384. && ( pAttributes == rhs.pAttributes )
  24385. && ( dwAccess == rhs.dwAccess )
  24386. && ( name == rhs.name );
  24387. }
  24388. bool operator!=( ExportFenceWin32HandleInfoKHR const& rhs ) const
  24389. {
  24390. return !operator==( rhs );
  24391. }
  24392. private:
  24393. StructureType sType = StructureType::eExportFenceWin32HandleInfoKHR;
  24394. public:
  24395. const void* pNext = nullptr;
  24396. const SECURITY_ATTRIBUTES* pAttributes;
  24397. DWORD dwAccess;
  24398. LPCWSTR name;
  24399. };
  24400. static_assert( sizeof( ExportFenceWin32HandleInfoKHR ) == sizeof( VkExportFenceWin32HandleInfoKHR ), "struct and wrapper have different size!" );
  24401. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  24402. struct ExportMemoryAllocateInfo
  24403. {
  24404. ExportMemoryAllocateInfo( ExternalMemoryHandleTypeFlags handleTypes_ = ExternalMemoryHandleTypeFlags() )
  24405. : handleTypes( handleTypes_ )
  24406. {}
  24407. ExportMemoryAllocateInfo( VkExportMemoryAllocateInfo const & rhs )
  24408. {
  24409. *reinterpret_cast<VkExportMemoryAllocateInfo*>(this) = rhs;
  24410. }
  24411. ExportMemoryAllocateInfo& operator=( VkExportMemoryAllocateInfo const & rhs )
  24412. {
  24413. *reinterpret_cast<VkExportMemoryAllocateInfo*>(this) = rhs;
  24414. return *this;
  24415. }
  24416. ExportMemoryAllocateInfo & setPNext( const void* pNext_ )
  24417. {
  24418. pNext = pNext_;
  24419. return *this;
  24420. }
  24421. ExportMemoryAllocateInfo & setHandleTypes( ExternalMemoryHandleTypeFlags handleTypes_ )
  24422. {
  24423. handleTypes = handleTypes_;
  24424. return *this;
  24425. }
  24426. operator VkExportMemoryAllocateInfo const&() const
  24427. {
  24428. return *reinterpret_cast<const VkExportMemoryAllocateInfo*>( this );
  24429. }
  24430. operator VkExportMemoryAllocateInfo &()
  24431. {
  24432. return *reinterpret_cast<VkExportMemoryAllocateInfo*>( this );
  24433. }
  24434. bool operator==( ExportMemoryAllocateInfo const& rhs ) const
  24435. {
  24436. return ( sType == rhs.sType )
  24437. && ( pNext == rhs.pNext )
  24438. && ( handleTypes == rhs.handleTypes );
  24439. }
  24440. bool operator!=( ExportMemoryAllocateInfo const& rhs ) const
  24441. {
  24442. return !operator==( rhs );
  24443. }
  24444. private:
  24445. StructureType sType = StructureType::eExportMemoryAllocateInfo;
  24446. public:
  24447. const void* pNext = nullptr;
  24448. ExternalMemoryHandleTypeFlags handleTypes;
  24449. };
  24450. static_assert( sizeof( ExportMemoryAllocateInfo ) == sizeof( VkExportMemoryAllocateInfo ), "struct and wrapper have different size!" );
  24451. struct ExportMemoryAllocateInfoNV
  24452. {
  24453. ExportMemoryAllocateInfoNV( ExternalMemoryHandleTypeFlagsNV handleTypes_ = ExternalMemoryHandleTypeFlagsNV() )
  24454. : handleTypes( handleTypes_ )
  24455. {}
  24456. ExportMemoryAllocateInfoNV( VkExportMemoryAllocateInfoNV const & rhs )
  24457. {
  24458. *reinterpret_cast<VkExportMemoryAllocateInfoNV*>(this) = rhs;
  24459. }
  24460. ExportMemoryAllocateInfoNV& operator=( VkExportMemoryAllocateInfoNV const & rhs )
  24461. {
  24462. *reinterpret_cast<VkExportMemoryAllocateInfoNV*>(this) = rhs;
  24463. return *this;
  24464. }
  24465. ExportMemoryAllocateInfoNV & setPNext( const void* pNext_ )
  24466. {
  24467. pNext = pNext_;
  24468. return *this;
  24469. }
  24470. ExportMemoryAllocateInfoNV & setHandleTypes( ExternalMemoryHandleTypeFlagsNV handleTypes_ )
  24471. {
  24472. handleTypes = handleTypes_;
  24473. return *this;
  24474. }
  24475. operator VkExportMemoryAllocateInfoNV const&() const
  24476. {
  24477. return *reinterpret_cast<const VkExportMemoryAllocateInfoNV*>( this );
  24478. }
  24479. operator VkExportMemoryAllocateInfoNV &()
  24480. {
  24481. return *reinterpret_cast<VkExportMemoryAllocateInfoNV*>( this );
  24482. }
  24483. bool operator==( ExportMemoryAllocateInfoNV const& rhs ) const
  24484. {
  24485. return ( sType == rhs.sType )
  24486. && ( pNext == rhs.pNext )
  24487. && ( handleTypes == rhs.handleTypes );
  24488. }
  24489. bool operator!=( ExportMemoryAllocateInfoNV const& rhs ) const
  24490. {
  24491. return !operator==( rhs );
  24492. }
  24493. private:
  24494. StructureType sType = StructureType::eExportMemoryAllocateInfoNV;
  24495. public:
  24496. const void* pNext = nullptr;
  24497. ExternalMemoryHandleTypeFlagsNV handleTypes;
  24498. };
  24499. static_assert( sizeof( ExportMemoryAllocateInfoNV ) == sizeof( VkExportMemoryAllocateInfoNV ), "struct and wrapper have different size!" );
  24500. #ifdef VK_USE_PLATFORM_WIN32_KHR
  24501. struct ExportMemoryWin32HandleInfoKHR
  24502. {
  24503. ExportMemoryWin32HandleInfoKHR( const SECURITY_ATTRIBUTES* pAttributes_ = nullptr,
  24504. DWORD dwAccess_ = 0,
  24505. LPCWSTR name_ = nullptr )
  24506. : pAttributes( pAttributes_ )
  24507. , dwAccess( dwAccess_ )
  24508. , name( name_ )
  24509. {}
  24510. ExportMemoryWin32HandleInfoKHR( VkExportMemoryWin32HandleInfoKHR const & rhs )
  24511. {
  24512. *reinterpret_cast<VkExportMemoryWin32HandleInfoKHR*>(this) = rhs;
  24513. }
  24514. ExportMemoryWin32HandleInfoKHR& operator=( VkExportMemoryWin32HandleInfoKHR const & rhs )
  24515. {
  24516. *reinterpret_cast<VkExportMemoryWin32HandleInfoKHR*>(this) = rhs;
  24517. return *this;
  24518. }
  24519. ExportMemoryWin32HandleInfoKHR & setPNext( const void* pNext_ )
  24520. {
  24521. pNext = pNext_;
  24522. return *this;
  24523. }
  24524. ExportMemoryWin32HandleInfoKHR & setPAttributes( const SECURITY_ATTRIBUTES* pAttributes_ )
  24525. {
  24526. pAttributes = pAttributes_;
  24527. return *this;
  24528. }
  24529. ExportMemoryWin32HandleInfoKHR & setDwAccess( DWORD dwAccess_ )
  24530. {
  24531. dwAccess = dwAccess_;
  24532. return *this;
  24533. }
  24534. ExportMemoryWin32HandleInfoKHR & setName( LPCWSTR name_ )
  24535. {
  24536. name = name_;
  24537. return *this;
  24538. }
  24539. operator VkExportMemoryWin32HandleInfoKHR const&() const
  24540. {
  24541. return *reinterpret_cast<const VkExportMemoryWin32HandleInfoKHR*>( this );
  24542. }
  24543. operator VkExportMemoryWin32HandleInfoKHR &()
  24544. {
  24545. return *reinterpret_cast<VkExportMemoryWin32HandleInfoKHR*>( this );
  24546. }
  24547. bool operator==( ExportMemoryWin32HandleInfoKHR const& rhs ) const
  24548. {
  24549. return ( sType == rhs.sType )
  24550. && ( pNext == rhs.pNext )
  24551. && ( pAttributes == rhs.pAttributes )
  24552. && ( dwAccess == rhs.dwAccess )
  24553. && ( name == rhs.name );
  24554. }
  24555. bool operator!=( ExportMemoryWin32HandleInfoKHR const& rhs ) const
  24556. {
  24557. return !operator==( rhs );
  24558. }
  24559. private:
  24560. StructureType sType = StructureType::eExportMemoryWin32HandleInfoKHR;
  24561. public:
  24562. const void* pNext = nullptr;
  24563. const SECURITY_ATTRIBUTES* pAttributes;
  24564. DWORD dwAccess;
  24565. LPCWSTR name;
  24566. };
  24567. static_assert( sizeof( ExportMemoryWin32HandleInfoKHR ) == sizeof( VkExportMemoryWin32HandleInfoKHR ), "struct and wrapper have different size!" );
  24568. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  24569. #ifdef VK_USE_PLATFORM_WIN32_KHR
  24570. struct ExportMemoryWin32HandleInfoNV
  24571. {
  24572. ExportMemoryWin32HandleInfoNV( const SECURITY_ATTRIBUTES* pAttributes_ = nullptr,
  24573. DWORD dwAccess_ = 0 )
  24574. : pAttributes( pAttributes_ )
  24575. , dwAccess( dwAccess_ )
  24576. {}
  24577. ExportMemoryWin32HandleInfoNV( VkExportMemoryWin32HandleInfoNV const & rhs )
  24578. {
  24579. *reinterpret_cast<VkExportMemoryWin32HandleInfoNV*>(this) = rhs;
  24580. }
  24581. ExportMemoryWin32HandleInfoNV& operator=( VkExportMemoryWin32HandleInfoNV const & rhs )
  24582. {
  24583. *reinterpret_cast<VkExportMemoryWin32HandleInfoNV*>(this) = rhs;
  24584. return *this;
  24585. }
  24586. ExportMemoryWin32HandleInfoNV & setPNext( const void* pNext_ )
  24587. {
  24588. pNext = pNext_;
  24589. return *this;
  24590. }
  24591. ExportMemoryWin32HandleInfoNV & setPAttributes( const SECURITY_ATTRIBUTES* pAttributes_ )
  24592. {
  24593. pAttributes = pAttributes_;
  24594. return *this;
  24595. }
  24596. ExportMemoryWin32HandleInfoNV & setDwAccess( DWORD dwAccess_ )
  24597. {
  24598. dwAccess = dwAccess_;
  24599. return *this;
  24600. }
  24601. operator VkExportMemoryWin32HandleInfoNV const&() const
  24602. {
  24603. return *reinterpret_cast<const VkExportMemoryWin32HandleInfoNV*>( this );
  24604. }
  24605. operator VkExportMemoryWin32HandleInfoNV &()
  24606. {
  24607. return *reinterpret_cast<VkExportMemoryWin32HandleInfoNV*>( this );
  24608. }
  24609. bool operator==( ExportMemoryWin32HandleInfoNV const& rhs ) const
  24610. {
  24611. return ( sType == rhs.sType )
  24612. && ( pNext == rhs.pNext )
  24613. && ( pAttributes == rhs.pAttributes )
  24614. && ( dwAccess == rhs.dwAccess );
  24615. }
  24616. bool operator!=( ExportMemoryWin32HandleInfoNV const& rhs ) const
  24617. {
  24618. return !operator==( rhs );
  24619. }
  24620. private:
  24621. StructureType sType = StructureType::eExportMemoryWin32HandleInfoNV;
  24622. public:
  24623. const void* pNext = nullptr;
  24624. const SECURITY_ATTRIBUTES* pAttributes;
  24625. DWORD dwAccess;
  24626. };
  24627. static_assert( sizeof( ExportMemoryWin32HandleInfoNV ) == sizeof( VkExportMemoryWin32HandleInfoNV ), "struct and wrapper have different size!" );
  24628. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  24629. struct ExportSemaphoreCreateInfo
  24630. {
  24631. ExportSemaphoreCreateInfo( ExternalSemaphoreHandleTypeFlags handleTypes_ = ExternalSemaphoreHandleTypeFlags() )
  24632. : handleTypes( handleTypes_ )
  24633. {}
  24634. ExportSemaphoreCreateInfo( VkExportSemaphoreCreateInfo const & rhs )
  24635. {
  24636. *reinterpret_cast<VkExportSemaphoreCreateInfo*>(this) = rhs;
  24637. }
  24638. ExportSemaphoreCreateInfo& operator=( VkExportSemaphoreCreateInfo const & rhs )
  24639. {
  24640. *reinterpret_cast<VkExportSemaphoreCreateInfo*>(this) = rhs;
  24641. return *this;
  24642. }
  24643. ExportSemaphoreCreateInfo & setPNext( const void* pNext_ )
  24644. {
  24645. pNext = pNext_;
  24646. return *this;
  24647. }
  24648. ExportSemaphoreCreateInfo & setHandleTypes( ExternalSemaphoreHandleTypeFlags handleTypes_ )
  24649. {
  24650. handleTypes = handleTypes_;
  24651. return *this;
  24652. }
  24653. operator VkExportSemaphoreCreateInfo const&() const
  24654. {
  24655. return *reinterpret_cast<const VkExportSemaphoreCreateInfo*>( this );
  24656. }
  24657. operator VkExportSemaphoreCreateInfo &()
  24658. {
  24659. return *reinterpret_cast<VkExportSemaphoreCreateInfo*>( this );
  24660. }
  24661. bool operator==( ExportSemaphoreCreateInfo const& rhs ) const
  24662. {
  24663. return ( sType == rhs.sType )
  24664. && ( pNext == rhs.pNext )
  24665. && ( handleTypes == rhs.handleTypes );
  24666. }
  24667. bool operator!=( ExportSemaphoreCreateInfo const& rhs ) const
  24668. {
  24669. return !operator==( rhs );
  24670. }
  24671. private:
  24672. StructureType sType = StructureType::eExportSemaphoreCreateInfo;
  24673. public:
  24674. const void* pNext = nullptr;
  24675. ExternalSemaphoreHandleTypeFlags handleTypes;
  24676. };
  24677. static_assert( sizeof( ExportSemaphoreCreateInfo ) == sizeof( VkExportSemaphoreCreateInfo ), "struct and wrapper have different size!" );
  24678. #ifdef VK_USE_PLATFORM_WIN32_KHR
  24679. struct ExportSemaphoreWin32HandleInfoKHR
  24680. {
  24681. ExportSemaphoreWin32HandleInfoKHR( const SECURITY_ATTRIBUTES* pAttributes_ = nullptr,
  24682. DWORD dwAccess_ = 0,
  24683. LPCWSTR name_ = nullptr )
  24684. : pAttributes( pAttributes_ )
  24685. , dwAccess( dwAccess_ )
  24686. , name( name_ )
  24687. {}
  24688. ExportSemaphoreWin32HandleInfoKHR( VkExportSemaphoreWin32HandleInfoKHR const & rhs )
  24689. {
  24690. *reinterpret_cast<VkExportSemaphoreWin32HandleInfoKHR*>(this) = rhs;
  24691. }
  24692. ExportSemaphoreWin32HandleInfoKHR& operator=( VkExportSemaphoreWin32HandleInfoKHR const & rhs )
  24693. {
  24694. *reinterpret_cast<VkExportSemaphoreWin32HandleInfoKHR*>(this) = rhs;
  24695. return *this;
  24696. }
  24697. ExportSemaphoreWin32HandleInfoKHR & setPNext( const void* pNext_ )
  24698. {
  24699. pNext = pNext_;
  24700. return *this;
  24701. }
  24702. ExportSemaphoreWin32HandleInfoKHR & setPAttributes( const SECURITY_ATTRIBUTES* pAttributes_ )
  24703. {
  24704. pAttributes = pAttributes_;
  24705. return *this;
  24706. }
  24707. ExportSemaphoreWin32HandleInfoKHR & setDwAccess( DWORD dwAccess_ )
  24708. {
  24709. dwAccess = dwAccess_;
  24710. return *this;
  24711. }
  24712. ExportSemaphoreWin32HandleInfoKHR & setName( LPCWSTR name_ )
  24713. {
  24714. name = name_;
  24715. return *this;
  24716. }
  24717. operator VkExportSemaphoreWin32HandleInfoKHR const&() const
  24718. {
  24719. return *reinterpret_cast<const VkExportSemaphoreWin32HandleInfoKHR*>( this );
  24720. }
  24721. operator VkExportSemaphoreWin32HandleInfoKHR &()
  24722. {
  24723. return *reinterpret_cast<VkExportSemaphoreWin32HandleInfoKHR*>( this );
  24724. }
  24725. bool operator==( ExportSemaphoreWin32HandleInfoKHR const& rhs ) const
  24726. {
  24727. return ( sType == rhs.sType )
  24728. && ( pNext == rhs.pNext )
  24729. && ( pAttributes == rhs.pAttributes )
  24730. && ( dwAccess == rhs.dwAccess )
  24731. && ( name == rhs.name );
  24732. }
  24733. bool operator!=( ExportSemaphoreWin32HandleInfoKHR const& rhs ) const
  24734. {
  24735. return !operator==( rhs );
  24736. }
  24737. private:
  24738. StructureType sType = StructureType::eExportSemaphoreWin32HandleInfoKHR;
  24739. public:
  24740. const void* pNext = nullptr;
  24741. const SECURITY_ATTRIBUTES* pAttributes;
  24742. DWORD dwAccess;
  24743. LPCWSTR name;
  24744. };
  24745. static_assert( sizeof( ExportSemaphoreWin32HandleInfoKHR ) == sizeof( VkExportSemaphoreWin32HandleInfoKHR ), "struct and wrapper have different size!" );
  24746. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  24747. struct ExtensionProperties
  24748. {
  24749. operator VkExtensionProperties const&() const
  24750. {
  24751. return *reinterpret_cast<const VkExtensionProperties*>( this );
  24752. }
  24753. operator VkExtensionProperties &()
  24754. {
  24755. return *reinterpret_cast<VkExtensionProperties*>( this );
  24756. }
  24757. bool operator==( ExtensionProperties const& rhs ) const
  24758. {
  24759. return ( memcmp( extensionName, rhs.extensionName, VK_MAX_EXTENSION_NAME_SIZE * sizeof( char ) ) == 0 )
  24760. && ( specVersion == rhs.specVersion );
  24761. }
  24762. bool operator!=( ExtensionProperties const& rhs ) const
  24763. {
  24764. return !operator==( rhs );
  24765. }
  24766. char extensionName[VK_MAX_EXTENSION_NAME_SIZE];
  24767. uint32_t specVersion;
  24768. };
  24769. static_assert( sizeof( ExtensionProperties ) == sizeof( VkExtensionProperties ), "struct and wrapper have different size!" );
  24770. struct ExternalMemoryProperties
  24771. {
  24772. operator VkExternalMemoryProperties const&() const
  24773. {
  24774. return *reinterpret_cast<const VkExternalMemoryProperties*>( this );
  24775. }
  24776. operator VkExternalMemoryProperties &()
  24777. {
  24778. return *reinterpret_cast<VkExternalMemoryProperties*>( this );
  24779. }
  24780. bool operator==( ExternalMemoryProperties const& rhs ) const
  24781. {
  24782. return ( externalMemoryFeatures == rhs.externalMemoryFeatures )
  24783. && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes )
  24784. && ( compatibleHandleTypes == rhs.compatibleHandleTypes );
  24785. }
  24786. bool operator!=( ExternalMemoryProperties const& rhs ) const
  24787. {
  24788. return !operator==( rhs );
  24789. }
  24790. ExternalMemoryFeatureFlags externalMemoryFeatures;
  24791. ExternalMemoryHandleTypeFlags exportFromImportedHandleTypes;
  24792. ExternalMemoryHandleTypeFlags compatibleHandleTypes;
  24793. };
  24794. static_assert( sizeof( ExternalMemoryProperties ) == sizeof( VkExternalMemoryProperties ), "struct and wrapper have different size!" );
  24795. struct ExternalBufferProperties
  24796. {
  24797. operator VkExternalBufferProperties const&() const
  24798. {
  24799. return *reinterpret_cast<const VkExternalBufferProperties*>( this );
  24800. }
  24801. operator VkExternalBufferProperties &()
  24802. {
  24803. return *reinterpret_cast<VkExternalBufferProperties*>( this );
  24804. }
  24805. bool operator==( ExternalBufferProperties const& rhs ) const
  24806. {
  24807. return ( sType == rhs.sType )
  24808. && ( pNext == rhs.pNext )
  24809. && ( externalMemoryProperties == rhs.externalMemoryProperties );
  24810. }
  24811. bool operator!=( ExternalBufferProperties const& rhs ) const
  24812. {
  24813. return !operator==( rhs );
  24814. }
  24815. private:
  24816. StructureType sType = StructureType::eExternalBufferProperties;
  24817. public:
  24818. void* pNext = nullptr;
  24819. ExternalMemoryProperties externalMemoryProperties;
  24820. };
  24821. static_assert( sizeof( ExternalBufferProperties ) == sizeof( VkExternalBufferProperties ), "struct and wrapper have different size!" );
  24822. struct ExternalFenceProperties
  24823. {
  24824. operator VkExternalFenceProperties const&() const
  24825. {
  24826. return *reinterpret_cast<const VkExternalFenceProperties*>( this );
  24827. }
  24828. operator VkExternalFenceProperties &()
  24829. {
  24830. return *reinterpret_cast<VkExternalFenceProperties*>( this );
  24831. }
  24832. bool operator==( ExternalFenceProperties const& rhs ) const
  24833. {
  24834. return ( sType == rhs.sType )
  24835. && ( pNext == rhs.pNext )
  24836. && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes )
  24837. && ( compatibleHandleTypes == rhs.compatibleHandleTypes )
  24838. && ( externalFenceFeatures == rhs.externalFenceFeatures );
  24839. }
  24840. bool operator!=( ExternalFenceProperties const& rhs ) const
  24841. {
  24842. return !operator==( rhs );
  24843. }
  24844. private:
  24845. StructureType sType = StructureType::eExternalFenceProperties;
  24846. public:
  24847. void* pNext = nullptr;
  24848. ExternalFenceHandleTypeFlags exportFromImportedHandleTypes;
  24849. ExternalFenceHandleTypeFlags compatibleHandleTypes;
  24850. ExternalFenceFeatureFlags externalFenceFeatures;
  24851. };
  24852. static_assert( sizeof( ExternalFenceProperties ) == sizeof( VkExternalFenceProperties ), "struct and wrapper have different size!" );
  24853. #ifdef VK_USE_PLATFORM_ANDROID_KHR
  24854. struct ExternalFormatANDROID
  24855. {
  24856. ExternalFormatANDROID( uint64_t externalFormat_ = 0 )
  24857. : externalFormat( externalFormat_ )
  24858. {}
  24859. ExternalFormatANDROID( VkExternalFormatANDROID const & rhs )
  24860. {
  24861. *reinterpret_cast<VkExternalFormatANDROID*>(this) = rhs;
  24862. }
  24863. ExternalFormatANDROID& operator=( VkExternalFormatANDROID const & rhs )
  24864. {
  24865. *reinterpret_cast<VkExternalFormatANDROID*>(this) = rhs;
  24866. return *this;
  24867. }
  24868. ExternalFormatANDROID & setPNext( void* pNext_ )
  24869. {
  24870. pNext = pNext_;
  24871. return *this;
  24872. }
  24873. ExternalFormatANDROID & setExternalFormat( uint64_t externalFormat_ )
  24874. {
  24875. externalFormat = externalFormat_;
  24876. return *this;
  24877. }
  24878. operator VkExternalFormatANDROID const&() const
  24879. {
  24880. return *reinterpret_cast<const VkExternalFormatANDROID*>( this );
  24881. }
  24882. operator VkExternalFormatANDROID &()
  24883. {
  24884. return *reinterpret_cast<VkExternalFormatANDROID*>( this );
  24885. }
  24886. bool operator==( ExternalFormatANDROID const& rhs ) const
  24887. {
  24888. return ( sType == rhs.sType )
  24889. && ( pNext == rhs.pNext )
  24890. && ( externalFormat == rhs.externalFormat );
  24891. }
  24892. bool operator!=( ExternalFormatANDROID const& rhs ) const
  24893. {
  24894. return !operator==( rhs );
  24895. }
  24896. private:
  24897. StructureType sType = StructureType::eExternalFormatANDROID;
  24898. public:
  24899. void* pNext = nullptr;
  24900. uint64_t externalFormat;
  24901. };
  24902. static_assert( sizeof( ExternalFormatANDROID ) == sizeof( VkExternalFormatANDROID ), "struct and wrapper have different size!" );
  24903. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  24904. struct ExternalImageFormatProperties
  24905. {
  24906. operator VkExternalImageFormatProperties const&() const
  24907. {
  24908. return *reinterpret_cast<const VkExternalImageFormatProperties*>( this );
  24909. }
  24910. operator VkExternalImageFormatProperties &()
  24911. {
  24912. return *reinterpret_cast<VkExternalImageFormatProperties*>( this );
  24913. }
  24914. bool operator==( ExternalImageFormatProperties const& rhs ) const
  24915. {
  24916. return ( sType == rhs.sType )
  24917. && ( pNext == rhs.pNext )
  24918. && ( externalMemoryProperties == rhs.externalMemoryProperties );
  24919. }
  24920. bool operator!=( ExternalImageFormatProperties const& rhs ) const
  24921. {
  24922. return !operator==( rhs );
  24923. }
  24924. private:
  24925. StructureType sType = StructureType::eExternalImageFormatProperties;
  24926. public:
  24927. void* pNext = nullptr;
  24928. ExternalMemoryProperties externalMemoryProperties;
  24929. };
  24930. static_assert( sizeof( ExternalImageFormatProperties ) == sizeof( VkExternalImageFormatProperties ), "struct and wrapper have different size!" );
  24931. struct ImageFormatProperties
  24932. {
  24933. operator VkImageFormatProperties const&() const
  24934. {
  24935. return *reinterpret_cast<const VkImageFormatProperties*>( this );
  24936. }
  24937. operator VkImageFormatProperties &()
  24938. {
  24939. return *reinterpret_cast<VkImageFormatProperties*>( this );
  24940. }
  24941. bool operator==( ImageFormatProperties const& rhs ) const
  24942. {
  24943. return ( maxExtent == rhs.maxExtent )
  24944. && ( maxMipLevels == rhs.maxMipLevels )
  24945. && ( maxArrayLayers == rhs.maxArrayLayers )
  24946. && ( sampleCounts == rhs.sampleCounts )
  24947. && ( maxResourceSize == rhs.maxResourceSize );
  24948. }
  24949. bool operator!=( ImageFormatProperties const& rhs ) const
  24950. {
  24951. return !operator==( rhs );
  24952. }
  24953. Extent3D maxExtent;
  24954. uint32_t maxMipLevels;
  24955. uint32_t maxArrayLayers;
  24956. SampleCountFlags sampleCounts;
  24957. DeviceSize maxResourceSize;
  24958. };
  24959. static_assert( sizeof( ImageFormatProperties ) == sizeof( VkImageFormatProperties ), "struct and wrapper have different size!" );
  24960. struct ExternalImageFormatPropertiesNV
  24961. {
  24962. operator VkExternalImageFormatPropertiesNV const&() const
  24963. {
  24964. return *reinterpret_cast<const VkExternalImageFormatPropertiesNV*>( this );
  24965. }
  24966. operator VkExternalImageFormatPropertiesNV &()
  24967. {
  24968. return *reinterpret_cast<VkExternalImageFormatPropertiesNV*>( this );
  24969. }
  24970. bool operator==( ExternalImageFormatPropertiesNV const& rhs ) const
  24971. {
  24972. return ( imageFormatProperties == rhs.imageFormatProperties )
  24973. && ( externalMemoryFeatures == rhs.externalMemoryFeatures )
  24974. && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes )
  24975. && ( compatibleHandleTypes == rhs.compatibleHandleTypes );
  24976. }
  24977. bool operator!=( ExternalImageFormatPropertiesNV const& rhs ) const
  24978. {
  24979. return !operator==( rhs );
  24980. }
  24981. ImageFormatProperties imageFormatProperties;
  24982. ExternalMemoryFeatureFlagsNV externalMemoryFeatures;
  24983. ExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes;
  24984. ExternalMemoryHandleTypeFlagsNV compatibleHandleTypes;
  24985. };
  24986. static_assert( sizeof( ExternalImageFormatPropertiesNV ) == sizeof( VkExternalImageFormatPropertiesNV ), "struct and wrapper have different size!" );
  24987. struct ExternalMemoryBufferCreateInfo
  24988. {
  24989. ExternalMemoryBufferCreateInfo( ExternalMemoryHandleTypeFlags handleTypes_ = ExternalMemoryHandleTypeFlags() )
  24990. : handleTypes( handleTypes_ )
  24991. {}
  24992. ExternalMemoryBufferCreateInfo( VkExternalMemoryBufferCreateInfo const & rhs )
  24993. {
  24994. *reinterpret_cast<VkExternalMemoryBufferCreateInfo*>(this) = rhs;
  24995. }
  24996. ExternalMemoryBufferCreateInfo& operator=( VkExternalMemoryBufferCreateInfo const & rhs )
  24997. {
  24998. *reinterpret_cast<VkExternalMemoryBufferCreateInfo*>(this) = rhs;
  24999. return *this;
  25000. }
  25001. ExternalMemoryBufferCreateInfo & setPNext( const void* pNext_ )
  25002. {
  25003. pNext = pNext_;
  25004. return *this;
  25005. }
  25006. ExternalMemoryBufferCreateInfo & setHandleTypes( ExternalMemoryHandleTypeFlags handleTypes_ )
  25007. {
  25008. handleTypes = handleTypes_;
  25009. return *this;
  25010. }
  25011. operator VkExternalMemoryBufferCreateInfo const&() const
  25012. {
  25013. return *reinterpret_cast<const VkExternalMemoryBufferCreateInfo*>( this );
  25014. }
  25015. operator VkExternalMemoryBufferCreateInfo &()
  25016. {
  25017. return *reinterpret_cast<VkExternalMemoryBufferCreateInfo*>( this );
  25018. }
  25019. bool operator==( ExternalMemoryBufferCreateInfo const& rhs ) const
  25020. {
  25021. return ( sType == rhs.sType )
  25022. && ( pNext == rhs.pNext )
  25023. && ( handleTypes == rhs.handleTypes );
  25024. }
  25025. bool operator!=( ExternalMemoryBufferCreateInfo const& rhs ) const
  25026. {
  25027. return !operator==( rhs );
  25028. }
  25029. private:
  25030. StructureType sType = StructureType::eExternalMemoryBufferCreateInfo;
  25031. public:
  25032. const void* pNext = nullptr;
  25033. ExternalMemoryHandleTypeFlags handleTypes;
  25034. };
  25035. static_assert( sizeof( ExternalMemoryBufferCreateInfo ) == sizeof( VkExternalMemoryBufferCreateInfo ), "struct and wrapper have different size!" );
  25036. struct ExternalMemoryImageCreateInfo
  25037. {
  25038. ExternalMemoryImageCreateInfo( ExternalMemoryHandleTypeFlags handleTypes_ = ExternalMemoryHandleTypeFlags() )
  25039. : handleTypes( handleTypes_ )
  25040. {}
  25041. ExternalMemoryImageCreateInfo( VkExternalMemoryImageCreateInfo const & rhs )
  25042. {
  25043. *reinterpret_cast<VkExternalMemoryImageCreateInfo*>(this) = rhs;
  25044. }
  25045. ExternalMemoryImageCreateInfo& operator=( VkExternalMemoryImageCreateInfo const & rhs )
  25046. {
  25047. *reinterpret_cast<VkExternalMemoryImageCreateInfo*>(this) = rhs;
  25048. return *this;
  25049. }
  25050. ExternalMemoryImageCreateInfo & setPNext( const void* pNext_ )
  25051. {
  25052. pNext = pNext_;
  25053. return *this;
  25054. }
  25055. ExternalMemoryImageCreateInfo & setHandleTypes( ExternalMemoryHandleTypeFlags handleTypes_ )
  25056. {
  25057. handleTypes = handleTypes_;
  25058. return *this;
  25059. }
  25060. operator VkExternalMemoryImageCreateInfo const&() const
  25061. {
  25062. return *reinterpret_cast<const VkExternalMemoryImageCreateInfo*>( this );
  25063. }
  25064. operator VkExternalMemoryImageCreateInfo &()
  25065. {
  25066. return *reinterpret_cast<VkExternalMemoryImageCreateInfo*>( this );
  25067. }
  25068. bool operator==( ExternalMemoryImageCreateInfo const& rhs ) const
  25069. {
  25070. return ( sType == rhs.sType )
  25071. && ( pNext == rhs.pNext )
  25072. && ( handleTypes == rhs.handleTypes );
  25073. }
  25074. bool operator!=( ExternalMemoryImageCreateInfo const& rhs ) const
  25075. {
  25076. return !operator==( rhs );
  25077. }
  25078. private:
  25079. StructureType sType = StructureType::eExternalMemoryImageCreateInfo;
  25080. public:
  25081. const void* pNext = nullptr;
  25082. ExternalMemoryHandleTypeFlags handleTypes;
  25083. };
  25084. static_assert( sizeof( ExternalMemoryImageCreateInfo ) == sizeof( VkExternalMemoryImageCreateInfo ), "struct and wrapper have different size!" );
  25085. struct ExternalMemoryImageCreateInfoNV
  25086. {
  25087. ExternalMemoryImageCreateInfoNV( ExternalMemoryHandleTypeFlagsNV handleTypes_ = ExternalMemoryHandleTypeFlagsNV() )
  25088. : handleTypes( handleTypes_ )
  25089. {}
  25090. ExternalMemoryImageCreateInfoNV( VkExternalMemoryImageCreateInfoNV const & rhs )
  25091. {
  25092. *reinterpret_cast<VkExternalMemoryImageCreateInfoNV*>(this) = rhs;
  25093. }
  25094. ExternalMemoryImageCreateInfoNV& operator=( VkExternalMemoryImageCreateInfoNV const & rhs )
  25095. {
  25096. *reinterpret_cast<VkExternalMemoryImageCreateInfoNV*>(this) = rhs;
  25097. return *this;
  25098. }
  25099. ExternalMemoryImageCreateInfoNV & setPNext( const void* pNext_ )
  25100. {
  25101. pNext = pNext_;
  25102. return *this;
  25103. }
  25104. ExternalMemoryImageCreateInfoNV & setHandleTypes( ExternalMemoryHandleTypeFlagsNV handleTypes_ )
  25105. {
  25106. handleTypes = handleTypes_;
  25107. return *this;
  25108. }
  25109. operator VkExternalMemoryImageCreateInfoNV const&() const
  25110. {
  25111. return *reinterpret_cast<const VkExternalMemoryImageCreateInfoNV*>( this );
  25112. }
  25113. operator VkExternalMemoryImageCreateInfoNV &()
  25114. {
  25115. return *reinterpret_cast<VkExternalMemoryImageCreateInfoNV*>( this );
  25116. }
  25117. bool operator==( ExternalMemoryImageCreateInfoNV const& rhs ) const
  25118. {
  25119. return ( sType == rhs.sType )
  25120. && ( pNext == rhs.pNext )
  25121. && ( handleTypes == rhs.handleTypes );
  25122. }
  25123. bool operator!=( ExternalMemoryImageCreateInfoNV const& rhs ) const
  25124. {
  25125. return !operator==( rhs );
  25126. }
  25127. private:
  25128. StructureType sType = StructureType::eExternalMemoryImageCreateInfoNV;
  25129. public:
  25130. const void* pNext = nullptr;
  25131. ExternalMemoryHandleTypeFlagsNV handleTypes;
  25132. };
  25133. static_assert( sizeof( ExternalMemoryImageCreateInfoNV ) == sizeof( VkExternalMemoryImageCreateInfoNV ), "struct and wrapper have different size!" );
  25134. struct ExternalSemaphoreProperties
  25135. {
  25136. operator VkExternalSemaphoreProperties const&() const
  25137. {
  25138. return *reinterpret_cast<const VkExternalSemaphoreProperties*>( this );
  25139. }
  25140. operator VkExternalSemaphoreProperties &()
  25141. {
  25142. return *reinterpret_cast<VkExternalSemaphoreProperties*>( this );
  25143. }
  25144. bool operator==( ExternalSemaphoreProperties const& rhs ) const
  25145. {
  25146. return ( sType == rhs.sType )
  25147. && ( pNext == rhs.pNext )
  25148. && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes )
  25149. && ( compatibleHandleTypes == rhs.compatibleHandleTypes )
  25150. && ( externalSemaphoreFeatures == rhs.externalSemaphoreFeatures );
  25151. }
  25152. bool operator!=( ExternalSemaphoreProperties const& rhs ) const
  25153. {
  25154. return !operator==( rhs );
  25155. }
  25156. private:
  25157. StructureType sType = StructureType::eExternalSemaphoreProperties;
  25158. public:
  25159. void* pNext = nullptr;
  25160. ExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes;
  25161. ExternalSemaphoreHandleTypeFlags compatibleHandleTypes;
  25162. ExternalSemaphoreFeatureFlags externalSemaphoreFeatures;
  25163. };
  25164. static_assert( sizeof( ExternalSemaphoreProperties ) == sizeof( VkExternalSemaphoreProperties ), "struct and wrapper have different size!" );
  25165. struct FenceCreateInfo
  25166. {
  25167. FenceCreateInfo( FenceCreateFlags flags_ = FenceCreateFlags() )
  25168. : flags( flags_ )
  25169. {}
  25170. FenceCreateInfo( VkFenceCreateInfo const & rhs )
  25171. {
  25172. *reinterpret_cast<VkFenceCreateInfo*>(this) = rhs;
  25173. }
  25174. FenceCreateInfo& operator=( VkFenceCreateInfo const & rhs )
  25175. {
  25176. *reinterpret_cast<VkFenceCreateInfo*>(this) = rhs;
  25177. return *this;
  25178. }
  25179. FenceCreateInfo & setPNext( const void* pNext_ )
  25180. {
  25181. pNext = pNext_;
  25182. return *this;
  25183. }
  25184. FenceCreateInfo & setFlags( FenceCreateFlags flags_ )
  25185. {
  25186. flags = flags_;
  25187. return *this;
  25188. }
  25189. operator VkFenceCreateInfo const&() const
  25190. {
  25191. return *reinterpret_cast<const VkFenceCreateInfo*>( this );
  25192. }
  25193. operator VkFenceCreateInfo &()
  25194. {
  25195. return *reinterpret_cast<VkFenceCreateInfo*>( this );
  25196. }
  25197. bool operator==( FenceCreateInfo const& rhs ) const
  25198. {
  25199. return ( sType == rhs.sType )
  25200. && ( pNext == rhs.pNext )
  25201. && ( flags == rhs.flags );
  25202. }
  25203. bool operator!=( FenceCreateInfo const& rhs ) const
  25204. {
  25205. return !operator==( rhs );
  25206. }
  25207. private:
  25208. StructureType sType = StructureType::eFenceCreateInfo;
  25209. public:
  25210. const void* pNext = nullptr;
  25211. FenceCreateFlags flags;
  25212. };
  25213. static_assert( sizeof( FenceCreateInfo ) == sizeof( VkFenceCreateInfo ), "struct and wrapper have different size!" );
  25214. struct FenceGetFdInfoKHR
  25215. {
  25216. FenceGetFdInfoKHR( Fence fence_ = Fence(),
  25217. ExternalFenceHandleTypeFlagBits handleType_ = ExternalFenceHandleTypeFlagBits::eOpaqueFd )
  25218. : fence( fence_ )
  25219. , handleType( handleType_ )
  25220. {}
  25221. FenceGetFdInfoKHR( VkFenceGetFdInfoKHR const & rhs )
  25222. {
  25223. *reinterpret_cast<VkFenceGetFdInfoKHR*>(this) = rhs;
  25224. }
  25225. FenceGetFdInfoKHR& operator=( VkFenceGetFdInfoKHR const & rhs )
  25226. {
  25227. *reinterpret_cast<VkFenceGetFdInfoKHR*>(this) = rhs;
  25228. return *this;
  25229. }
  25230. FenceGetFdInfoKHR & setPNext( const void* pNext_ )
  25231. {
  25232. pNext = pNext_;
  25233. return *this;
  25234. }
  25235. FenceGetFdInfoKHR & setFence( Fence fence_ )
  25236. {
  25237. fence = fence_;
  25238. return *this;
  25239. }
  25240. FenceGetFdInfoKHR & setHandleType( ExternalFenceHandleTypeFlagBits handleType_ )
  25241. {
  25242. handleType = handleType_;
  25243. return *this;
  25244. }
  25245. operator VkFenceGetFdInfoKHR const&() const
  25246. {
  25247. return *reinterpret_cast<const VkFenceGetFdInfoKHR*>( this );
  25248. }
  25249. operator VkFenceGetFdInfoKHR &()
  25250. {
  25251. return *reinterpret_cast<VkFenceGetFdInfoKHR*>( this );
  25252. }
  25253. bool operator==( FenceGetFdInfoKHR const& rhs ) const
  25254. {
  25255. return ( sType == rhs.sType )
  25256. && ( pNext == rhs.pNext )
  25257. && ( fence == rhs.fence )
  25258. && ( handleType == rhs.handleType );
  25259. }
  25260. bool operator!=( FenceGetFdInfoKHR const& rhs ) const
  25261. {
  25262. return !operator==( rhs );
  25263. }
  25264. private:
  25265. StructureType sType = StructureType::eFenceGetFdInfoKHR;
  25266. public:
  25267. const void* pNext = nullptr;
  25268. Fence fence;
  25269. ExternalFenceHandleTypeFlagBits handleType;
  25270. };
  25271. static_assert( sizeof( FenceGetFdInfoKHR ) == sizeof( VkFenceGetFdInfoKHR ), "struct and wrapper have different size!" );
  25272. #ifdef VK_USE_PLATFORM_WIN32_KHR
  25273. struct FenceGetWin32HandleInfoKHR
  25274. {
  25275. FenceGetWin32HandleInfoKHR( Fence fence_ = Fence(),
  25276. ExternalFenceHandleTypeFlagBits handleType_ = ExternalFenceHandleTypeFlagBits::eOpaqueFd )
  25277. : fence( fence_ )
  25278. , handleType( handleType_ )
  25279. {}
  25280. FenceGetWin32HandleInfoKHR( VkFenceGetWin32HandleInfoKHR const & rhs )
  25281. {
  25282. *reinterpret_cast<VkFenceGetWin32HandleInfoKHR*>(this) = rhs;
  25283. }
  25284. FenceGetWin32HandleInfoKHR& operator=( VkFenceGetWin32HandleInfoKHR const & rhs )
  25285. {
  25286. *reinterpret_cast<VkFenceGetWin32HandleInfoKHR*>(this) = rhs;
  25287. return *this;
  25288. }
  25289. FenceGetWin32HandleInfoKHR & setPNext( const void* pNext_ )
  25290. {
  25291. pNext = pNext_;
  25292. return *this;
  25293. }
  25294. FenceGetWin32HandleInfoKHR & setFence( Fence fence_ )
  25295. {
  25296. fence = fence_;
  25297. return *this;
  25298. }
  25299. FenceGetWin32HandleInfoKHR & setHandleType( ExternalFenceHandleTypeFlagBits handleType_ )
  25300. {
  25301. handleType = handleType_;
  25302. return *this;
  25303. }
  25304. operator VkFenceGetWin32HandleInfoKHR const&() const
  25305. {
  25306. return *reinterpret_cast<const VkFenceGetWin32HandleInfoKHR*>( this );
  25307. }
  25308. operator VkFenceGetWin32HandleInfoKHR &()
  25309. {
  25310. return *reinterpret_cast<VkFenceGetWin32HandleInfoKHR*>( this );
  25311. }
  25312. bool operator==( FenceGetWin32HandleInfoKHR const& rhs ) const
  25313. {
  25314. return ( sType == rhs.sType )
  25315. && ( pNext == rhs.pNext )
  25316. && ( fence == rhs.fence )
  25317. && ( handleType == rhs.handleType );
  25318. }
  25319. bool operator!=( FenceGetWin32HandleInfoKHR const& rhs ) const
  25320. {
  25321. return !operator==( rhs );
  25322. }
  25323. private:
  25324. StructureType sType = StructureType::eFenceGetWin32HandleInfoKHR;
  25325. public:
  25326. const void* pNext = nullptr;
  25327. Fence fence;
  25328. ExternalFenceHandleTypeFlagBits handleType;
  25329. };
  25330. static_assert( sizeof( FenceGetWin32HandleInfoKHR ) == sizeof( VkFenceGetWin32HandleInfoKHR ), "struct and wrapper have different size!" );
  25331. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  25332. struct FilterCubicImageViewImageFormatPropertiesEXT
  25333. {
  25334. operator VkFilterCubicImageViewImageFormatPropertiesEXT const&() const
  25335. {
  25336. return *reinterpret_cast<const VkFilterCubicImageViewImageFormatPropertiesEXT*>( this );
  25337. }
  25338. operator VkFilterCubicImageViewImageFormatPropertiesEXT &()
  25339. {
  25340. return *reinterpret_cast<VkFilterCubicImageViewImageFormatPropertiesEXT*>( this );
  25341. }
  25342. bool operator==( FilterCubicImageViewImageFormatPropertiesEXT const& rhs ) const
  25343. {
  25344. return ( sType == rhs.sType )
  25345. && ( pNext == rhs.pNext )
  25346. && ( filterCubic == rhs.filterCubic )
  25347. && ( filterCubicMinmax == rhs.filterCubicMinmax );
  25348. }
  25349. bool operator!=( FilterCubicImageViewImageFormatPropertiesEXT const& rhs ) const
  25350. {
  25351. return !operator==( rhs );
  25352. }
  25353. private:
  25354. StructureType sType = StructureType::eFilterCubicImageViewImageFormatPropertiesEXT;
  25355. public:
  25356. void* pNext = nullptr;
  25357. Bool32 filterCubic;
  25358. Bool32 filterCubicMinmax;
  25359. };
  25360. static_assert( sizeof( FilterCubicImageViewImageFormatPropertiesEXT ) == sizeof( VkFilterCubicImageViewImageFormatPropertiesEXT ), "struct and wrapper have different size!" );
  25361. struct FormatProperties
  25362. {
  25363. operator VkFormatProperties const&() const
  25364. {
  25365. return *reinterpret_cast<const VkFormatProperties*>( this );
  25366. }
  25367. operator VkFormatProperties &()
  25368. {
  25369. return *reinterpret_cast<VkFormatProperties*>( this );
  25370. }
  25371. bool operator==( FormatProperties const& rhs ) const
  25372. {
  25373. return ( linearTilingFeatures == rhs.linearTilingFeatures )
  25374. && ( optimalTilingFeatures == rhs.optimalTilingFeatures )
  25375. && ( bufferFeatures == rhs.bufferFeatures );
  25376. }
  25377. bool operator!=( FormatProperties const& rhs ) const
  25378. {
  25379. return !operator==( rhs );
  25380. }
  25381. FormatFeatureFlags linearTilingFeatures;
  25382. FormatFeatureFlags optimalTilingFeatures;
  25383. FormatFeatureFlags bufferFeatures;
  25384. };
  25385. static_assert( sizeof( FormatProperties ) == sizeof( VkFormatProperties ), "struct and wrapper have different size!" );
  25386. struct FormatProperties2
  25387. {
  25388. operator VkFormatProperties2 const&() const
  25389. {
  25390. return *reinterpret_cast<const VkFormatProperties2*>( this );
  25391. }
  25392. operator VkFormatProperties2 &()
  25393. {
  25394. return *reinterpret_cast<VkFormatProperties2*>( this );
  25395. }
  25396. bool operator==( FormatProperties2 const& rhs ) const
  25397. {
  25398. return ( sType == rhs.sType )
  25399. && ( pNext == rhs.pNext )
  25400. && ( formatProperties == rhs.formatProperties );
  25401. }
  25402. bool operator!=( FormatProperties2 const& rhs ) const
  25403. {
  25404. return !operator==( rhs );
  25405. }
  25406. private:
  25407. StructureType sType = StructureType::eFormatProperties2;
  25408. public:
  25409. void* pNext = nullptr;
  25410. FormatProperties formatProperties;
  25411. };
  25412. static_assert( sizeof( FormatProperties2 ) == sizeof( VkFormatProperties2 ), "struct and wrapper have different size!" );
  25413. struct FramebufferAttachmentImageInfoKHR
  25414. {
  25415. FramebufferAttachmentImageInfoKHR( ImageCreateFlags flags_ = ImageCreateFlags(),
  25416. ImageUsageFlags usage_ = ImageUsageFlags(),
  25417. uint32_t width_ = 0,
  25418. uint32_t height_ = 0,
  25419. uint32_t layerCount_ = 0,
  25420. uint32_t viewFormatCount_ = 0,
  25421. const Format* pViewFormats_ = nullptr )
  25422. : flags( flags_ )
  25423. , usage( usage_ )
  25424. , width( width_ )
  25425. , height( height_ )
  25426. , layerCount( layerCount_ )
  25427. , viewFormatCount( viewFormatCount_ )
  25428. , pViewFormats( pViewFormats_ )
  25429. {}
  25430. FramebufferAttachmentImageInfoKHR( VkFramebufferAttachmentImageInfoKHR const & rhs )
  25431. {
  25432. *reinterpret_cast<VkFramebufferAttachmentImageInfoKHR*>(this) = rhs;
  25433. }
  25434. FramebufferAttachmentImageInfoKHR& operator=( VkFramebufferAttachmentImageInfoKHR const & rhs )
  25435. {
  25436. *reinterpret_cast<VkFramebufferAttachmentImageInfoKHR*>(this) = rhs;
  25437. return *this;
  25438. }
  25439. FramebufferAttachmentImageInfoKHR & setPNext( const void* pNext_ )
  25440. {
  25441. pNext = pNext_;
  25442. return *this;
  25443. }
  25444. FramebufferAttachmentImageInfoKHR & setFlags( ImageCreateFlags flags_ )
  25445. {
  25446. flags = flags_;
  25447. return *this;
  25448. }
  25449. FramebufferAttachmentImageInfoKHR & setUsage( ImageUsageFlags usage_ )
  25450. {
  25451. usage = usage_;
  25452. return *this;
  25453. }
  25454. FramebufferAttachmentImageInfoKHR & setWidth( uint32_t width_ )
  25455. {
  25456. width = width_;
  25457. return *this;
  25458. }
  25459. FramebufferAttachmentImageInfoKHR & setHeight( uint32_t height_ )
  25460. {
  25461. height = height_;
  25462. return *this;
  25463. }
  25464. FramebufferAttachmentImageInfoKHR & setLayerCount( uint32_t layerCount_ )
  25465. {
  25466. layerCount = layerCount_;
  25467. return *this;
  25468. }
  25469. FramebufferAttachmentImageInfoKHR & setViewFormatCount( uint32_t viewFormatCount_ )
  25470. {
  25471. viewFormatCount = viewFormatCount_;
  25472. return *this;
  25473. }
  25474. FramebufferAttachmentImageInfoKHR & setPViewFormats( const Format* pViewFormats_ )
  25475. {
  25476. pViewFormats = pViewFormats_;
  25477. return *this;
  25478. }
  25479. operator VkFramebufferAttachmentImageInfoKHR const&() const
  25480. {
  25481. return *reinterpret_cast<const VkFramebufferAttachmentImageInfoKHR*>( this );
  25482. }
  25483. operator VkFramebufferAttachmentImageInfoKHR &()
  25484. {
  25485. return *reinterpret_cast<VkFramebufferAttachmentImageInfoKHR*>( this );
  25486. }
  25487. bool operator==( FramebufferAttachmentImageInfoKHR const& rhs ) const
  25488. {
  25489. return ( sType == rhs.sType )
  25490. && ( pNext == rhs.pNext )
  25491. && ( flags == rhs.flags )
  25492. && ( usage == rhs.usage )
  25493. && ( width == rhs.width )
  25494. && ( height == rhs.height )
  25495. && ( layerCount == rhs.layerCount )
  25496. && ( viewFormatCount == rhs.viewFormatCount )
  25497. && ( pViewFormats == rhs.pViewFormats );
  25498. }
  25499. bool operator!=( FramebufferAttachmentImageInfoKHR const& rhs ) const
  25500. {
  25501. return !operator==( rhs );
  25502. }
  25503. private:
  25504. StructureType sType = StructureType::eFramebufferAttachmentImageInfoKHR;
  25505. public:
  25506. const void* pNext = nullptr;
  25507. ImageCreateFlags flags;
  25508. ImageUsageFlags usage;
  25509. uint32_t width;
  25510. uint32_t height;
  25511. uint32_t layerCount;
  25512. uint32_t viewFormatCount;
  25513. const Format* pViewFormats;
  25514. };
  25515. static_assert( sizeof( FramebufferAttachmentImageInfoKHR ) == sizeof( VkFramebufferAttachmentImageInfoKHR ), "struct and wrapper have different size!" );
  25516. struct FramebufferAttachmentsCreateInfoKHR
  25517. {
  25518. FramebufferAttachmentsCreateInfoKHR( uint32_t attachmentImageInfoCount_ = 0,
  25519. const FramebufferAttachmentImageInfoKHR* pAttachmentImageInfos_ = nullptr )
  25520. : attachmentImageInfoCount( attachmentImageInfoCount_ )
  25521. , pAttachmentImageInfos( pAttachmentImageInfos_ )
  25522. {}
  25523. FramebufferAttachmentsCreateInfoKHR( VkFramebufferAttachmentsCreateInfoKHR const & rhs )
  25524. {
  25525. *reinterpret_cast<VkFramebufferAttachmentsCreateInfoKHR*>(this) = rhs;
  25526. }
  25527. FramebufferAttachmentsCreateInfoKHR& operator=( VkFramebufferAttachmentsCreateInfoKHR const & rhs )
  25528. {
  25529. *reinterpret_cast<VkFramebufferAttachmentsCreateInfoKHR*>(this) = rhs;
  25530. return *this;
  25531. }
  25532. FramebufferAttachmentsCreateInfoKHR & setPNext( const void* pNext_ )
  25533. {
  25534. pNext = pNext_;
  25535. return *this;
  25536. }
  25537. FramebufferAttachmentsCreateInfoKHR & setAttachmentImageInfoCount( uint32_t attachmentImageInfoCount_ )
  25538. {
  25539. attachmentImageInfoCount = attachmentImageInfoCount_;
  25540. return *this;
  25541. }
  25542. FramebufferAttachmentsCreateInfoKHR & setPAttachmentImageInfos( const FramebufferAttachmentImageInfoKHR* pAttachmentImageInfos_ )
  25543. {
  25544. pAttachmentImageInfos = pAttachmentImageInfos_;
  25545. return *this;
  25546. }
  25547. operator VkFramebufferAttachmentsCreateInfoKHR const&() const
  25548. {
  25549. return *reinterpret_cast<const VkFramebufferAttachmentsCreateInfoKHR*>( this );
  25550. }
  25551. operator VkFramebufferAttachmentsCreateInfoKHR &()
  25552. {
  25553. return *reinterpret_cast<VkFramebufferAttachmentsCreateInfoKHR*>( this );
  25554. }
  25555. bool operator==( FramebufferAttachmentsCreateInfoKHR const& rhs ) const
  25556. {
  25557. return ( sType == rhs.sType )
  25558. && ( pNext == rhs.pNext )
  25559. && ( attachmentImageInfoCount == rhs.attachmentImageInfoCount )
  25560. && ( pAttachmentImageInfos == rhs.pAttachmentImageInfos );
  25561. }
  25562. bool operator!=( FramebufferAttachmentsCreateInfoKHR const& rhs ) const
  25563. {
  25564. return !operator==( rhs );
  25565. }
  25566. private:
  25567. StructureType sType = StructureType::eFramebufferAttachmentsCreateInfoKHR;
  25568. public:
  25569. const void* pNext = nullptr;
  25570. uint32_t attachmentImageInfoCount;
  25571. const FramebufferAttachmentImageInfoKHR* pAttachmentImageInfos;
  25572. };
  25573. static_assert( sizeof( FramebufferAttachmentsCreateInfoKHR ) == sizeof( VkFramebufferAttachmentsCreateInfoKHR ), "struct and wrapper have different size!" );
  25574. struct FramebufferCreateInfo
  25575. {
  25576. FramebufferCreateInfo( FramebufferCreateFlags flags_ = FramebufferCreateFlags(),
  25577. RenderPass renderPass_ = RenderPass(),
  25578. uint32_t attachmentCount_ = 0,
  25579. const ImageView* pAttachments_ = nullptr,
  25580. uint32_t width_ = 0,
  25581. uint32_t height_ = 0,
  25582. uint32_t layers_ = 0 )
  25583. : flags( flags_ )
  25584. , renderPass( renderPass_ )
  25585. , attachmentCount( attachmentCount_ )
  25586. , pAttachments( pAttachments_ )
  25587. , width( width_ )
  25588. , height( height_ )
  25589. , layers( layers_ )
  25590. {}
  25591. FramebufferCreateInfo( VkFramebufferCreateInfo const & rhs )
  25592. {
  25593. *reinterpret_cast<VkFramebufferCreateInfo*>(this) = rhs;
  25594. }
  25595. FramebufferCreateInfo& operator=( VkFramebufferCreateInfo const & rhs )
  25596. {
  25597. *reinterpret_cast<VkFramebufferCreateInfo*>(this) = rhs;
  25598. return *this;
  25599. }
  25600. FramebufferCreateInfo & setPNext( const void* pNext_ )
  25601. {
  25602. pNext = pNext_;
  25603. return *this;
  25604. }
  25605. FramebufferCreateInfo & setFlags( FramebufferCreateFlags flags_ )
  25606. {
  25607. flags = flags_;
  25608. return *this;
  25609. }
  25610. FramebufferCreateInfo & setRenderPass( RenderPass renderPass_ )
  25611. {
  25612. renderPass = renderPass_;
  25613. return *this;
  25614. }
  25615. FramebufferCreateInfo & setAttachmentCount( uint32_t attachmentCount_ )
  25616. {
  25617. attachmentCount = attachmentCount_;
  25618. return *this;
  25619. }
  25620. FramebufferCreateInfo & setPAttachments( const ImageView* pAttachments_ )
  25621. {
  25622. pAttachments = pAttachments_;
  25623. return *this;
  25624. }
  25625. FramebufferCreateInfo & setWidth( uint32_t width_ )
  25626. {
  25627. width = width_;
  25628. return *this;
  25629. }
  25630. FramebufferCreateInfo & setHeight( uint32_t height_ )
  25631. {
  25632. height = height_;
  25633. return *this;
  25634. }
  25635. FramebufferCreateInfo & setLayers( uint32_t layers_ )
  25636. {
  25637. layers = layers_;
  25638. return *this;
  25639. }
  25640. operator VkFramebufferCreateInfo const&() const
  25641. {
  25642. return *reinterpret_cast<const VkFramebufferCreateInfo*>( this );
  25643. }
  25644. operator VkFramebufferCreateInfo &()
  25645. {
  25646. return *reinterpret_cast<VkFramebufferCreateInfo*>( this );
  25647. }
  25648. bool operator==( FramebufferCreateInfo const& rhs ) const
  25649. {
  25650. return ( sType == rhs.sType )
  25651. && ( pNext == rhs.pNext )
  25652. && ( flags == rhs.flags )
  25653. && ( renderPass == rhs.renderPass )
  25654. && ( attachmentCount == rhs.attachmentCount )
  25655. && ( pAttachments == rhs.pAttachments )
  25656. && ( width == rhs.width )
  25657. && ( height == rhs.height )
  25658. && ( layers == rhs.layers );
  25659. }
  25660. bool operator!=( FramebufferCreateInfo const& rhs ) const
  25661. {
  25662. return !operator==( rhs );
  25663. }
  25664. private:
  25665. StructureType sType = StructureType::eFramebufferCreateInfo;
  25666. public:
  25667. const void* pNext = nullptr;
  25668. FramebufferCreateFlags flags;
  25669. RenderPass renderPass;
  25670. uint32_t attachmentCount;
  25671. const ImageView* pAttachments;
  25672. uint32_t width;
  25673. uint32_t height;
  25674. uint32_t layers;
  25675. };
  25676. static_assert( sizeof( FramebufferCreateInfo ) == sizeof( VkFramebufferCreateInfo ), "struct and wrapper have different size!" );
  25677. struct FramebufferMixedSamplesCombinationNV
  25678. {
  25679. operator VkFramebufferMixedSamplesCombinationNV const&() const
  25680. {
  25681. return *reinterpret_cast<const VkFramebufferMixedSamplesCombinationNV*>( this );
  25682. }
  25683. operator VkFramebufferMixedSamplesCombinationNV &()
  25684. {
  25685. return *reinterpret_cast<VkFramebufferMixedSamplesCombinationNV*>( this );
  25686. }
  25687. bool operator==( FramebufferMixedSamplesCombinationNV const& rhs ) const
  25688. {
  25689. return ( sType == rhs.sType )
  25690. && ( pNext == rhs.pNext )
  25691. && ( coverageReductionMode == rhs.coverageReductionMode )
  25692. && ( rasterizationSamples == rhs.rasterizationSamples )
  25693. && ( depthStencilSamples == rhs.depthStencilSamples )
  25694. && ( colorSamples == rhs.colorSamples );
  25695. }
  25696. bool operator!=( FramebufferMixedSamplesCombinationNV const& rhs ) const
  25697. {
  25698. return !operator==( rhs );
  25699. }
  25700. private:
  25701. StructureType sType = StructureType::eFramebufferMixedSamplesCombinationNV;
  25702. public:
  25703. void* pNext = nullptr;
  25704. CoverageReductionModeNV coverageReductionMode;
  25705. SampleCountFlagBits rasterizationSamples;
  25706. SampleCountFlags depthStencilSamples;
  25707. SampleCountFlags colorSamples;
  25708. };
  25709. static_assert( sizeof( FramebufferMixedSamplesCombinationNV ) == sizeof( VkFramebufferMixedSamplesCombinationNV ), "struct and wrapper have different size!" );
  25710. struct VertexInputBindingDescription
  25711. {
  25712. VertexInputBindingDescription( uint32_t binding_ = 0,
  25713. uint32_t stride_ = 0,
  25714. VertexInputRate inputRate_ = VertexInputRate::eVertex )
  25715. : binding( binding_ )
  25716. , stride( stride_ )
  25717. , inputRate( inputRate_ )
  25718. {}
  25719. VertexInputBindingDescription( VkVertexInputBindingDescription const & rhs )
  25720. {
  25721. *reinterpret_cast<VkVertexInputBindingDescription*>(this) = rhs;
  25722. }
  25723. VertexInputBindingDescription& operator=( VkVertexInputBindingDescription const & rhs )
  25724. {
  25725. *reinterpret_cast<VkVertexInputBindingDescription*>(this) = rhs;
  25726. return *this;
  25727. }
  25728. VertexInputBindingDescription & setBinding( uint32_t binding_ )
  25729. {
  25730. binding = binding_;
  25731. return *this;
  25732. }
  25733. VertexInputBindingDescription & setStride( uint32_t stride_ )
  25734. {
  25735. stride = stride_;
  25736. return *this;
  25737. }
  25738. VertexInputBindingDescription & setInputRate( VertexInputRate inputRate_ )
  25739. {
  25740. inputRate = inputRate_;
  25741. return *this;
  25742. }
  25743. operator VkVertexInputBindingDescription const&() const
  25744. {
  25745. return *reinterpret_cast<const VkVertexInputBindingDescription*>( this );
  25746. }
  25747. operator VkVertexInputBindingDescription &()
  25748. {
  25749. return *reinterpret_cast<VkVertexInputBindingDescription*>( this );
  25750. }
  25751. bool operator==( VertexInputBindingDescription const& rhs ) const
  25752. {
  25753. return ( binding == rhs.binding )
  25754. && ( stride == rhs.stride )
  25755. && ( inputRate == rhs.inputRate );
  25756. }
  25757. bool operator!=( VertexInputBindingDescription const& rhs ) const
  25758. {
  25759. return !operator==( rhs );
  25760. }
  25761. uint32_t binding;
  25762. uint32_t stride;
  25763. VertexInputRate inputRate;
  25764. };
  25765. static_assert( sizeof( VertexInputBindingDescription ) == sizeof( VkVertexInputBindingDescription ), "struct and wrapper have different size!" );
  25766. struct VertexInputAttributeDescription
  25767. {
  25768. VertexInputAttributeDescription( uint32_t location_ = 0,
  25769. uint32_t binding_ = 0,
  25770. Format format_ = Format::eUndefined,
  25771. uint32_t offset_ = 0 )
  25772. : location( location_ )
  25773. , binding( binding_ )
  25774. , format( format_ )
  25775. , offset( offset_ )
  25776. {}
  25777. VertexInputAttributeDescription( VkVertexInputAttributeDescription const & rhs )
  25778. {
  25779. *reinterpret_cast<VkVertexInputAttributeDescription*>(this) = rhs;
  25780. }
  25781. VertexInputAttributeDescription& operator=( VkVertexInputAttributeDescription const & rhs )
  25782. {
  25783. *reinterpret_cast<VkVertexInputAttributeDescription*>(this) = rhs;
  25784. return *this;
  25785. }
  25786. VertexInputAttributeDescription & setLocation( uint32_t location_ )
  25787. {
  25788. location = location_;
  25789. return *this;
  25790. }
  25791. VertexInputAttributeDescription & setBinding( uint32_t binding_ )
  25792. {
  25793. binding = binding_;
  25794. return *this;
  25795. }
  25796. VertexInputAttributeDescription & setFormat( Format format_ )
  25797. {
  25798. format = format_;
  25799. return *this;
  25800. }
  25801. VertexInputAttributeDescription & setOffset( uint32_t offset_ )
  25802. {
  25803. offset = offset_;
  25804. return *this;
  25805. }
  25806. operator VkVertexInputAttributeDescription const&() const
  25807. {
  25808. return *reinterpret_cast<const VkVertexInputAttributeDescription*>( this );
  25809. }
  25810. operator VkVertexInputAttributeDescription &()
  25811. {
  25812. return *reinterpret_cast<VkVertexInputAttributeDescription*>( this );
  25813. }
  25814. bool operator==( VertexInputAttributeDescription const& rhs ) const
  25815. {
  25816. return ( location == rhs.location )
  25817. && ( binding == rhs.binding )
  25818. && ( format == rhs.format )
  25819. && ( offset == rhs.offset );
  25820. }
  25821. bool operator!=( VertexInputAttributeDescription const& rhs ) const
  25822. {
  25823. return !operator==( rhs );
  25824. }
  25825. uint32_t location;
  25826. uint32_t binding;
  25827. Format format;
  25828. uint32_t offset;
  25829. };
  25830. static_assert( sizeof( VertexInputAttributeDescription ) == sizeof( VkVertexInputAttributeDescription ), "struct and wrapper have different size!" );
  25831. struct PipelineVertexInputStateCreateInfo
  25832. {
  25833. PipelineVertexInputStateCreateInfo( PipelineVertexInputStateCreateFlags flags_ = PipelineVertexInputStateCreateFlags(),
  25834. uint32_t vertexBindingDescriptionCount_ = 0,
  25835. const VertexInputBindingDescription* pVertexBindingDescriptions_ = nullptr,
  25836. uint32_t vertexAttributeDescriptionCount_ = 0,
  25837. const VertexInputAttributeDescription* pVertexAttributeDescriptions_ = nullptr )
  25838. : flags( flags_ )
  25839. , vertexBindingDescriptionCount( vertexBindingDescriptionCount_ )
  25840. , pVertexBindingDescriptions( pVertexBindingDescriptions_ )
  25841. , vertexAttributeDescriptionCount( vertexAttributeDescriptionCount_ )
  25842. , pVertexAttributeDescriptions( pVertexAttributeDescriptions_ )
  25843. {}
  25844. PipelineVertexInputStateCreateInfo( VkPipelineVertexInputStateCreateInfo const & rhs )
  25845. {
  25846. *reinterpret_cast<VkPipelineVertexInputStateCreateInfo*>(this) = rhs;
  25847. }
  25848. PipelineVertexInputStateCreateInfo& operator=( VkPipelineVertexInputStateCreateInfo const & rhs )
  25849. {
  25850. *reinterpret_cast<VkPipelineVertexInputStateCreateInfo*>(this) = rhs;
  25851. return *this;
  25852. }
  25853. PipelineVertexInputStateCreateInfo & setPNext( const void* pNext_ )
  25854. {
  25855. pNext = pNext_;
  25856. return *this;
  25857. }
  25858. PipelineVertexInputStateCreateInfo & setFlags( PipelineVertexInputStateCreateFlags flags_ )
  25859. {
  25860. flags = flags_;
  25861. return *this;
  25862. }
  25863. PipelineVertexInputStateCreateInfo & setVertexBindingDescriptionCount( uint32_t vertexBindingDescriptionCount_ )
  25864. {
  25865. vertexBindingDescriptionCount = vertexBindingDescriptionCount_;
  25866. return *this;
  25867. }
  25868. PipelineVertexInputStateCreateInfo & setPVertexBindingDescriptions( const VertexInputBindingDescription* pVertexBindingDescriptions_ )
  25869. {
  25870. pVertexBindingDescriptions = pVertexBindingDescriptions_;
  25871. return *this;
  25872. }
  25873. PipelineVertexInputStateCreateInfo & setVertexAttributeDescriptionCount( uint32_t vertexAttributeDescriptionCount_ )
  25874. {
  25875. vertexAttributeDescriptionCount = vertexAttributeDescriptionCount_;
  25876. return *this;
  25877. }
  25878. PipelineVertexInputStateCreateInfo & setPVertexAttributeDescriptions( const VertexInputAttributeDescription* pVertexAttributeDescriptions_ )
  25879. {
  25880. pVertexAttributeDescriptions = pVertexAttributeDescriptions_;
  25881. return *this;
  25882. }
  25883. operator VkPipelineVertexInputStateCreateInfo const&() const
  25884. {
  25885. return *reinterpret_cast<const VkPipelineVertexInputStateCreateInfo*>( this );
  25886. }
  25887. operator VkPipelineVertexInputStateCreateInfo &()
  25888. {
  25889. return *reinterpret_cast<VkPipelineVertexInputStateCreateInfo*>( this );
  25890. }
  25891. bool operator==( PipelineVertexInputStateCreateInfo const& rhs ) const
  25892. {
  25893. return ( sType == rhs.sType )
  25894. && ( pNext == rhs.pNext )
  25895. && ( flags == rhs.flags )
  25896. && ( vertexBindingDescriptionCount == rhs.vertexBindingDescriptionCount )
  25897. && ( pVertexBindingDescriptions == rhs.pVertexBindingDescriptions )
  25898. && ( vertexAttributeDescriptionCount == rhs.vertexAttributeDescriptionCount )
  25899. && ( pVertexAttributeDescriptions == rhs.pVertexAttributeDescriptions );
  25900. }
  25901. bool operator!=( PipelineVertexInputStateCreateInfo const& rhs ) const
  25902. {
  25903. return !operator==( rhs );
  25904. }
  25905. private:
  25906. StructureType sType = StructureType::ePipelineVertexInputStateCreateInfo;
  25907. public:
  25908. const void* pNext = nullptr;
  25909. PipelineVertexInputStateCreateFlags flags;
  25910. uint32_t vertexBindingDescriptionCount;
  25911. const VertexInputBindingDescription* pVertexBindingDescriptions;
  25912. uint32_t vertexAttributeDescriptionCount;
  25913. const VertexInputAttributeDescription* pVertexAttributeDescriptions;
  25914. };
  25915. static_assert( sizeof( PipelineVertexInputStateCreateInfo ) == sizeof( VkPipelineVertexInputStateCreateInfo ), "struct and wrapper have different size!" );
  25916. struct PipelineInputAssemblyStateCreateInfo
  25917. {
  25918. PipelineInputAssemblyStateCreateInfo( PipelineInputAssemblyStateCreateFlags flags_ = PipelineInputAssemblyStateCreateFlags(),
  25919. PrimitiveTopology topology_ = PrimitiveTopology::ePointList,
  25920. Bool32 primitiveRestartEnable_ = 0 )
  25921. : flags( flags_ )
  25922. , topology( topology_ )
  25923. , primitiveRestartEnable( primitiveRestartEnable_ )
  25924. {}
  25925. PipelineInputAssemblyStateCreateInfo( VkPipelineInputAssemblyStateCreateInfo const & rhs )
  25926. {
  25927. *reinterpret_cast<VkPipelineInputAssemblyStateCreateInfo*>(this) = rhs;
  25928. }
  25929. PipelineInputAssemblyStateCreateInfo& operator=( VkPipelineInputAssemblyStateCreateInfo const & rhs )
  25930. {
  25931. *reinterpret_cast<VkPipelineInputAssemblyStateCreateInfo*>(this) = rhs;
  25932. return *this;
  25933. }
  25934. PipelineInputAssemblyStateCreateInfo & setPNext( const void* pNext_ )
  25935. {
  25936. pNext = pNext_;
  25937. return *this;
  25938. }
  25939. PipelineInputAssemblyStateCreateInfo & setFlags( PipelineInputAssemblyStateCreateFlags flags_ )
  25940. {
  25941. flags = flags_;
  25942. return *this;
  25943. }
  25944. PipelineInputAssemblyStateCreateInfo & setTopology( PrimitiveTopology topology_ )
  25945. {
  25946. topology = topology_;
  25947. return *this;
  25948. }
  25949. PipelineInputAssemblyStateCreateInfo & setPrimitiveRestartEnable( Bool32 primitiveRestartEnable_ )
  25950. {
  25951. primitiveRestartEnable = primitiveRestartEnable_;
  25952. return *this;
  25953. }
  25954. operator VkPipelineInputAssemblyStateCreateInfo const&() const
  25955. {
  25956. return *reinterpret_cast<const VkPipelineInputAssemblyStateCreateInfo*>( this );
  25957. }
  25958. operator VkPipelineInputAssemblyStateCreateInfo &()
  25959. {
  25960. return *reinterpret_cast<VkPipelineInputAssemblyStateCreateInfo*>( this );
  25961. }
  25962. bool operator==( PipelineInputAssemblyStateCreateInfo const& rhs ) const
  25963. {
  25964. return ( sType == rhs.sType )
  25965. && ( pNext == rhs.pNext )
  25966. && ( flags == rhs.flags )
  25967. && ( topology == rhs.topology )
  25968. && ( primitiveRestartEnable == rhs.primitiveRestartEnable );
  25969. }
  25970. bool operator!=( PipelineInputAssemblyStateCreateInfo const& rhs ) const
  25971. {
  25972. return !operator==( rhs );
  25973. }
  25974. private:
  25975. StructureType sType = StructureType::ePipelineInputAssemblyStateCreateInfo;
  25976. public:
  25977. const void* pNext = nullptr;
  25978. PipelineInputAssemblyStateCreateFlags flags;
  25979. PrimitiveTopology topology;
  25980. Bool32 primitiveRestartEnable;
  25981. };
  25982. static_assert( sizeof( PipelineInputAssemblyStateCreateInfo ) == sizeof( VkPipelineInputAssemblyStateCreateInfo ), "struct and wrapper have different size!" );
  25983. struct PipelineTessellationStateCreateInfo
  25984. {
  25985. PipelineTessellationStateCreateInfo( PipelineTessellationStateCreateFlags flags_ = PipelineTessellationStateCreateFlags(),
  25986. uint32_t patchControlPoints_ = 0 )
  25987. : flags( flags_ )
  25988. , patchControlPoints( patchControlPoints_ )
  25989. {}
  25990. PipelineTessellationStateCreateInfo( VkPipelineTessellationStateCreateInfo const & rhs )
  25991. {
  25992. *reinterpret_cast<VkPipelineTessellationStateCreateInfo*>(this) = rhs;
  25993. }
  25994. PipelineTessellationStateCreateInfo& operator=( VkPipelineTessellationStateCreateInfo const & rhs )
  25995. {
  25996. *reinterpret_cast<VkPipelineTessellationStateCreateInfo*>(this) = rhs;
  25997. return *this;
  25998. }
  25999. PipelineTessellationStateCreateInfo & setPNext( const void* pNext_ )
  26000. {
  26001. pNext = pNext_;
  26002. return *this;
  26003. }
  26004. PipelineTessellationStateCreateInfo & setFlags( PipelineTessellationStateCreateFlags flags_ )
  26005. {
  26006. flags = flags_;
  26007. return *this;
  26008. }
  26009. PipelineTessellationStateCreateInfo & setPatchControlPoints( uint32_t patchControlPoints_ )
  26010. {
  26011. patchControlPoints = patchControlPoints_;
  26012. return *this;
  26013. }
  26014. operator VkPipelineTessellationStateCreateInfo const&() const
  26015. {
  26016. return *reinterpret_cast<const VkPipelineTessellationStateCreateInfo*>( this );
  26017. }
  26018. operator VkPipelineTessellationStateCreateInfo &()
  26019. {
  26020. return *reinterpret_cast<VkPipelineTessellationStateCreateInfo*>( this );
  26021. }
  26022. bool operator==( PipelineTessellationStateCreateInfo const& rhs ) const
  26023. {
  26024. return ( sType == rhs.sType )
  26025. && ( pNext == rhs.pNext )
  26026. && ( flags == rhs.flags )
  26027. && ( patchControlPoints == rhs.patchControlPoints );
  26028. }
  26029. bool operator!=( PipelineTessellationStateCreateInfo const& rhs ) const
  26030. {
  26031. return !operator==( rhs );
  26032. }
  26033. private:
  26034. StructureType sType = StructureType::ePipelineTessellationStateCreateInfo;
  26035. public:
  26036. const void* pNext = nullptr;
  26037. PipelineTessellationStateCreateFlags flags;
  26038. uint32_t patchControlPoints;
  26039. };
  26040. static_assert( sizeof( PipelineTessellationStateCreateInfo ) == sizeof( VkPipelineTessellationStateCreateInfo ), "struct and wrapper have different size!" );
  26041. struct Viewport
  26042. {
  26043. Viewport( float x_ = 0,
  26044. float y_ = 0,
  26045. float width_ = 0,
  26046. float height_ = 0,
  26047. float minDepth_ = 0,
  26048. float maxDepth_ = 0 )
  26049. : x( x_ )
  26050. , y( y_ )
  26051. , width( width_ )
  26052. , height( height_ )
  26053. , minDepth( minDepth_ )
  26054. , maxDepth( maxDepth_ )
  26055. {}
  26056. Viewport( VkViewport const & rhs )
  26057. {
  26058. *reinterpret_cast<VkViewport*>(this) = rhs;
  26059. }
  26060. Viewport& operator=( VkViewport const & rhs )
  26061. {
  26062. *reinterpret_cast<VkViewport*>(this) = rhs;
  26063. return *this;
  26064. }
  26065. Viewport & setX( float x_ )
  26066. {
  26067. x = x_;
  26068. return *this;
  26069. }
  26070. Viewport & setY( float y_ )
  26071. {
  26072. y = y_;
  26073. return *this;
  26074. }
  26075. Viewport & setWidth( float width_ )
  26076. {
  26077. width = width_;
  26078. return *this;
  26079. }
  26080. Viewport & setHeight( float height_ )
  26081. {
  26082. height = height_;
  26083. return *this;
  26084. }
  26085. Viewport & setMinDepth( float minDepth_ )
  26086. {
  26087. minDepth = minDepth_;
  26088. return *this;
  26089. }
  26090. Viewport & setMaxDepth( float maxDepth_ )
  26091. {
  26092. maxDepth = maxDepth_;
  26093. return *this;
  26094. }
  26095. operator VkViewport const&() const
  26096. {
  26097. return *reinterpret_cast<const VkViewport*>( this );
  26098. }
  26099. operator VkViewport &()
  26100. {
  26101. return *reinterpret_cast<VkViewport*>( this );
  26102. }
  26103. bool operator==( Viewport const& rhs ) const
  26104. {
  26105. return ( x == rhs.x )
  26106. && ( y == rhs.y )
  26107. && ( width == rhs.width )
  26108. && ( height == rhs.height )
  26109. && ( minDepth == rhs.minDepth )
  26110. && ( maxDepth == rhs.maxDepth );
  26111. }
  26112. bool operator!=( Viewport const& rhs ) const
  26113. {
  26114. return !operator==( rhs );
  26115. }
  26116. float x;
  26117. float y;
  26118. float width;
  26119. float height;
  26120. float minDepth;
  26121. float maxDepth;
  26122. };
  26123. static_assert( sizeof( Viewport ) == sizeof( VkViewport ), "struct and wrapper have different size!" );
  26124. struct PipelineViewportStateCreateInfo
  26125. {
  26126. PipelineViewportStateCreateInfo( PipelineViewportStateCreateFlags flags_ = PipelineViewportStateCreateFlags(),
  26127. uint32_t viewportCount_ = 0,
  26128. const Viewport* pViewports_ = nullptr,
  26129. uint32_t scissorCount_ = 0,
  26130. const Rect2D* pScissors_ = nullptr )
  26131. : flags( flags_ )
  26132. , viewportCount( viewportCount_ )
  26133. , pViewports( pViewports_ )
  26134. , scissorCount( scissorCount_ )
  26135. , pScissors( pScissors_ )
  26136. {}
  26137. PipelineViewportStateCreateInfo( VkPipelineViewportStateCreateInfo const & rhs )
  26138. {
  26139. *reinterpret_cast<VkPipelineViewportStateCreateInfo*>(this) = rhs;
  26140. }
  26141. PipelineViewportStateCreateInfo& operator=( VkPipelineViewportStateCreateInfo const & rhs )
  26142. {
  26143. *reinterpret_cast<VkPipelineViewportStateCreateInfo*>(this) = rhs;
  26144. return *this;
  26145. }
  26146. PipelineViewportStateCreateInfo & setPNext( const void* pNext_ )
  26147. {
  26148. pNext = pNext_;
  26149. return *this;
  26150. }
  26151. PipelineViewportStateCreateInfo & setFlags( PipelineViewportStateCreateFlags flags_ )
  26152. {
  26153. flags = flags_;
  26154. return *this;
  26155. }
  26156. PipelineViewportStateCreateInfo & setViewportCount( uint32_t viewportCount_ )
  26157. {
  26158. viewportCount = viewportCount_;
  26159. return *this;
  26160. }
  26161. PipelineViewportStateCreateInfo & setPViewports( const Viewport* pViewports_ )
  26162. {
  26163. pViewports = pViewports_;
  26164. return *this;
  26165. }
  26166. PipelineViewportStateCreateInfo & setScissorCount( uint32_t scissorCount_ )
  26167. {
  26168. scissorCount = scissorCount_;
  26169. return *this;
  26170. }
  26171. PipelineViewportStateCreateInfo & setPScissors( const Rect2D* pScissors_ )
  26172. {
  26173. pScissors = pScissors_;
  26174. return *this;
  26175. }
  26176. operator VkPipelineViewportStateCreateInfo const&() const
  26177. {
  26178. return *reinterpret_cast<const VkPipelineViewportStateCreateInfo*>( this );
  26179. }
  26180. operator VkPipelineViewportStateCreateInfo &()
  26181. {
  26182. return *reinterpret_cast<VkPipelineViewportStateCreateInfo*>( this );
  26183. }
  26184. bool operator==( PipelineViewportStateCreateInfo const& rhs ) const
  26185. {
  26186. return ( sType == rhs.sType )
  26187. && ( pNext == rhs.pNext )
  26188. && ( flags == rhs.flags )
  26189. && ( viewportCount == rhs.viewportCount )
  26190. && ( pViewports == rhs.pViewports )
  26191. && ( scissorCount == rhs.scissorCount )
  26192. && ( pScissors == rhs.pScissors );
  26193. }
  26194. bool operator!=( PipelineViewportStateCreateInfo const& rhs ) const
  26195. {
  26196. return !operator==( rhs );
  26197. }
  26198. private:
  26199. StructureType sType = StructureType::ePipelineViewportStateCreateInfo;
  26200. public:
  26201. const void* pNext = nullptr;
  26202. PipelineViewportStateCreateFlags flags;
  26203. uint32_t viewportCount;
  26204. const Viewport* pViewports;
  26205. uint32_t scissorCount;
  26206. const Rect2D* pScissors;
  26207. };
  26208. static_assert( sizeof( PipelineViewportStateCreateInfo ) == sizeof( VkPipelineViewportStateCreateInfo ), "struct and wrapper have different size!" );
  26209. struct PipelineRasterizationStateCreateInfo
  26210. {
  26211. PipelineRasterizationStateCreateInfo( PipelineRasterizationStateCreateFlags flags_ = PipelineRasterizationStateCreateFlags(),
  26212. Bool32 depthClampEnable_ = 0,
  26213. Bool32 rasterizerDiscardEnable_ = 0,
  26214. PolygonMode polygonMode_ = PolygonMode::eFill,
  26215. CullModeFlags cullMode_ = CullModeFlags(),
  26216. FrontFace frontFace_ = FrontFace::eCounterClockwise,
  26217. Bool32 depthBiasEnable_ = 0,
  26218. float depthBiasConstantFactor_ = 0,
  26219. float depthBiasClamp_ = 0,
  26220. float depthBiasSlopeFactor_ = 0,
  26221. float lineWidth_ = 0 )
  26222. : flags( flags_ )
  26223. , depthClampEnable( depthClampEnable_ )
  26224. , rasterizerDiscardEnable( rasterizerDiscardEnable_ )
  26225. , polygonMode( polygonMode_ )
  26226. , cullMode( cullMode_ )
  26227. , frontFace( frontFace_ )
  26228. , depthBiasEnable( depthBiasEnable_ )
  26229. , depthBiasConstantFactor( depthBiasConstantFactor_ )
  26230. , depthBiasClamp( depthBiasClamp_ )
  26231. , depthBiasSlopeFactor( depthBiasSlopeFactor_ )
  26232. , lineWidth( lineWidth_ )
  26233. {}
  26234. PipelineRasterizationStateCreateInfo( VkPipelineRasterizationStateCreateInfo const & rhs )
  26235. {
  26236. *reinterpret_cast<VkPipelineRasterizationStateCreateInfo*>(this) = rhs;
  26237. }
  26238. PipelineRasterizationStateCreateInfo& operator=( VkPipelineRasterizationStateCreateInfo const & rhs )
  26239. {
  26240. *reinterpret_cast<VkPipelineRasterizationStateCreateInfo*>(this) = rhs;
  26241. return *this;
  26242. }
  26243. PipelineRasterizationStateCreateInfo & setPNext( const void* pNext_ )
  26244. {
  26245. pNext = pNext_;
  26246. return *this;
  26247. }
  26248. PipelineRasterizationStateCreateInfo & setFlags( PipelineRasterizationStateCreateFlags flags_ )
  26249. {
  26250. flags = flags_;
  26251. return *this;
  26252. }
  26253. PipelineRasterizationStateCreateInfo & setDepthClampEnable( Bool32 depthClampEnable_ )
  26254. {
  26255. depthClampEnable = depthClampEnable_;
  26256. return *this;
  26257. }
  26258. PipelineRasterizationStateCreateInfo & setRasterizerDiscardEnable( Bool32 rasterizerDiscardEnable_ )
  26259. {
  26260. rasterizerDiscardEnable = rasterizerDiscardEnable_;
  26261. return *this;
  26262. }
  26263. PipelineRasterizationStateCreateInfo & setPolygonMode( PolygonMode polygonMode_ )
  26264. {
  26265. polygonMode = polygonMode_;
  26266. return *this;
  26267. }
  26268. PipelineRasterizationStateCreateInfo & setCullMode( CullModeFlags cullMode_ )
  26269. {
  26270. cullMode = cullMode_;
  26271. return *this;
  26272. }
  26273. PipelineRasterizationStateCreateInfo & setFrontFace( FrontFace frontFace_ )
  26274. {
  26275. frontFace = frontFace_;
  26276. return *this;
  26277. }
  26278. PipelineRasterizationStateCreateInfo & setDepthBiasEnable( Bool32 depthBiasEnable_ )
  26279. {
  26280. depthBiasEnable = depthBiasEnable_;
  26281. return *this;
  26282. }
  26283. PipelineRasterizationStateCreateInfo & setDepthBiasConstantFactor( float depthBiasConstantFactor_ )
  26284. {
  26285. depthBiasConstantFactor = depthBiasConstantFactor_;
  26286. return *this;
  26287. }
  26288. PipelineRasterizationStateCreateInfo & setDepthBiasClamp( float depthBiasClamp_ )
  26289. {
  26290. depthBiasClamp = depthBiasClamp_;
  26291. return *this;
  26292. }
  26293. PipelineRasterizationStateCreateInfo & setDepthBiasSlopeFactor( float depthBiasSlopeFactor_ )
  26294. {
  26295. depthBiasSlopeFactor = depthBiasSlopeFactor_;
  26296. return *this;
  26297. }
  26298. PipelineRasterizationStateCreateInfo & setLineWidth( float lineWidth_ )
  26299. {
  26300. lineWidth = lineWidth_;
  26301. return *this;
  26302. }
  26303. operator VkPipelineRasterizationStateCreateInfo const&() const
  26304. {
  26305. return *reinterpret_cast<const VkPipelineRasterizationStateCreateInfo*>( this );
  26306. }
  26307. operator VkPipelineRasterizationStateCreateInfo &()
  26308. {
  26309. return *reinterpret_cast<VkPipelineRasterizationStateCreateInfo*>( this );
  26310. }
  26311. bool operator==( PipelineRasterizationStateCreateInfo const& rhs ) const
  26312. {
  26313. return ( sType == rhs.sType )
  26314. && ( pNext == rhs.pNext )
  26315. && ( flags == rhs.flags )
  26316. && ( depthClampEnable == rhs.depthClampEnable )
  26317. && ( rasterizerDiscardEnable == rhs.rasterizerDiscardEnable )
  26318. && ( polygonMode == rhs.polygonMode )
  26319. && ( cullMode == rhs.cullMode )
  26320. && ( frontFace == rhs.frontFace )
  26321. && ( depthBiasEnable == rhs.depthBiasEnable )
  26322. && ( depthBiasConstantFactor == rhs.depthBiasConstantFactor )
  26323. && ( depthBiasClamp == rhs.depthBiasClamp )
  26324. && ( depthBiasSlopeFactor == rhs.depthBiasSlopeFactor )
  26325. && ( lineWidth == rhs.lineWidth );
  26326. }
  26327. bool operator!=( PipelineRasterizationStateCreateInfo const& rhs ) const
  26328. {
  26329. return !operator==( rhs );
  26330. }
  26331. private:
  26332. StructureType sType = StructureType::ePipelineRasterizationStateCreateInfo;
  26333. public:
  26334. const void* pNext = nullptr;
  26335. PipelineRasterizationStateCreateFlags flags;
  26336. Bool32 depthClampEnable;
  26337. Bool32 rasterizerDiscardEnable;
  26338. PolygonMode polygonMode;
  26339. CullModeFlags cullMode;
  26340. FrontFace frontFace;
  26341. Bool32 depthBiasEnable;
  26342. float depthBiasConstantFactor;
  26343. float depthBiasClamp;
  26344. float depthBiasSlopeFactor;
  26345. float lineWidth;
  26346. };
  26347. static_assert( sizeof( PipelineRasterizationStateCreateInfo ) == sizeof( VkPipelineRasterizationStateCreateInfo ), "struct and wrapper have different size!" );
  26348. struct PipelineMultisampleStateCreateInfo
  26349. {
  26350. PipelineMultisampleStateCreateInfo( PipelineMultisampleStateCreateFlags flags_ = PipelineMultisampleStateCreateFlags(),
  26351. SampleCountFlagBits rasterizationSamples_ = SampleCountFlagBits::e1,
  26352. Bool32 sampleShadingEnable_ = 0,
  26353. float minSampleShading_ = 0,
  26354. const SampleMask* pSampleMask_ = nullptr,
  26355. Bool32 alphaToCoverageEnable_ = 0,
  26356. Bool32 alphaToOneEnable_ = 0 )
  26357. : flags( flags_ )
  26358. , rasterizationSamples( rasterizationSamples_ )
  26359. , sampleShadingEnable( sampleShadingEnable_ )
  26360. , minSampleShading( minSampleShading_ )
  26361. , pSampleMask( pSampleMask_ )
  26362. , alphaToCoverageEnable( alphaToCoverageEnable_ )
  26363. , alphaToOneEnable( alphaToOneEnable_ )
  26364. {}
  26365. PipelineMultisampleStateCreateInfo( VkPipelineMultisampleStateCreateInfo const & rhs )
  26366. {
  26367. *reinterpret_cast<VkPipelineMultisampleStateCreateInfo*>(this) = rhs;
  26368. }
  26369. PipelineMultisampleStateCreateInfo& operator=( VkPipelineMultisampleStateCreateInfo const & rhs )
  26370. {
  26371. *reinterpret_cast<VkPipelineMultisampleStateCreateInfo*>(this) = rhs;
  26372. return *this;
  26373. }
  26374. PipelineMultisampleStateCreateInfo & setPNext( const void* pNext_ )
  26375. {
  26376. pNext = pNext_;
  26377. return *this;
  26378. }
  26379. PipelineMultisampleStateCreateInfo & setFlags( PipelineMultisampleStateCreateFlags flags_ )
  26380. {
  26381. flags = flags_;
  26382. return *this;
  26383. }
  26384. PipelineMultisampleStateCreateInfo & setRasterizationSamples( SampleCountFlagBits rasterizationSamples_ )
  26385. {
  26386. rasterizationSamples = rasterizationSamples_;
  26387. return *this;
  26388. }
  26389. PipelineMultisampleStateCreateInfo & setSampleShadingEnable( Bool32 sampleShadingEnable_ )
  26390. {
  26391. sampleShadingEnable = sampleShadingEnable_;
  26392. return *this;
  26393. }
  26394. PipelineMultisampleStateCreateInfo & setMinSampleShading( float minSampleShading_ )
  26395. {
  26396. minSampleShading = minSampleShading_;
  26397. return *this;
  26398. }
  26399. PipelineMultisampleStateCreateInfo & setPSampleMask( const SampleMask* pSampleMask_ )
  26400. {
  26401. pSampleMask = pSampleMask_;
  26402. return *this;
  26403. }
  26404. PipelineMultisampleStateCreateInfo & setAlphaToCoverageEnable( Bool32 alphaToCoverageEnable_ )
  26405. {
  26406. alphaToCoverageEnable = alphaToCoverageEnable_;
  26407. return *this;
  26408. }
  26409. PipelineMultisampleStateCreateInfo & setAlphaToOneEnable( Bool32 alphaToOneEnable_ )
  26410. {
  26411. alphaToOneEnable = alphaToOneEnable_;
  26412. return *this;
  26413. }
  26414. operator VkPipelineMultisampleStateCreateInfo const&() const
  26415. {
  26416. return *reinterpret_cast<const VkPipelineMultisampleStateCreateInfo*>( this );
  26417. }
  26418. operator VkPipelineMultisampleStateCreateInfo &()
  26419. {
  26420. return *reinterpret_cast<VkPipelineMultisampleStateCreateInfo*>( this );
  26421. }
  26422. bool operator==( PipelineMultisampleStateCreateInfo const& rhs ) const
  26423. {
  26424. return ( sType == rhs.sType )
  26425. && ( pNext == rhs.pNext )
  26426. && ( flags == rhs.flags )
  26427. && ( rasterizationSamples == rhs.rasterizationSamples )
  26428. && ( sampleShadingEnable == rhs.sampleShadingEnable )
  26429. && ( minSampleShading == rhs.minSampleShading )
  26430. && ( pSampleMask == rhs.pSampleMask )
  26431. && ( alphaToCoverageEnable == rhs.alphaToCoverageEnable )
  26432. && ( alphaToOneEnable == rhs.alphaToOneEnable );
  26433. }
  26434. bool operator!=( PipelineMultisampleStateCreateInfo const& rhs ) const
  26435. {
  26436. return !operator==( rhs );
  26437. }
  26438. private:
  26439. StructureType sType = StructureType::ePipelineMultisampleStateCreateInfo;
  26440. public:
  26441. const void* pNext = nullptr;
  26442. PipelineMultisampleStateCreateFlags flags;
  26443. SampleCountFlagBits rasterizationSamples;
  26444. Bool32 sampleShadingEnable;
  26445. float minSampleShading;
  26446. const SampleMask* pSampleMask;
  26447. Bool32 alphaToCoverageEnable;
  26448. Bool32 alphaToOneEnable;
  26449. };
  26450. static_assert( sizeof( PipelineMultisampleStateCreateInfo ) == sizeof( VkPipelineMultisampleStateCreateInfo ), "struct and wrapper have different size!" );
  26451. struct StencilOpState
  26452. {
  26453. StencilOpState( StencilOp failOp_ = StencilOp::eKeep,
  26454. StencilOp passOp_ = StencilOp::eKeep,
  26455. StencilOp depthFailOp_ = StencilOp::eKeep,
  26456. CompareOp compareOp_ = CompareOp::eNever,
  26457. uint32_t compareMask_ = 0,
  26458. uint32_t writeMask_ = 0,
  26459. uint32_t reference_ = 0 )
  26460. : failOp( failOp_ )
  26461. , passOp( passOp_ )
  26462. , depthFailOp( depthFailOp_ )
  26463. , compareOp( compareOp_ )
  26464. , compareMask( compareMask_ )
  26465. , writeMask( writeMask_ )
  26466. , reference( reference_ )
  26467. {}
  26468. StencilOpState( VkStencilOpState const & rhs )
  26469. {
  26470. *reinterpret_cast<VkStencilOpState*>(this) = rhs;
  26471. }
  26472. StencilOpState& operator=( VkStencilOpState const & rhs )
  26473. {
  26474. *reinterpret_cast<VkStencilOpState*>(this) = rhs;
  26475. return *this;
  26476. }
  26477. StencilOpState & setFailOp( StencilOp failOp_ )
  26478. {
  26479. failOp = failOp_;
  26480. return *this;
  26481. }
  26482. StencilOpState & setPassOp( StencilOp passOp_ )
  26483. {
  26484. passOp = passOp_;
  26485. return *this;
  26486. }
  26487. StencilOpState & setDepthFailOp( StencilOp depthFailOp_ )
  26488. {
  26489. depthFailOp = depthFailOp_;
  26490. return *this;
  26491. }
  26492. StencilOpState & setCompareOp( CompareOp compareOp_ )
  26493. {
  26494. compareOp = compareOp_;
  26495. return *this;
  26496. }
  26497. StencilOpState & setCompareMask( uint32_t compareMask_ )
  26498. {
  26499. compareMask = compareMask_;
  26500. return *this;
  26501. }
  26502. StencilOpState & setWriteMask( uint32_t writeMask_ )
  26503. {
  26504. writeMask = writeMask_;
  26505. return *this;
  26506. }
  26507. StencilOpState & setReference( uint32_t reference_ )
  26508. {
  26509. reference = reference_;
  26510. return *this;
  26511. }
  26512. operator VkStencilOpState const&() const
  26513. {
  26514. return *reinterpret_cast<const VkStencilOpState*>( this );
  26515. }
  26516. operator VkStencilOpState &()
  26517. {
  26518. return *reinterpret_cast<VkStencilOpState*>( this );
  26519. }
  26520. bool operator==( StencilOpState const& rhs ) const
  26521. {
  26522. return ( failOp == rhs.failOp )
  26523. && ( passOp == rhs.passOp )
  26524. && ( depthFailOp == rhs.depthFailOp )
  26525. && ( compareOp == rhs.compareOp )
  26526. && ( compareMask == rhs.compareMask )
  26527. && ( writeMask == rhs.writeMask )
  26528. && ( reference == rhs.reference );
  26529. }
  26530. bool operator!=( StencilOpState const& rhs ) const
  26531. {
  26532. return !operator==( rhs );
  26533. }
  26534. StencilOp failOp;
  26535. StencilOp passOp;
  26536. StencilOp depthFailOp;
  26537. CompareOp compareOp;
  26538. uint32_t compareMask;
  26539. uint32_t writeMask;
  26540. uint32_t reference;
  26541. };
  26542. static_assert( sizeof( StencilOpState ) == sizeof( VkStencilOpState ), "struct and wrapper have different size!" );
  26543. struct PipelineDepthStencilStateCreateInfo
  26544. {
  26545. PipelineDepthStencilStateCreateInfo( PipelineDepthStencilStateCreateFlags flags_ = PipelineDepthStencilStateCreateFlags(),
  26546. Bool32 depthTestEnable_ = 0,
  26547. Bool32 depthWriteEnable_ = 0,
  26548. CompareOp depthCompareOp_ = CompareOp::eNever,
  26549. Bool32 depthBoundsTestEnable_ = 0,
  26550. Bool32 stencilTestEnable_ = 0,
  26551. StencilOpState front_ = StencilOpState(),
  26552. StencilOpState back_ = StencilOpState(),
  26553. float minDepthBounds_ = 0,
  26554. float maxDepthBounds_ = 0 )
  26555. : flags( flags_ )
  26556. , depthTestEnable( depthTestEnable_ )
  26557. , depthWriteEnable( depthWriteEnable_ )
  26558. , depthCompareOp( depthCompareOp_ )
  26559. , depthBoundsTestEnable( depthBoundsTestEnable_ )
  26560. , stencilTestEnable( stencilTestEnable_ )
  26561. , front( front_ )
  26562. , back( back_ )
  26563. , minDepthBounds( minDepthBounds_ )
  26564. , maxDepthBounds( maxDepthBounds_ )
  26565. {}
  26566. PipelineDepthStencilStateCreateInfo( VkPipelineDepthStencilStateCreateInfo const & rhs )
  26567. {
  26568. *reinterpret_cast<VkPipelineDepthStencilStateCreateInfo*>(this) = rhs;
  26569. }
  26570. PipelineDepthStencilStateCreateInfo& operator=( VkPipelineDepthStencilStateCreateInfo const & rhs )
  26571. {
  26572. *reinterpret_cast<VkPipelineDepthStencilStateCreateInfo*>(this) = rhs;
  26573. return *this;
  26574. }
  26575. PipelineDepthStencilStateCreateInfo & setPNext( const void* pNext_ )
  26576. {
  26577. pNext = pNext_;
  26578. return *this;
  26579. }
  26580. PipelineDepthStencilStateCreateInfo & setFlags( PipelineDepthStencilStateCreateFlags flags_ )
  26581. {
  26582. flags = flags_;
  26583. return *this;
  26584. }
  26585. PipelineDepthStencilStateCreateInfo & setDepthTestEnable( Bool32 depthTestEnable_ )
  26586. {
  26587. depthTestEnable = depthTestEnable_;
  26588. return *this;
  26589. }
  26590. PipelineDepthStencilStateCreateInfo & setDepthWriteEnable( Bool32 depthWriteEnable_ )
  26591. {
  26592. depthWriteEnable = depthWriteEnable_;
  26593. return *this;
  26594. }
  26595. PipelineDepthStencilStateCreateInfo & setDepthCompareOp( CompareOp depthCompareOp_ )
  26596. {
  26597. depthCompareOp = depthCompareOp_;
  26598. return *this;
  26599. }
  26600. PipelineDepthStencilStateCreateInfo & setDepthBoundsTestEnable( Bool32 depthBoundsTestEnable_ )
  26601. {
  26602. depthBoundsTestEnable = depthBoundsTestEnable_;
  26603. return *this;
  26604. }
  26605. PipelineDepthStencilStateCreateInfo & setStencilTestEnable( Bool32 stencilTestEnable_ )
  26606. {
  26607. stencilTestEnable = stencilTestEnable_;
  26608. return *this;
  26609. }
  26610. PipelineDepthStencilStateCreateInfo & setFront( StencilOpState front_ )
  26611. {
  26612. front = front_;
  26613. return *this;
  26614. }
  26615. PipelineDepthStencilStateCreateInfo & setBack( StencilOpState back_ )
  26616. {
  26617. back = back_;
  26618. return *this;
  26619. }
  26620. PipelineDepthStencilStateCreateInfo & setMinDepthBounds( float minDepthBounds_ )
  26621. {
  26622. minDepthBounds = minDepthBounds_;
  26623. return *this;
  26624. }
  26625. PipelineDepthStencilStateCreateInfo & setMaxDepthBounds( float maxDepthBounds_ )
  26626. {
  26627. maxDepthBounds = maxDepthBounds_;
  26628. return *this;
  26629. }
  26630. operator VkPipelineDepthStencilStateCreateInfo const&() const
  26631. {
  26632. return *reinterpret_cast<const VkPipelineDepthStencilStateCreateInfo*>( this );
  26633. }
  26634. operator VkPipelineDepthStencilStateCreateInfo &()
  26635. {
  26636. return *reinterpret_cast<VkPipelineDepthStencilStateCreateInfo*>( this );
  26637. }
  26638. bool operator==( PipelineDepthStencilStateCreateInfo const& rhs ) const
  26639. {
  26640. return ( sType == rhs.sType )
  26641. && ( pNext == rhs.pNext )
  26642. && ( flags == rhs.flags )
  26643. && ( depthTestEnable == rhs.depthTestEnable )
  26644. && ( depthWriteEnable == rhs.depthWriteEnable )
  26645. && ( depthCompareOp == rhs.depthCompareOp )
  26646. && ( depthBoundsTestEnable == rhs.depthBoundsTestEnable )
  26647. && ( stencilTestEnable == rhs.stencilTestEnable )
  26648. && ( front == rhs.front )
  26649. && ( back == rhs.back )
  26650. && ( minDepthBounds == rhs.minDepthBounds )
  26651. && ( maxDepthBounds == rhs.maxDepthBounds );
  26652. }
  26653. bool operator!=( PipelineDepthStencilStateCreateInfo const& rhs ) const
  26654. {
  26655. return !operator==( rhs );
  26656. }
  26657. private:
  26658. StructureType sType = StructureType::ePipelineDepthStencilStateCreateInfo;
  26659. public:
  26660. const void* pNext = nullptr;
  26661. PipelineDepthStencilStateCreateFlags flags;
  26662. Bool32 depthTestEnable;
  26663. Bool32 depthWriteEnable;
  26664. CompareOp depthCompareOp;
  26665. Bool32 depthBoundsTestEnable;
  26666. Bool32 stencilTestEnable;
  26667. StencilOpState front;
  26668. StencilOpState back;
  26669. float minDepthBounds;
  26670. float maxDepthBounds;
  26671. };
  26672. static_assert( sizeof( PipelineDepthStencilStateCreateInfo ) == sizeof( VkPipelineDepthStencilStateCreateInfo ), "struct and wrapper have different size!" );
  26673. struct PipelineColorBlendAttachmentState
  26674. {
  26675. PipelineColorBlendAttachmentState( Bool32 blendEnable_ = 0,
  26676. BlendFactor srcColorBlendFactor_ = BlendFactor::eZero,
  26677. BlendFactor dstColorBlendFactor_ = BlendFactor::eZero,
  26678. BlendOp colorBlendOp_ = BlendOp::eAdd,
  26679. BlendFactor srcAlphaBlendFactor_ = BlendFactor::eZero,
  26680. BlendFactor dstAlphaBlendFactor_ = BlendFactor::eZero,
  26681. BlendOp alphaBlendOp_ = BlendOp::eAdd,
  26682. ColorComponentFlags colorWriteMask_ = ColorComponentFlags() )
  26683. : blendEnable( blendEnable_ )
  26684. , srcColorBlendFactor( srcColorBlendFactor_ )
  26685. , dstColorBlendFactor( dstColorBlendFactor_ )
  26686. , colorBlendOp( colorBlendOp_ )
  26687. , srcAlphaBlendFactor( srcAlphaBlendFactor_ )
  26688. , dstAlphaBlendFactor( dstAlphaBlendFactor_ )
  26689. , alphaBlendOp( alphaBlendOp_ )
  26690. , colorWriteMask( colorWriteMask_ )
  26691. {}
  26692. PipelineColorBlendAttachmentState( VkPipelineColorBlendAttachmentState const & rhs )
  26693. {
  26694. *reinterpret_cast<VkPipelineColorBlendAttachmentState*>(this) = rhs;
  26695. }
  26696. PipelineColorBlendAttachmentState& operator=( VkPipelineColorBlendAttachmentState const & rhs )
  26697. {
  26698. *reinterpret_cast<VkPipelineColorBlendAttachmentState*>(this) = rhs;
  26699. return *this;
  26700. }
  26701. PipelineColorBlendAttachmentState & setBlendEnable( Bool32 blendEnable_ )
  26702. {
  26703. blendEnable = blendEnable_;
  26704. return *this;
  26705. }
  26706. PipelineColorBlendAttachmentState & setSrcColorBlendFactor( BlendFactor srcColorBlendFactor_ )
  26707. {
  26708. srcColorBlendFactor = srcColorBlendFactor_;
  26709. return *this;
  26710. }
  26711. PipelineColorBlendAttachmentState & setDstColorBlendFactor( BlendFactor dstColorBlendFactor_ )
  26712. {
  26713. dstColorBlendFactor = dstColorBlendFactor_;
  26714. return *this;
  26715. }
  26716. PipelineColorBlendAttachmentState & setColorBlendOp( BlendOp colorBlendOp_ )
  26717. {
  26718. colorBlendOp = colorBlendOp_;
  26719. return *this;
  26720. }
  26721. PipelineColorBlendAttachmentState & setSrcAlphaBlendFactor( BlendFactor srcAlphaBlendFactor_ )
  26722. {
  26723. srcAlphaBlendFactor = srcAlphaBlendFactor_;
  26724. return *this;
  26725. }
  26726. PipelineColorBlendAttachmentState & setDstAlphaBlendFactor( BlendFactor dstAlphaBlendFactor_ )
  26727. {
  26728. dstAlphaBlendFactor = dstAlphaBlendFactor_;
  26729. return *this;
  26730. }
  26731. PipelineColorBlendAttachmentState & setAlphaBlendOp( BlendOp alphaBlendOp_ )
  26732. {
  26733. alphaBlendOp = alphaBlendOp_;
  26734. return *this;
  26735. }
  26736. PipelineColorBlendAttachmentState & setColorWriteMask( ColorComponentFlags colorWriteMask_ )
  26737. {
  26738. colorWriteMask = colorWriteMask_;
  26739. return *this;
  26740. }
  26741. operator VkPipelineColorBlendAttachmentState const&() const
  26742. {
  26743. return *reinterpret_cast<const VkPipelineColorBlendAttachmentState*>( this );
  26744. }
  26745. operator VkPipelineColorBlendAttachmentState &()
  26746. {
  26747. return *reinterpret_cast<VkPipelineColorBlendAttachmentState*>( this );
  26748. }
  26749. bool operator==( PipelineColorBlendAttachmentState const& rhs ) const
  26750. {
  26751. return ( blendEnable == rhs.blendEnable )
  26752. && ( srcColorBlendFactor == rhs.srcColorBlendFactor )
  26753. && ( dstColorBlendFactor == rhs.dstColorBlendFactor )
  26754. && ( colorBlendOp == rhs.colorBlendOp )
  26755. && ( srcAlphaBlendFactor == rhs.srcAlphaBlendFactor )
  26756. && ( dstAlphaBlendFactor == rhs.dstAlphaBlendFactor )
  26757. && ( alphaBlendOp == rhs.alphaBlendOp )
  26758. && ( colorWriteMask == rhs.colorWriteMask );
  26759. }
  26760. bool operator!=( PipelineColorBlendAttachmentState const& rhs ) const
  26761. {
  26762. return !operator==( rhs );
  26763. }
  26764. Bool32 blendEnable;
  26765. BlendFactor srcColorBlendFactor;
  26766. BlendFactor dstColorBlendFactor;
  26767. BlendOp colorBlendOp;
  26768. BlendFactor srcAlphaBlendFactor;
  26769. BlendFactor dstAlphaBlendFactor;
  26770. BlendOp alphaBlendOp;
  26771. ColorComponentFlags colorWriteMask;
  26772. };
  26773. static_assert( sizeof( PipelineColorBlendAttachmentState ) == sizeof( VkPipelineColorBlendAttachmentState ), "struct and wrapper have different size!" );
  26774. struct PipelineColorBlendStateCreateInfo
  26775. {
  26776. PipelineColorBlendStateCreateInfo( PipelineColorBlendStateCreateFlags flags_ = PipelineColorBlendStateCreateFlags(),
  26777. Bool32 logicOpEnable_ = 0,
  26778. LogicOp logicOp_ = LogicOp::eClear,
  26779. uint32_t attachmentCount_ = 0,
  26780. const PipelineColorBlendAttachmentState* pAttachments_ = nullptr,
  26781. std::array<float,4> const& blendConstants_ = { { 0 } } )
  26782. : flags( flags_ )
  26783. , logicOpEnable( logicOpEnable_ )
  26784. , logicOp( logicOp_ )
  26785. , attachmentCount( attachmentCount_ )
  26786. , pAttachments( pAttachments_ )
  26787. {
  26788. memcpy( &blendConstants, blendConstants_.data(), 4 * sizeof( float ) );
  26789. }
  26790. PipelineColorBlendStateCreateInfo( VkPipelineColorBlendStateCreateInfo const & rhs )
  26791. {
  26792. *reinterpret_cast<VkPipelineColorBlendStateCreateInfo*>(this) = rhs;
  26793. }
  26794. PipelineColorBlendStateCreateInfo& operator=( VkPipelineColorBlendStateCreateInfo const & rhs )
  26795. {
  26796. *reinterpret_cast<VkPipelineColorBlendStateCreateInfo*>(this) = rhs;
  26797. return *this;
  26798. }
  26799. PipelineColorBlendStateCreateInfo & setPNext( const void* pNext_ )
  26800. {
  26801. pNext = pNext_;
  26802. return *this;
  26803. }
  26804. PipelineColorBlendStateCreateInfo & setFlags( PipelineColorBlendStateCreateFlags flags_ )
  26805. {
  26806. flags = flags_;
  26807. return *this;
  26808. }
  26809. PipelineColorBlendStateCreateInfo & setLogicOpEnable( Bool32 logicOpEnable_ )
  26810. {
  26811. logicOpEnable = logicOpEnable_;
  26812. return *this;
  26813. }
  26814. PipelineColorBlendStateCreateInfo & setLogicOp( LogicOp logicOp_ )
  26815. {
  26816. logicOp = logicOp_;
  26817. return *this;
  26818. }
  26819. PipelineColorBlendStateCreateInfo & setAttachmentCount( uint32_t attachmentCount_ )
  26820. {
  26821. attachmentCount = attachmentCount_;
  26822. return *this;
  26823. }
  26824. PipelineColorBlendStateCreateInfo & setPAttachments( const PipelineColorBlendAttachmentState* pAttachments_ )
  26825. {
  26826. pAttachments = pAttachments_;
  26827. return *this;
  26828. }
  26829. PipelineColorBlendStateCreateInfo & setBlendConstants( std::array<float,4> blendConstants_ )
  26830. {
  26831. memcpy( blendConstants, blendConstants_.data(), 4 * sizeof( float ) );
  26832. return *this;
  26833. }
  26834. operator VkPipelineColorBlendStateCreateInfo const&() const
  26835. {
  26836. return *reinterpret_cast<const VkPipelineColorBlendStateCreateInfo*>( this );
  26837. }
  26838. operator VkPipelineColorBlendStateCreateInfo &()
  26839. {
  26840. return *reinterpret_cast<VkPipelineColorBlendStateCreateInfo*>( this );
  26841. }
  26842. bool operator==( PipelineColorBlendStateCreateInfo const& rhs ) const
  26843. {
  26844. return ( sType == rhs.sType )
  26845. && ( pNext == rhs.pNext )
  26846. && ( flags == rhs.flags )
  26847. && ( logicOpEnable == rhs.logicOpEnable )
  26848. && ( logicOp == rhs.logicOp )
  26849. && ( attachmentCount == rhs.attachmentCount )
  26850. && ( pAttachments == rhs.pAttachments )
  26851. && ( memcmp( blendConstants, rhs.blendConstants, 4 * sizeof( float ) ) == 0 );
  26852. }
  26853. bool operator!=( PipelineColorBlendStateCreateInfo const& rhs ) const
  26854. {
  26855. return !operator==( rhs );
  26856. }
  26857. private:
  26858. StructureType sType = StructureType::ePipelineColorBlendStateCreateInfo;
  26859. public:
  26860. const void* pNext = nullptr;
  26861. PipelineColorBlendStateCreateFlags flags;
  26862. Bool32 logicOpEnable;
  26863. LogicOp logicOp;
  26864. uint32_t attachmentCount;
  26865. const PipelineColorBlendAttachmentState* pAttachments;
  26866. float blendConstants[4];
  26867. };
  26868. static_assert( sizeof( PipelineColorBlendStateCreateInfo ) == sizeof( VkPipelineColorBlendStateCreateInfo ), "struct and wrapper have different size!" );
  26869. struct PipelineDynamicStateCreateInfo
  26870. {
  26871. PipelineDynamicStateCreateInfo( PipelineDynamicStateCreateFlags flags_ = PipelineDynamicStateCreateFlags(),
  26872. uint32_t dynamicStateCount_ = 0,
  26873. const DynamicState* pDynamicStates_ = nullptr )
  26874. : flags( flags_ )
  26875. , dynamicStateCount( dynamicStateCount_ )
  26876. , pDynamicStates( pDynamicStates_ )
  26877. {}
  26878. PipelineDynamicStateCreateInfo( VkPipelineDynamicStateCreateInfo const & rhs )
  26879. {
  26880. *reinterpret_cast<VkPipelineDynamicStateCreateInfo*>(this) = rhs;
  26881. }
  26882. PipelineDynamicStateCreateInfo& operator=( VkPipelineDynamicStateCreateInfo const & rhs )
  26883. {
  26884. *reinterpret_cast<VkPipelineDynamicStateCreateInfo*>(this) = rhs;
  26885. return *this;
  26886. }
  26887. PipelineDynamicStateCreateInfo & setPNext( const void* pNext_ )
  26888. {
  26889. pNext = pNext_;
  26890. return *this;
  26891. }
  26892. PipelineDynamicStateCreateInfo & setFlags( PipelineDynamicStateCreateFlags flags_ )
  26893. {
  26894. flags = flags_;
  26895. return *this;
  26896. }
  26897. PipelineDynamicStateCreateInfo & setDynamicStateCount( uint32_t dynamicStateCount_ )
  26898. {
  26899. dynamicStateCount = dynamicStateCount_;
  26900. return *this;
  26901. }
  26902. PipelineDynamicStateCreateInfo & setPDynamicStates( const DynamicState* pDynamicStates_ )
  26903. {
  26904. pDynamicStates = pDynamicStates_;
  26905. return *this;
  26906. }
  26907. operator VkPipelineDynamicStateCreateInfo const&() const
  26908. {
  26909. return *reinterpret_cast<const VkPipelineDynamicStateCreateInfo*>( this );
  26910. }
  26911. operator VkPipelineDynamicStateCreateInfo &()
  26912. {
  26913. return *reinterpret_cast<VkPipelineDynamicStateCreateInfo*>( this );
  26914. }
  26915. bool operator==( PipelineDynamicStateCreateInfo const& rhs ) const
  26916. {
  26917. return ( sType == rhs.sType )
  26918. && ( pNext == rhs.pNext )
  26919. && ( flags == rhs.flags )
  26920. && ( dynamicStateCount == rhs.dynamicStateCount )
  26921. && ( pDynamicStates == rhs.pDynamicStates );
  26922. }
  26923. bool operator!=( PipelineDynamicStateCreateInfo const& rhs ) const
  26924. {
  26925. return !operator==( rhs );
  26926. }
  26927. private:
  26928. StructureType sType = StructureType::ePipelineDynamicStateCreateInfo;
  26929. public:
  26930. const void* pNext = nullptr;
  26931. PipelineDynamicStateCreateFlags flags;
  26932. uint32_t dynamicStateCount;
  26933. const DynamicState* pDynamicStates;
  26934. };
  26935. static_assert( sizeof( PipelineDynamicStateCreateInfo ) == sizeof( VkPipelineDynamicStateCreateInfo ), "struct and wrapper have different size!" );
  26936. struct GraphicsPipelineCreateInfo
  26937. {
  26938. GraphicsPipelineCreateInfo( PipelineCreateFlags flags_ = PipelineCreateFlags(),
  26939. uint32_t stageCount_ = 0,
  26940. const PipelineShaderStageCreateInfo* pStages_ = nullptr,
  26941. const PipelineVertexInputStateCreateInfo* pVertexInputState_ = nullptr,
  26942. const PipelineInputAssemblyStateCreateInfo* pInputAssemblyState_ = nullptr,
  26943. const PipelineTessellationStateCreateInfo* pTessellationState_ = nullptr,
  26944. const PipelineViewportStateCreateInfo* pViewportState_ = nullptr,
  26945. const PipelineRasterizationStateCreateInfo* pRasterizationState_ = nullptr,
  26946. const PipelineMultisampleStateCreateInfo* pMultisampleState_ = nullptr,
  26947. const PipelineDepthStencilStateCreateInfo* pDepthStencilState_ = nullptr,
  26948. const PipelineColorBlendStateCreateInfo* pColorBlendState_ = nullptr,
  26949. const PipelineDynamicStateCreateInfo* pDynamicState_ = nullptr,
  26950. PipelineLayout layout_ = PipelineLayout(),
  26951. RenderPass renderPass_ = RenderPass(),
  26952. uint32_t subpass_ = 0,
  26953. Pipeline basePipelineHandle_ = Pipeline(),
  26954. int32_t basePipelineIndex_ = 0 )
  26955. : flags( flags_ )
  26956. , stageCount( stageCount_ )
  26957. , pStages( pStages_ )
  26958. , pVertexInputState( pVertexInputState_ )
  26959. , pInputAssemblyState( pInputAssemblyState_ )
  26960. , pTessellationState( pTessellationState_ )
  26961. , pViewportState( pViewportState_ )
  26962. , pRasterizationState( pRasterizationState_ )
  26963. , pMultisampleState( pMultisampleState_ )
  26964. , pDepthStencilState( pDepthStencilState_ )
  26965. , pColorBlendState( pColorBlendState_ )
  26966. , pDynamicState( pDynamicState_ )
  26967. , layout( layout_ )
  26968. , renderPass( renderPass_ )
  26969. , subpass( subpass_ )
  26970. , basePipelineHandle( basePipelineHandle_ )
  26971. , basePipelineIndex( basePipelineIndex_ )
  26972. {}
  26973. GraphicsPipelineCreateInfo( VkGraphicsPipelineCreateInfo const & rhs )
  26974. {
  26975. *reinterpret_cast<VkGraphicsPipelineCreateInfo*>(this) = rhs;
  26976. }
  26977. GraphicsPipelineCreateInfo& operator=( VkGraphicsPipelineCreateInfo const & rhs )
  26978. {
  26979. *reinterpret_cast<VkGraphicsPipelineCreateInfo*>(this) = rhs;
  26980. return *this;
  26981. }
  26982. GraphicsPipelineCreateInfo & setPNext( const void* pNext_ )
  26983. {
  26984. pNext = pNext_;
  26985. return *this;
  26986. }
  26987. GraphicsPipelineCreateInfo & setFlags( PipelineCreateFlags flags_ )
  26988. {
  26989. flags = flags_;
  26990. return *this;
  26991. }
  26992. GraphicsPipelineCreateInfo & setStageCount( uint32_t stageCount_ )
  26993. {
  26994. stageCount = stageCount_;
  26995. return *this;
  26996. }
  26997. GraphicsPipelineCreateInfo & setPStages( const PipelineShaderStageCreateInfo* pStages_ )
  26998. {
  26999. pStages = pStages_;
  27000. return *this;
  27001. }
  27002. GraphicsPipelineCreateInfo & setPVertexInputState( const PipelineVertexInputStateCreateInfo* pVertexInputState_ )
  27003. {
  27004. pVertexInputState = pVertexInputState_;
  27005. return *this;
  27006. }
  27007. GraphicsPipelineCreateInfo & setPInputAssemblyState( const PipelineInputAssemblyStateCreateInfo* pInputAssemblyState_ )
  27008. {
  27009. pInputAssemblyState = pInputAssemblyState_;
  27010. return *this;
  27011. }
  27012. GraphicsPipelineCreateInfo & setPTessellationState( const PipelineTessellationStateCreateInfo* pTessellationState_ )
  27013. {
  27014. pTessellationState = pTessellationState_;
  27015. return *this;
  27016. }
  27017. GraphicsPipelineCreateInfo & setPViewportState( const PipelineViewportStateCreateInfo* pViewportState_ )
  27018. {
  27019. pViewportState = pViewportState_;
  27020. return *this;
  27021. }
  27022. GraphicsPipelineCreateInfo & setPRasterizationState( const PipelineRasterizationStateCreateInfo* pRasterizationState_ )
  27023. {
  27024. pRasterizationState = pRasterizationState_;
  27025. return *this;
  27026. }
  27027. GraphicsPipelineCreateInfo & setPMultisampleState( const PipelineMultisampleStateCreateInfo* pMultisampleState_ )
  27028. {
  27029. pMultisampleState = pMultisampleState_;
  27030. return *this;
  27031. }
  27032. GraphicsPipelineCreateInfo & setPDepthStencilState( const PipelineDepthStencilStateCreateInfo* pDepthStencilState_ )
  27033. {
  27034. pDepthStencilState = pDepthStencilState_;
  27035. return *this;
  27036. }
  27037. GraphicsPipelineCreateInfo & setPColorBlendState( const PipelineColorBlendStateCreateInfo* pColorBlendState_ )
  27038. {
  27039. pColorBlendState = pColorBlendState_;
  27040. return *this;
  27041. }
  27042. GraphicsPipelineCreateInfo & setPDynamicState( const PipelineDynamicStateCreateInfo* pDynamicState_ )
  27043. {
  27044. pDynamicState = pDynamicState_;
  27045. return *this;
  27046. }
  27047. GraphicsPipelineCreateInfo & setLayout( PipelineLayout layout_ )
  27048. {
  27049. layout = layout_;
  27050. return *this;
  27051. }
  27052. GraphicsPipelineCreateInfo & setRenderPass( RenderPass renderPass_ )
  27053. {
  27054. renderPass = renderPass_;
  27055. return *this;
  27056. }
  27057. GraphicsPipelineCreateInfo & setSubpass( uint32_t subpass_ )
  27058. {
  27059. subpass = subpass_;
  27060. return *this;
  27061. }
  27062. GraphicsPipelineCreateInfo & setBasePipelineHandle( Pipeline basePipelineHandle_ )
  27063. {
  27064. basePipelineHandle = basePipelineHandle_;
  27065. return *this;
  27066. }
  27067. GraphicsPipelineCreateInfo & setBasePipelineIndex( int32_t basePipelineIndex_ )
  27068. {
  27069. basePipelineIndex = basePipelineIndex_;
  27070. return *this;
  27071. }
  27072. operator VkGraphicsPipelineCreateInfo const&() const
  27073. {
  27074. return *reinterpret_cast<const VkGraphicsPipelineCreateInfo*>( this );
  27075. }
  27076. operator VkGraphicsPipelineCreateInfo &()
  27077. {
  27078. return *reinterpret_cast<VkGraphicsPipelineCreateInfo*>( this );
  27079. }
  27080. bool operator==( GraphicsPipelineCreateInfo const& rhs ) const
  27081. {
  27082. return ( sType == rhs.sType )
  27083. && ( pNext == rhs.pNext )
  27084. && ( flags == rhs.flags )
  27085. && ( stageCount == rhs.stageCount )
  27086. && ( pStages == rhs.pStages )
  27087. && ( pVertexInputState == rhs.pVertexInputState )
  27088. && ( pInputAssemblyState == rhs.pInputAssemblyState )
  27089. && ( pTessellationState == rhs.pTessellationState )
  27090. && ( pViewportState == rhs.pViewportState )
  27091. && ( pRasterizationState == rhs.pRasterizationState )
  27092. && ( pMultisampleState == rhs.pMultisampleState )
  27093. && ( pDepthStencilState == rhs.pDepthStencilState )
  27094. && ( pColorBlendState == rhs.pColorBlendState )
  27095. && ( pDynamicState == rhs.pDynamicState )
  27096. && ( layout == rhs.layout )
  27097. && ( renderPass == rhs.renderPass )
  27098. && ( subpass == rhs.subpass )
  27099. && ( basePipelineHandle == rhs.basePipelineHandle )
  27100. && ( basePipelineIndex == rhs.basePipelineIndex );
  27101. }
  27102. bool operator!=( GraphicsPipelineCreateInfo const& rhs ) const
  27103. {
  27104. return !operator==( rhs );
  27105. }
  27106. private:
  27107. StructureType sType = StructureType::eGraphicsPipelineCreateInfo;
  27108. public:
  27109. const void* pNext = nullptr;
  27110. PipelineCreateFlags flags;
  27111. uint32_t stageCount;
  27112. const PipelineShaderStageCreateInfo* pStages;
  27113. const PipelineVertexInputStateCreateInfo* pVertexInputState;
  27114. const PipelineInputAssemblyStateCreateInfo* pInputAssemblyState;
  27115. const PipelineTessellationStateCreateInfo* pTessellationState;
  27116. const PipelineViewportStateCreateInfo* pViewportState;
  27117. const PipelineRasterizationStateCreateInfo* pRasterizationState;
  27118. const PipelineMultisampleStateCreateInfo* pMultisampleState;
  27119. const PipelineDepthStencilStateCreateInfo* pDepthStencilState;
  27120. const PipelineColorBlendStateCreateInfo* pColorBlendState;
  27121. const PipelineDynamicStateCreateInfo* pDynamicState;
  27122. PipelineLayout layout;
  27123. RenderPass renderPass;
  27124. uint32_t subpass;
  27125. Pipeline basePipelineHandle;
  27126. int32_t basePipelineIndex;
  27127. };
  27128. static_assert( sizeof( GraphicsPipelineCreateInfo ) == sizeof( VkGraphicsPipelineCreateInfo ), "struct and wrapper have different size!" );
  27129. struct XYColorEXT
  27130. {
  27131. XYColorEXT( float x_ = 0,
  27132. float y_ = 0 )
  27133. : x( x_ )
  27134. , y( y_ )
  27135. {}
  27136. XYColorEXT( VkXYColorEXT const & rhs )
  27137. {
  27138. *reinterpret_cast<VkXYColorEXT*>(this) = rhs;
  27139. }
  27140. XYColorEXT& operator=( VkXYColorEXT const & rhs )
  27141. {
  27142. *reinterpret_cast<VkXYColorEXT*>(this) = rhs;
  27143. return *this;
  27144. }
  27145. XYColorEXT & setX( float x_ )
  27146. {
  27147. x = x_;
  27148. return *this;
  27149. }
  27150. XYColorEXT & setY( float y_ )
  27151. {
  27152. y = y_;
  27153. return *this;
  27154. }
  27155. operator VkXYColorEXT const&() const
  27156. {
  27157. return *reinterpret_cast<const VkXYColorEXT*>( this );
  27158. }
  27159. operator VkXYColorEXT &()
  27160. {
  27161. return *reinterpret_cast<VkXYColorEXT*>( this );
  27162. }
  27163. bool operator==( XYColorEXT const& rhs ) const
  27164. {
  27165. return ( x == rhs.x )
  27166. && ( y == rhs.y );
  27167. }
  27168. bool operator!=( XYColorEXT const& rhs ) const
  27169. {
  27170. return !operator==( rhs );
  27171. }
  27172. float x;
  27173. float y;
  27174. };
  27175. static_assert( sizeof( XYColorEXT ) == sizeof( VkXYColorEXT ), "struct and wrapper have different size!" );
  27176. struct HdrMetadataEXT
  27177. {
  27178. HdrMetadataEXT( XYColorEXT displayPrimaryRed_ = XYColorEXT(),
  27179. XYColorEXT displayPrimaryGreen_ = XYColorEXT(),
  27180. XYColorEXT displayPrimaryBlue_ = XYColorEXT(),
  27181. XYColorEXT whitePoint_ = XYColorEXT(),
  27182. float maxLuminance_ = 0,
  27183. float minLuminance_ = 0,
  27184. float maxContentLightLevel_ = 0,
  27185. float maxFrameAverageLightLevel_ = 0 )
  27186. : displayPrimaryRed( displayPrimaryRed_ )
  27187. , displayPrimaryGreen( displayPrimaryGreen_ )
  27188. , displayPrimaryBlue( displayPrimaryBlue_ )
  27189. , whitePoint( whitePoint_ )
  27190. , maxLuminance( maxLuminance_ )
  27191. , minLuminance( minLuminance_ )
  27192. , maxContentLightLevel( maxContentLightLevel_ )
  27193. , maxFrameAverageLightLevel( maxFrameAverageLightLevel_ )
  27194. {}
  27195. HdrMetadataEXT( VkHdrMetadataEXT const & rhs )
  27196. {
  27197. *reinterpret_cast<VkHdrMetadataEXT*>(this) = rhs;
  27198. }
  27199. HdrMetadataEXT& operator=( VkHdrMetadataEXT const & rhs )
  27200. {
  27201. *reinterpret_cast<VkHdrMetadataEXT*>(this) = rhs;
  27202. return *this;
  27203. }
  27204. HdrMetadataEXT & setPNext( const void* pNext_ )
  27205. {
  27206. pNext = pNext_;
  27207. return *this;
  27208. }
  27209. HdrMetadataEXT & setDisplayPrimaryRed( XYColorEXT displayPrimaryRed_ )
  27210. {
  27211. displayPrimaryRed = displayPrimaryRed_;
  27212. return *this;
  27213. }
  27214. HdrMetadataEXT & setDisplayPrimaryGreen( XYColorEXT displayPrimaryGreen_ )
  27215. {
  27216. displayPrimaryGreen = displayPrimaryGreen_;
  27217. return *this;
  27218. }
  27219. HdrMetadataEXT & setDisplayPrimaryBlue( XYColorEXT displayPrimaryBlue_ )
  27220. {
  27221. displayPrimaryBlue = displayPrimaryBlue_;
  27222. return *this;
  27223. }
  27224. HdrMetadataEXT & setWhitePoint( XYColorEXT whitePoint_ )
  27225. {
  27226. whitePoint = whitePoint_;
  27227. return *this;
  27228. }
  27229. HdrMetadataEXT & setMaxLuminance( float maxLuminance_ )
  27230. {
  27231. maxLuminance = maxLuminance_;
  27232. return *this;
  27233. }
  27234. HdrMetadataEXT & setMinLuminance( float minLuminance_ )
  27235. {
  27236. minLuminance = minLuminance_;
  27237. return *this;
  27238. }
  27239. HdrMetadataEXT & setMaxContentLightLevel( float maxContentLightLevel_ )
  27240. {
  27241. maxContentLightLevel = maxContentLightLevel_;
  27242. return *this;
  27243. }
  27244. HdrMetadataEXT & setMaxFrameAverageLightLevel( float maxFrameAverageLightLevel_ )
  27245. {
  27246. maxFrameAverageLightLevel = maxFrameAverageLightLevel_;
  27247. return *this;
  27248. }
  27249. operator VkHdrMetadataEXT const&() const
  27250. {
  27251. return *reinterpret_cast<const VkHdrMetadataEXT*>( this );
  27252. }
  27253. operator VkHdrMetadataEXT &()
  27254. {
  27255. return *reinterpret_cast<VkHdrMetadataEXT*>( this );
  27256. }
  27257. bool operator==( HdrMetadataEXT const& rhs ) const
  27258. {
  27259. return ( sType == rhs.sType )
  27260. && ( pNext == rhs.pNext )
  27261. && ( displayPrimaryRed == rhs.displayPrimaryRed )
  27262. && ( displayPrimaryGreen == rhs.displayPrimaryGreen )
  27263. && ( displayPrimaryBlue == rhs.displayPrimaryBlue )
  27264. && ( whitePoint == rhs.whitePoint )
  27265. && ( maxLuminance == rhs.maxLuminance )
  27266. && ( minLuminance == rhs.minLuminance )
  27267. && ( maxContentLightLevel == rhs.maxContentLightLevel )
  27268. && ( maxFrameAverageLightLevel == rhs.maxFrameAverageLightLevel );
  27269. }
  27270. bool operator!=( HdrMetadataEXT const& rhs ) const
  27271. {
  27272. return !operator==( rhs );
  27273. }
  27274. private:
  27275. StructureType sType = StructureType::eHdrMetadataEXT;
  27276. public:
  27277. const void* pNext = nullptr;
  27278. XYColorEXT displayPrimaryRed;
  27279. XYColorEXT displayPrimaryGreen;
  27280. XYColorEXT displayPrimaryBlue;
  27281. XYColorEXT whitePoint;
  27282. float maxLuminance;
  27283. float minLuminance;
  27284. float maxContentLightLevel;
  27285. float maxFrameAverageLightLevel;
  27286. };
  27287. static_assert( sizeof( HdrMetadataEXT ) == sizeof( VkHdrMetadataEXT ), "struct and wrapper have different size!" );
  27288. struct HeadlessSurfaceCreateInfoEXT
  27289. {
  27290. HeadlessSurfaceCreateInfoEXT( HeadlessSurfaceCreateFlagsEXT flags_ = HeadlessSurfaceCreateFlagsEXT() )
  27291. : flags( flags_ )
  27292. {}
  27293. HeadlessSurfaceCreateInfoEXT( VkHeadlessSurfaceCreateInfoEXT const & rhs )
  27294. {
  27295. *reinterpret_cast<VkHeadlessSurfaceCreateInfoEXT*>(this) = rhs;
  27296. }
  27297. HeadlessSurfaceCreateInfoEXT& operator=( VkHeadlessSurfaceCreateInfoEXT const & rhs )
  27298. {
  27299. *reinterpret_cast<VkHeadlessSurfaceCreateInfoEXT*>(this) = rhs;
  27300. return *this;
  27301. }
  27302. HeadlessSurfaceCreateInfoEXT & setPNext( const void* pNext_ )
  27303. {
  27304. pNext = pNext_;
  27305. return *this;
  27306. }
  27307. HeadlessSurfaceCreateInfoEXT & setFlags( HeadlessSurfaceCreateFlagsEXT flags_ )
  27308. {
  27309. flags = flags_;
  27310. return *this;
  27311. }
  27312. operator VkHeadlessSurfaceCreateInfoEXT const&() const
  27313. {
  27314. return *reinterpret_cast<const VkHeadlessSurfaceCreateInfoEXT*>( this );
  27315. }
  27316. operator VkHeadlessSurfaceCreateInfoEXT &()
  27317. {
  27318. return *reinterpret_cast<VkHeadlessSurfaceCreateInfoEXT*>( this );
  27319. }
  27320. bool operator==( HeadlessSurfaceCreateInfoEXT const& rhs ) const
  27321. {
  27322. return ( sType == rhs.sType )
  27323. && ( pNext == rhs.pNext )
  27324. && ( flags == rhs.flags );
  27325. }
  27326. bool operator!=( HeadlessSurfaceCreateInfoEXT const& rhs ) const
  27327. {
  27328. return !operator==( rhs );
  27329. }
  27330. private:
  27331. StructureType sType = StructureType::eHeadlessSurfaceCreateInfoEXT;
  27332. public:
  27333. const void* pNext = nullptr;
  27334. HeadlessSurfaceCreateFlagsEXT flags;
  27335. };
  27336. static_assert( sizeof( HeadlessSurfaceCreateInfoEXT ) == sizeof( VkHeadlessSurfaceCreateInfoEXT ), "struct and wrapper have different size!" );
  27337. #ifdef VK_USE_PLATFORM_IOS_MVK
  27338. struct IOSSurfaceCreateInfoMVK
  27339. {
  27340. IOSSurfaceCreateInfoMVK( IOSSurfaceCreateFlagsMVK flags_ = IOSSurfaceCreateFlagsMVK(),
  27341. const void* pView_ = nullptr )
  27342. : flags( flags_ )
  27343. , pView( pView_ )
  27344. {}
  27345. IOSSurfaceCreateInfoMVK( VkIOSSurfaceCreateInfoMVK const & rhs )
  27346. {
  27347. *reinterpret_cast<VkIOSSurfaceCreateInfoMVK*>(this) = rhs;
  27348. }
  27349. IOSSurfaceCreateInfoMVK& operator=( VkIOSSurfaceCreateInfoMVK const & rhs )
  27350. {
  27351. *reinterpret_cast<VkIOSSurfaceCreateInfoMVK*>(this) = rhs;
  27352. return *this;
  27353. }
  27354. IOSSurfaceCreateInfoMVK & setPNext( const void* pNext_ )
  27355. {
  27356. pNext = pNext_;
  27357. return *this;
  27358. }
  27359. IOSSurfaceCreateInfoMVK & setFlags( IOSSurfaceCreateFlagsMVK flags_ )
  27360. {
  27361. flags = flags_;
  27362. return *this;
  27363. }
  27364. IOSSurfaceCreateInfoMVK & setPView( const void* pView_ )
  27365. {
  27366. pView = pView_;
  27367. return *this;
  27368. }
  27369. operator VkIOSSurfaceCreateInfoMVK const&() const
  27370. {
  27371. return *reinterpret_cast<const VkIOSSurfaceCreateInfoMVK*>( this );
  27372. }
  27373. operator VkIOSSurfaceCreateInfoMVK &()
  27374. {
  27375. return *reinterpret_cast<VkIOSSurfaceCreateInfoMVK*>( this );
  27376. }
  27377. bool operator==( IOSSurfaceCreateInfoMVK const& rhs ) const
  27378. {
  27379. return ( sType == rhs.sType )
  27380. && ( pNext == rhs.pNext )
  27381. && ( flags == rhs.flags )
  27382. && ( pView == rhs.pView );
  27383. }
  27384. bool operator!=( IOSSurfaceCreateInfoMVK const& rhs ) const
  27385. {
  27386. return !operator==( rhs );
  27387. }
  27388. private:
  27389. StructureType sType = StructureType::eIosSurfaceCreateInfoMVK;
  27390. public:
  27391. const void* pNext = nullptr;
  27392. IOSSurfaceCreateFlagsMVK flags;
  27393. const void* pView;
  27394. };
  27395. static_assert( sizeof( IOSSurfaceCreateInfoMVK ) == sizeof( VkIOSSurfaceCreateInfoMVK ), "struct and wrapper have different size!" );
  27396. #endif /*VK_USE_PLATFORM_IOS_MVK*/
  27397. struct ImageBlit
  27398. {
  27399. ImageBlit( ImageSubresourceLayers srcSubresource_ = ImageSubresourceLayers(),
  27400. std::array<Offset3D,2> const& srcOffsets_ = { { Offset3D() } },
  27401. ImageSubresourceLayers dstSubresource_ = ImageSubresourceLayers(),
  27402. std::array<Offset3D,2> const& dstOffsets_ = { { Offset3D() } } )
  27403. : srcSubresource( srcSubresource_ )
  27404. , dstSubresource( dstSubresource_ )
  27405. {
  27406. memcpy( &srcOffsets, srcOffsets_.data(), 2 * sizeof( Offset3D ) );
  27407. memcpy( &dstOffsets, dstOffsets_.data(), 2 * sizeof( Offset3D ) );
  27408. }
  27409. ImageBlit( VkImageBlit const & rhs )
  27410. {
  27411. *reinterpret_cast<VkImageBlit*>(this) = rhs;
  27412. }
  27413. ImageBlit& operator=( VkImageBlit const & rhs )
  27414. {
  27415. *reinterpret_cast<VkImageBlit*>(this) = rhs;
  27416. return *this;
  27417. }
  27418. ImageBlit & setSrcSubresource( ImageSubresourceLayers srcSubresource_ )
  27419. {
  27420. srcSubresource = srcSubresource_;
  27421. return *this;
  27422. }
  27423. ImageBlit & setSrcOffsets( std::array<Offset3D,2> srcOffsets_ )
  27424. {
  27425. memcpy( srcOffsets, srcOffsets_.data(), 2 * sizeof( Offset3D ) );
  27426. return *this;
  27427. }
  27428. ImageBlit & setDstSubresource( ImageSubresourceLayers dstSubresource_ )
  27429. {
  27430. dstSubresource = dstSubresource_;
  27431. return *this;
  27432. }
  27433. ImageBlit & setDstOffsets( std::array<Offset3D,2> dstOffsets_ )
  27434. {
  27435. memcpy( dstOffsets, dstOffsets_.data(), 2 * sizeof( Offset3D ) );
  27436. return *this;
  27437. }
  27438. operator VkImageBlit const&() const
  27439. {
  27440. return *reinterpret_cast<const VkImageBlit*>( this );
  27441. }
  27442. operator VkImageBlit &()
  27443. {
  27444. return *reinterpret_cast<VkImageBlit*>( this );
  27445. }
  27446. bool operator==( ImageBlit const& rhs ) const
  27447. {
  27448. return ( srcSubresource == rhs.srcSubresource )
  27449. && ( memcmp( srcOffsets, rhs.srcOffsets, 2 * sizeof( Offset3D ) ) == 0 )
  27450. && ( dstSubresource == rhs.dstSubresource )
  27451. && ( memcmp( dstOffsets, rhs.dstOffsets, 2 * sizeof( Offset3D ) ) == 0 );
  27452. }
  27453. bool operator!=( ImageBlit const& rhs ) const
  27454. {
  27455. return !operator==( rhs );
  27456. }
  27457. ImageSubresourceLayers srcSubresource;
  27458. Offset3D srcOffsets[2];
  27459. ImageSubresourceLayers dstSubresource;
  27460. Offset3D dstOffsets[2];
  27461. };
  27462. static_assert( sizeof( ImageBlit ) == sizeof( VkImageBlit ), "struct and wrapper have different size!" );
  27463. struct ImageCopy
  27464. {
  27465. ImageCopy( ImageSubresourceLayers srcSubresource_ = ImageSubresourceLayers(),
  27466. Offset3D srcOffset_ = Offset3D(),
  27467. ImageSubresourceLayers dstSubresource_ = ImageSubresourceLayers(),
  27468. Offset3D dstOffset_ = Offset3D(),
  27469. Extent3D extent_ = Extent3D() )
  27470. : srcSubresource( srcSubresource_ )
  27471. , srcOffset( srcOffset_ )
  27472. , dstSubresource( dstSubresource_ )
  27473. , dstOffset( dstOffset_ )
  27474. , extent( extent_ )
  27475. {}
  27476. ImageCopy( VkImageCopy const & rhs )
  27477. {
  27478. *reinterpret_cast<VkImageCopy*>(this) = rhs;
  27479. }
  27480. ImageCopy& operator=( VkImageCopy const & rhs )
  27481. {
  27482. *reinterpret_cast<VkImageCopy*>(this) = rhs;
  27483. return *this;
  27484. }
  27485. ImageCopy & setSrcSubresource( ImageSubresourceLayers srcSubresource_ )
  27486. {
  27487. srcSubresource = srcSubresource_;
  27488. return *this;
  27489. }
  27490. ImageCopy & setSrcOffset( Offset3D srcOffset_ )
  27491. {
  27492. srcOffset = srcOffset_;
  27493. return *this;
  27494. }
  27495. ImageCopy & setDstSubresource( ImageSubresourceLayers dstSubresource_ )
  27496. {
  27497. dstSubresource = dstSubresource_;
  27498. return *this;
  27499. }
  27500. ImageCopy & setDstOffset( Offset3D dstOffset_ )
  27501. {
  27502. dstOffset = dstOffset_;
  27503. return *this;
  27504. }
  27505. ImageCopy & setExtent( Extent3D extent_ )
  27506. {
  27507. extent = extent_;
  27508. return *this;
  27509. }
  27510. operator VkImageCopy const&() const
  27511. {
  27512. return *reinterpret_cast<const VkImageCopy*>( this );
  27513. }
  27514. operator VkImageCopy &()
  27515. {
  27516. return *reinterpret_cast<VkImageCopy*>( this );
  27517. }
  27518. bool operator==( ImageCopy const& rhs ) const
  27519. {
  27520. return ( srcSubresource == rhs.srcSubresource )
  27521. && ( srcOffset == rhs.srcOffset )
  27522. && ( dstSubresource == rhs.dstSubresource )
  27523. && ( dstOffset == rhs.dstOffset )
  27524. && ( extent == rhs.extent );
  27525. }
  27526. bool operator!=( ImageCopy const& rhs ) const
  27527. {
  27528. return !operator==( rhs );
  27529. }
  27530. ImageSubresourceLayers srcSubresource;
  27531. Offset3D srcOffset;
  27532. ImageSubresourceLayers dstSubresource;
  27533. Offset3D dstOffset;
  27534. Extent3D extent;
  27535. };
  27536. static_assert( sizeof( ImageCopy ) == sizeof( VkImageCopy ), "struct and wrapper have different size!" );
  27537. struct ImageCreateInfo
  27538. {
  27539. ImageCreateInfo( ImageCreateFlags flags_ = ImageCreateFlags(),
  27540. ImageType imageType_ = ImageType::e1D,
  27541. Format format_ = Format::eUndefined,
  27542. Extent3D extent_ = Extent3D(),
  27543. uint32_t mipLevels_ = 0,
  27544. uint32_t arrayLayers_ = 0,
  27545. SampleCountFlagBits samples_ = SampleCountFlagBits::e1,
  27546. ImageTiling tiling_ = ImageTiling::eOptimal,
  27547. ImageUsageFlags usage_ = ImageUsageFlags(),
  27548. SharingMode sharingMode_ = SharingMode::eExclusive,
  27549. uint32_t queueFamilyIndexCount_ = 0,
  27550. const uint32_t* pQueueFamilyIndices_ = nullptr,
  27551. ImageLayout initialLayout_ = ImageLayout::eUndefined )
  27552. : flags( flags_ )
  27553. , imageType( imageType_ )
  27554. , format( format_ )
  27555. , extent( extent_ )
  27556. , mipLevels( mipLevels_ )
  27557. , arrayLayers( arrayLayers_ )
  27558. , samples( samples_ )
  27559. , tiling( tiling_ )
  27560. , usage( usage_ )
  27561. , sharingMode( sharingMode_ )
  27562. , queueFamilyIndexCount( queueFamilyIndexCount_ )
  27563. , pQueueFamilyIndices( pQueueFamilyIndices_ )
  27564. , initialLayout( initialLayout_ )
  27565. {}
  27566. ImageCreateInfo( VkImageCreateInfo const & rhs )
  27567. {
  27568. *reinterpret_cast<VkImageCreateInfo*>(this) = rhs;
  27569. }
  27570. ImageCreateInfo& operator=( VkImageCreateInfo const & rhs )
  27571. {
  27572. *reinterpret_cast<VkImageCreateInfo*>(this) = rhs;
  27573. return *this;
  27574. }
  27575. ImageCreateInfo & setPNext( const void* pNext_ )
  27576. {
  27577. pNext = pNext_;
  27578. return *this;
  27579. }
  27580. ImageCreateInfo & setFlags( ImageCreateFlags flags_ )
  27581. {
  27582. flags = flags_;
  27583. return *this;
  27584. }
  27585. ImageCreateInfo & setImageType( ImageType imageType_ )
  27586. {
  27587. imageType = imageType_;
  27588. return *this;
  27589. }
  27590. ImageCreateInfo & setFormat( Format format_ )
  27591. {
  27592. format = format_;
  27593. return *this;
  27594. }
  27595. ImageCreateInfo & setExtent( Extent3D extent_ )
  27596. {
  27597. extent = extent_;
  27598. return *this;
  27599. }
  27600. ImageCreateInfo & setMipLevels( uint32_t mipLevels_ )
  27601. {
  27602. mipLevels = mipLevels_;
  27603. return *this;
  27604. }
  27605. ImageCreateInfo & setArrayLayers( uint32_t arrayLayers_ )
  27606. {
  27607. arrayLayers = arrayLayers_;
  27608. return *this;
  27609. }
  27610. ImageCreateInfo & setSamples( SampleCountFlagBits samples_ )
  27611. {
  27612. samples = samples_;
  27613. return *this;
  27614. }
  27615. ImageCreateInfo & setTiling( ImageTiling tiling_ )
  27616. {
  27617. tiling = tiling_;
  27618. return *this;
  27619. }
  27620. ImageCreateInfo & setUsage( ImageUsageFlags usage_ )
  27621. {
  27622. usage = usage_;
  27623. return *this;
  27624. }
  27625. ImageCreateInfo & setSharingMode( SharingMode sharingMode_ )
  27626. {
  27627. sharingMode = sharingMode_;
  27628. return *this;
  27629. }
  27630. ImageCreateInfo & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ )
  27631. {
  27632. queueFamilyIndexCount = queueFamilyIndexCount_;
  27633. return *this;
  27634. }
  27635. ImageCreateInfo & setPQueueFamilyIndices( const uint32_t* pQueueFamilyIndices_ )
  27636. {
  27637. pQueueFamilyIndices = pQueueFamilyIndices_;
  27638. return *this;
  27639. }
  27640. ImageCreateInfo & setInitialLayout( ImageLayout initialLayout_ )
  27641. {
  27642. initialLayout = initialLayout_;
  27643. return *this;
  27644. }
  27645. operator VkImageCreateInfo const&() const
  27646. {
  27647. return *reinterpret_cast<const VkImageCreateInfo*>( this );
  27648. }
  27649. operator VkImageCreateInfo &()
  27650. {
  27651. return *reinterpret_cast<VkImageCreateInfo*>( this );
  27652. }
  27653. bool operator==( ImageCreateInfo const& rhs ) const
  27654. {
  27655. return ( sType == rhs.sType )
  27656. && ( pNext == rhs.pNext )
  27657. && ( flags == rhs.flags )
  27658. && ( imageType == rhs.imageType )
  27659. && ( format == rhs.format )
  27660. && ( extent == rhs.extent )
  27661. && ( mipLevels == rhs.mipLevels )
  27662. && ( arrayLayers == rhs.arrayLayers )
  27663. && ( samples == rhs.samples )
  27664. && ( tiling == rhs.tiling )
  27665. && ( usage == rhs.usage )
  27666. && ( sharingMode == rhs.sharingMode )
  27667. && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount )
  27668. && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices )
  27669. && ( initialLayout == rhs.initialLayout );
  27670. }
  27671. bool operator!=( ImageCreateInfo const& rhs ) const
  27672. {
  27673. return !operator==( rhs );
  27674. }
  27675. private:
  27676. StructureType sType = StructureType::eImageCreateInfo;
  27677. public:
  27678. const void* pNext = nullptr;
  27679. ImageCreateFlags flags;
  27680. ImageType imageType;
  27681. Format format;
  27682. Extent3D extent;
  27683. uint32_t mipLevels;
  27684. uint32_t arrayLayers;
  27685. SampleCountFlagBits samples;
  27686. ImageTiling tiling;
  27687. ImageUsageFlags usage;
  27688. SharingMode sharingMode;
  27689. uint32_t queueFamilyIndexCount;
  27690. const uint32_t* pQueueFamilyIndices;
  27691. ImageLayout initialLayout;
  27692. };
  27693. static_assert( sizeof( ImageCreateInfo ) == sizeof( VkImageCreateInfo ), "struct and wrapper have different size!" );
  27694. struct SubresourceLayout
  27695. {
  27696. operator VkSubresourceLayout const&() const
  27697. {
  27698. return *reinterpret_cast<const VkSubresourceLayout*>( this );
  27699. }
  27700. operator VkSubresourceLayout &()
  27701. {
  27702. return *reinterpret_cast<VkSubresourceLayout*>( this );
  27703. }
  27704. bool operator==( SubresourceLayout const& rhs ) const
  27705. {
  27706. return ( offset == rhs.offset )
  27707. && ( size == rhs.size )
  27708. && ( rowPitch == rhs.rowPitch )
  27709. && ( arrayPitch == rhs.arrayPitch )
  27710. && ( depthPitch == rhs.depthPitch );
  27711. }
  27712. bool operator!=( SubresourceLayout const& rhs ) const
  27713. {
  27714. return !operator==( rhs );
  27715. }
  27716. DeviceSize offset;
  27717. DeviceSize size;
  27718. DeviceSize rowPitch;
  27719. DeviceSize arrayPitch;
  27720. DeviceSize depthPitch;
  27721. };
  27722. static_assert( sizeof( SubresourceLayout ) == sizeof( VkSubresourceLayout ), "struct and wrapper have different size!" );
  27723. struct ImageDrmFormatModifierExplicitCreateInfoEXT
  27724. {
  27725. ImageDrmFormatModifierExplicitCreateInfoEXT( uint64_t drmFormatModifier_ = 0,
  27726. uint32_t drmFormatModifierPlaneCount_ = 0,
  27727. const SubresourceLayout* pPlaneLayouts_ = nullptr )
  27728. : drmFormatModifier( drmFormatModifier_ )
  27729. , drmFormatModifierPlaneCount( drmFormatModifierPlaneCount_ )
  27730. , pPlaneLayouts( pPlaneLayouts_ )
  27731. {}
  27732. ImageDrmFormatModifierExplicitCreateInfoEXT( VkImageDrmFormatModifierExplicitCreateInfoEXT const & rhs )
  27733. {
  27734. *reinterpret_cast<VkImageDrmFormatModifierExplicitCreateInfoEXT*>(this) = rhs;
  27735. }
  27736. ImageDrmFormatModifierExplicitCreateInfoEXT& operator=( VkImageDrmFormatModifierExplicitCreateInfoEXT const & rhs )
  27737. {
  27738. *reinterpret_cast<VkImageDrmFormatModifierExplicitCreateInfoEXT*>(this) = rhs;
  27739. return *this;
  27740. }
  27741. ImageDrmFormatModifierExplicitCreateInfoEXT & setPNext( const void* pNext_ )
  27742. {
  27743. pNext = pNext_;
  27744. return *this;
  27745. }
  27746. ImageDrmFormatModifierExplicitCreateInfoEXT & setDrmFormatModifier( uint64_t drmFormatModifier_ )
  27747. {
  27748. drmFormatModifier = drmFormatModifier_;
  27749. return *this;
  27750. }
  27751. ImageDrmFormatModifierExplicitCreateInfoEXT & setDrmFormatModifierPlaneCount( uint32_t drmFormatModifierPlaneCount_ )
  27752. {
  27753. drmFormatModifierPlaneCount = drmFormatModifierPlaneCount_;
  27754. return *this;
  27755. }
  27756. ImageDrmFormatModifierExplicitCreateInfoEXT & setPPlaneLayouts( const SubresourceLayout* pPlaneLayouts_ )
  27757. {
  27758. pPlaneLayouts = pPlaneLayouts_;
  27759. return *this;
  27760. }
  27761. operator VkImageDrmFormatModifierExplicitCreateInfoEXT const&() const
  27762. {
  27763. return *reinterpret_cast<const VkImageDrmFormatModifierExplicitCreateInfoEXT*>( this );
  27764. }
  27765. operator VkImageDrmFormatModifierExplicitCreateInfoEXT &()
  27766. {
  27767. return *reinterpret_cast<VkImageDrmFormatModifierExplicitCreateInfoEXT*>( this );
  27768. }
  27769. bool operator==( ImageDrmFormatModifierExplicitCreateInfoEXT const& rhs ) const
  27770. {
  27771. return ( sType == rhs.sType )
  27772. && ( pNext == rhs.pNext )
  27773. && ( drmFormatModifier == rhs.drmFormatModifier )
  27774. && ( drmFormatModifierPlaneCount == rhs.drmFormatModifierPlaneCount )
  27775. && ( pPlaneLayouts == rhs.pPlaneLayouts );
  27776. }
  27777. bool operator!=( ImageDrmFormatModifierExplicitCreateInfoEXT const& rhs ) const
  27778. {
  27779. return !operator==( rhs );
  27780. }
  27781. private:
  27782. StructureType sType = StructureType::eImageDrmFormatModifierExplicitCreateInfoEXT;
  27783. public:
  27784. const void* pNext = nullptr;
  27785. uint64_t drmFormatModifier;
  27786. uint32_t drmFormatModifierPlaneCount;
  27787. const SubresourceLayout* pPlaneLayouts;
  27788. };
  27789. static_assert( sizeof( ImageDrmFormatModifierExplicitCreateInfoEXT ) == sizeof( VkImageDrmFormatModifierExplicitCreateInfoEXT ), "struct and wrapper have different size!" );
  27790. struct ImageDrmFormatModifierListCreateInfoEXT
  27791. {
  27792. ImageDrmFormatModifierListCreateInfoEXT( uint32_t drmFormatModifierCount_ = 0,
  27793. const uint64_t* pDrmFormatModifiers_ = nullptr )
  27794. : drmFormatModifierCount( drmFormatModifierCount_ )
  27795. , pDrmFormatModifiers( pDrmFormatModifiers_ )
  27796. {}
  27797. ImageDrmFormatModifierListCreateInfoEXT( VkImageDrmFormatModifierListCreateInfoEXT const & rhs )
  27798. {
  27799. *reinterpret_cast<VkImageDrmFormatModifierListCreateInfoEXT*>(this) = rhs;
  27800. }
  27801. ImageDrmFormatModifierListCreateInfoEXT& operator=( VkImageDrmFormatModifierListCreateInfoEXT const & rhs )
  27802. {
  27803. *reinterpret_cast<VkImageDrmFormatModifierListCreateInfoEXT*>(this) = rhs;
  27804. return *this;
  27805. }
  27806. ImageDrmFormatModifierListCreateInfoEXT & setPNext( const void* pNext_ )
  27807. {
  27808. pNext = pNext_;
  27809. return *this;
  27810. }
  27811. ImageDrmFormatModifierListCreateInfoEXT & setDrmFormatModifierCount( uint32_t drmFormatModifierCount_ )
  27812. {
  27813. drmFormatModifierCount = drmFormatModifierCount_;
  27814. return *this;
  27815. }
  27816. ImageDrmFormatModifierListCreateInfoEXT & setPDrmFormatModifiers( const uint64_t* pDrmFormatModifiers_ )
  27817. {
  27818. pDrmFormatModifiers = pDrmFormatModifiers_;
  27819. return *this;
  27820. }
  27821. operator VkImageDrmFormatModifierListCreateInfoEXT const&() const
  27822. {
  27823. return *reinterpret_cast<const VkImageDrmFormatModifierListCreateInfoEXT*>( this );
  27824. }
  27825. operator VkImageDrmFormatModifierListCreateInfoEXT &()
  27826. {
  27827. return *reinterpret_cast<VkImageDrmFormatModifierListCreateInfoEXT*>( this );
  27828. }
  27829. bool operator==( ImageDrmFormatModifierListCreateInfoEXT const& rhs ) const
  27830. {
  27831. return ( sType == rhs.sType )
  27832. && ( pNext == rhs.pNext )
  27833. && ( drmFormatModifierCount == rhs.drmFormatModifierCount )
  27834. && ( pDrmFormatModifiers == rhs.pDrmFormatModifiers );
  27835. }
  27836. bool operator!=( ImageDrmFormatModifierListCreateInfoEXT const& rhs ) const
  27837. {
  27838. return !operator==( rhs );
  27839. }
  27840. private:
  27841. StructureType sType = StructureType::eImageDrmFormatModifierListCreateInfoEXT;
  27842. public:
  27843. const void* pNext = nullptr;
  27844. uint32_t drmFormatModifierCount;
  27845. const uint64_t* pDrmFormatModifiers;
  27846. };
  27847. static_assert( sizeof( ImageDrmFormatModifierListCreateInfoEXT ) == sizeof( VkImageDrmFormatModifierListCreateInfoEXT ), "struct and wrapper have different size!" );
  27848. struct ImageDrmFormatModifierPropertiesEXT
  27849. {
  27850. operator VkImageDrmFormatModifierPropertiesEXT const&() const
  27851. {
  27852. return *reinterpret_cast<const VkImageDrmFormatModifierPropertiesEXT*>( this );
  27853. }
  27854. operator VkImageDrmFormatModifierPropertiesEXT &()
  27855. {
  27856. return *reinterpret_cast<VkImageDrmFormatModifierPropertiesEXT*>( this );
  27857. }
  27858. bool operator==( ImageDrmFormatModifierPropertiesEXT const& rhs ) const
  27859. {
  27860. return ( sType == rhs.sType )
  27861. && ( pNext == rhs.pNext )
  27862. && ( drmFormatModifier == rhs.drmFormatModifier );
  27863. }
  27864. bool operator!=( ImageDrmFormatModifierPropertiesEXT const& rhs ) const
  27865. {
  27866. return !operator==( rhs );
  27867. }
  27868. private:
  27869. StructureType sType = StructureType::eImageDrmFormatModifierPropertiesEXT;
  27870. public:
  27871. void* pNext = nullptr;
  27872. uint64_t drmFormatModifier;
  27873. };
  27874. static_assert( sizeof( ImageDrmFormatModifierPropertiesEXT ) == sizeof( VkImageDrmFormatModifierPropertiesEXT ), "struct and wrapper have different size!" );
  27875. struct ImageFormatListCreateInfoKHR
  27876. {
  27877. ImageFormatListCreateInfoKHR( uint32_t viewFormatCount_ = 0,
  27878. const Format* pViewFormats_ = nullptr )
  27879. : viewFormatCount( viewFormatCount_ )
  27880. , pViewFormats( pViewFormats_ )
  27881. {}
  27882. ImageFormatListCreateInfoKHR( VkImageFormatListCreateInfoKHR const & rhs )
  27883. {
  27884. *reinterpret_cast<VkImageFormatListCreateInfoKHR*>(this) = rhs;
  27885. }
  27886. ImageFormatListCreateInfoKHR& operator=( VkImageFormatListCreateInfoKHR const & rhs )
  27887. {
  27888. *reinterpret_cast<VkImageFormatListCreateInfoKHR*>(this) = rhs;
  27889. return *this;
  27890. }
  27891. ImageFormatListCreateInfoKHR & setPNext( const void* pNext_ )
  27892. {
  27893. pNext = pNext_;
  27894. return *this;
  27895. }
  27896. ImageFormatListCreateInfoKHR & setViewFormatCount( uint32_t viewFormatCount_ )
  27897. {
  27898. viewFormatCount = viewFormatCount_;
  27899. return *this;
  27900. }
  27901. ImageFormatListCreateInfoKHR & setPViewFormats( const Format* pViewFormats_ )
  27902. {
  27903. pViewFormats = pViewFormats_;
  27904. return *this;
  27905. }
  27906. operator VkImageFormatListCreateInfoKHR const&() const
  27907. {
  27908. return *reinterpret_cast<const VkImageFormatListCreateInfoKHR*>( this );
  27909. }
  27910. operator VkImageFormatListCreateInfoKHR &()
  27911. {
  27912. return *reinterpret_cast<VkImageFormatListCreateInfoKHR*>( this );
  27913. }
  27914. bool operator==( ImageFormatListCreateInfoKHR const& rhs ) const
  27915. {
  27916. return ( sType == rhs.sType )
  27917. && ( pNext == rhs.pNext )
  27918. && ( viewFormatCount == rhs.viewFormatCount )
  27919. && ( pViewFormats == rhs.pViewFormats );
  27920. }
  27921. bool operator!=( ImageFormatListCreateInfoKHR const& rhs ) const
  27922. {
  27923. return !operator==( rhs );
  27924. }
  27925. private:
  27926. StructureType sType = StructureType::eImageFormatListCreateInfoKHR;
  27927. public:
  27928. const void* pNext = nullptr;
  27929. uint32_t viewFormatCount;
  27930. const Format* pViewFormats;
  27931. };
  27932. static_assert( sizeof( ImageFormatListCreateInfoKHR ) == sizeof( VkImageFormatListCreateInfoKHR ), "struct and wrapper have different size!" );
  27933. struct ImageFormatProperties2
  27934. {
  27935. operator VkImageFormatProperties2 const&() const
  27936. {
  27937. return *reinterpret_cast<const VkImageFormatProperties2*>( this );
  27938. }
  27939. operator VkImageFormatProperties2 &()
  27940. {
  27941. return *reinterpret_cast<VkImageFormatProperties2*>( this );
  27942. }
  27943. bool operator==( ImageFormatProperties2 const& rhs ) const
  27944. {
  27945. return ( sType == rhs.sType )
  27946. && ( pNext == rhs.pNext )
  27947. && ( imageFormatProperties == rhs.imageFormatProperties );
  27948. }
  27949. bool operator!=( ImageFormatProperties2 const& rhs ) const
  27950. {
  27951. return !operator==( rhs );
  27952. }
  27953. private:
  27954. StructureType sType = StructureType::eImageFormatProperties2;
  27955. public:
  27956. void* pNext = nullptr;
  27957. ImageFormatProperties imageFormatProperties;
  27958. };
  27959. static_assert( sizeof( ImageFormatProperties2 ) == sizeof( VkImageFormatProperties2 ), "struct and wrapper have different size!" );
  27960. struct ImageSubresourceRange
  27961. {
  27962. ImageSubresourceRange( ImageAspectFlags aspectMask_ = ImageAspectFlags(),
  27963. uint32_t baseMipLevel_ = 0,
  27964. uint32_t levelCount_ = 0,
  27965. uint32_t baseArrayLayer_ = 0,
  27966. uint32_t layerCount_ = 0 )
  27967. : aspectMask( aspectMask_ )
  27968. , baseMipLevel( baseMipLevel_ )
  27969. , levelCount( levelCount_ )
  27970. , baseArrayLayer( baseArrayLayer_ )
  27971. , layerCount( layerCount_ )
  27972. {}
  27973. ImageSubresourceRange( VkImageSubresourceRange const & rhs )
  27974. {
  27975. *reinterpret_cast<VkImageSubresourceRange*>(this) = rhs;
  27976. }
  27977. ImageSubresourceRange& operator=( VkImageSubresourceRange const & rhs )
  27978. {
  27979. *reinterpret_cast<VkImageSubresourceRange*>(this) = rhs;
  27980. return *this;
  27981. }
  27982. ImageSubresourceRange & setAspectMask( ImageAspectFlags aspectMask_ )
  27983. {
  27984. aspectMask = aspectMask_;
  27985. return *this;
  27986. }
  27987. ImageSubresourceRange & setBaseMipLevel( uint32_t baseMipLevel_ )
  27988. {
  27989. baseMipLevel = baseMipLevel_;
  27990. return *this;
  27991. }
  27992. ImageSubresourceRange & setLevelCount( uint32_t levelCount_ )
  27993. {
  27994. levelCount = levelCount_;
  27995. return *this;
  27996. }
  27997. ImageSubresourceRange & setBaseArrayLayer( uint32_t baseArrayLayer_ )
  27998. {
  27999. baseArrayLayer = baseArrayLayer_;
  28000. return *this;
  28001. }
  28002. ImageSubresourceRange & setLayerCount( uint32_t layerCount_ )
  28003. {
  28004. layerCount = layerCount_;
  28005. return *this;
  28006. }
  28007. operator VkImageSubresourceRange const&() const
  28008. {
  28009. return *reinterpret_cast<const VkImageSubresourceRange*>( this );
  28010. }
  28011. operator VkImageSubresourceRange &()
  28012. {
  28013. return *reinterpret_cast<VkImageSubresourceRange*>( this );
  28014. }
  28015. bool operator==( ImageSubresourceRange const& rhs ) const
  28016. {
  28017. return ( aspectMask == rhs.aspectMask )
  28018. && ( baseMipLevel == rhs.baseMipLevel )
  28019. && ( levelCount == rhs.levelCount )
  28020. && ( baseArrayLayer == rhs.baseArrayLayer )
  28021. && ( layerCount == rhs.layerCount );
  28022. }
  28023. bool operator!=( ImageSubresourceRange const& rhs ) const
  28024. {
  28025. return !operator==( rhs );
  28026. }
  28027. ImageAspectFlags aspectMask;
  28028. uint32_t baseMipLevel;
  28029. uint32_t levelCount;
  28030. uint32_t baseArrayLayer;
  28031. uint32_t layerCount;
  28032. };
  28033. static_assert( sizeof( ImageSubresourceRange ) == sizeof( VkImageSubresourceRange ), "struct and wrapper have different size!" );
  28034. struct ImageMemoryBarrier
  28035. {
  28036. ImageMemoryBarrier( AccessFlags srcAccessMask_ = AccessFlags(),
  28037. AccessFlags dstAccessMask_ = AccessFlags(),
  28038. ImageLayout oldLayout_ = ImageLayout::eUndefined,
  28039. ImageLayout newLayout_ = ImageLayout::eUndefined,
  28040. uint32_t srcQueueFamilyIndex_ = 0,
  28041. uint32_t dstQueueFamilyIndex_ = 0,
  28042. Image image_ = Image(),
  28043. ImageSubresourceRange subresourceRange_ = ImageSubresourceRange() )
  28044. : srcAccessMask( srcAccessMask_ )
  28045. , dstAccessMask( dstAccessMask_ )
  28046. , oldLayout( oldLayout_ )
  28047. , newLayout( newLayout_ )
  28048. , srcQueueFamilyIndex( srcQueueFamilyIndex_ )
  28049. , dstQueueFamilyIndex( dstQueueFamilyIndex_ )
  28050. , image( image_ )
  28051. , subresourceRange( subresourceRange_ )
  28052. {}
  28053. ImageMemoryBarrier( VkImageMemoryBarrier const & rhs )
  28054. {
  28055. *reinterpret_cast<VkImageMemoryBarrier*>(this) = rhs;
  28056. }
  28057. ImageMemoryBarrier& operator=( VkImageMemoryBarrier const & rhs )
  28058. {
  28059. *reinterpret_cast<VkImageMemoryBarrier*>(this) = rhs;
  28060. return *this;
  28061. }
  28062. ImageMemoryBarrier & setPNext( const void* pNext_ )
  28063. {
  28064. pNext = pNext_;
  28065. return *this;
  28066. }
  28067. ImageMemoryBarrier & setSrcAccessMask( AccessFlags srcAccessMask_ )
  28068. {
  28069. srcAccessMask = srcAccessMask_;
  28070. return *this;
  28071. }
  28072. ImageMemoryBarrier & setDstAccessMask( AccessFlags dstAccessMask_ )
  28073. {
  28074. dstAccessMask = dstAccessMask_;
  28075. return *this;
  28076. }
  28077. ImageMemoryBarrier & setOldLayout( ImageLayout oldLayout_ )
  28078. {
  28079. oldLayout = oldLayout_;
  28080. return *this;
  28081. }
  28082. ImageMemoryBarrier & setNewLayout( ImageLayout newLayout_ )
  28083. {
  28084. newLayout = newLayout_;
  28085. return *this;
  28086. }
  28087. ImageMemoryBarrier & setSrcQueueFamilyIndex( uint32_t srcQueueFamilyIndex_ )
  28088. {
  28089. srcQueueFamilyIndex = srcQueueFamilyIndex_;
  28090. return *this;
  28091. }
  28092. ImageMemoryBarrier & setDstQueueFamilyIndex( uint32_t dstQueueFamilyIndex_ )
  28093. {
  28094. dstQueueFamilyIndex = dstQueueFamilyIndex_;
  28095. return *this;
  28096. }
  28097. ImageMemoryBarrier & setImage( Image image_ )
  28098. {
  28099. image = image_;
  28100. return *this;
  28101. }
  28102. ImageMemoryBarrier & setSubresourceRange( ImageSubresourceRange subresourceRange_ )
  28103. {
  28104. subresourceRange = subresourceRange_;
  28105. return *this;
  28106. }
  28107. operator VkImageMemoryBarrier const&() const
  28108. {
  28109. return *reinterpret_cast<const VkImageMemoryBarrier*>( this );
  28110. }
  28111. operator VkImageMemoryBarrier &()
  28112. {
  28113. return *reinterpret_cast<VkImageMemoryBarrier*>( this );
  28114. }
  28115. bool operator==( ImageMemoryBarrier const& rhs ) const
  28116. {
  28117. return ( sType == rhs.sType )
  28118. && ( pNext == rhs.pNext )
  28119. && ( srcAccessMask == rhs.srcAccessMask )
  28120. && ( dstAccessMask == rhs.dstAccessMask )
  28121. && ( oldLayout == rhs.oldLayout )
  28122. && ( newLayout == rhs.newLayout )
  28123. && ( srcQueueFamilyIndex == rhs.srcQueueFamilyIndex )
  28124. && ( dstQueueFamilyIndex == rhs.dstQueueFamilyIndex )
  28125. && ( image == rhs.image )
  28126. && ( subresourceRange == rhs.subresourceRange );
  28127. }
  28128. bool operator!=( ImageMemoryBarrier const& rhs ) const
  28129. {
  28130. return !operator==( rhs );
  28131. }
  28132. private:
  28133. StructureType sType = StructureType::eImageMemoryBarrier;
  28134. public:
  28135. const void* pNext = nullptr;
  28136. AccessFlags srcAccessMask;
  28137. AccessFlags dstAccessMask;
  28138. ImageLayout oldLayout;
  28139. ImageLayout newLayout;
  28140. uint32_t srcQueueFamilyIndex;
  28141. uint32_t dstQueueFamilyIndex;
  28142. Image image;
  28143. ImageSubresourceRange subresourceRange;
  28144. };
  28145. static_assert( sizeof( ImageMemoryBarrier ) == sizeof( VkImageMemoryBarrier ), "struct and wrapper have different size!" );
  28146. struct ImageMemoryRequirementsInfo2
  28147. {
  28148. ImageMemoryRequirementsInfo2( Image image_ = Image() )
  28149. : image( image_ )
  28150. {}
  28151. ImageMemoryRequirementsInfo2( VkImageMemoryRequirementsInfo2 const & rhs )
  28152. {
  28153. *reinterpret_cast<VkImageMemoryRequirementsInfo2*>(this) = rhs;
  28154. }
  28155. ImageMemoryRequirementsInfo2& operator=( VkImageMemoryRequirementsInfo2 const & rhs )
  28156. {
  28157. *reinterpret_cast<VkImageMemoryRequirementsInfo2*>(this) = rhs;
  28158. return *this;
  28159. }
  28160. ImageMemoryRequirementsInfo2 & setPNext( const void* pNext_ )
  28161. {
  28162. pNext = pNext_;
  28163. return *this;
  28164. }
  28165. ImageMemoryRequirementsInfo2 & setImage( Image image_ )
  28166. {
  28167. image = image_;
  28168. return *this;
  28169. }
  28170. operator VkImageMemoryRequirementsInfo2 const&() const
  28171. {
  28172. return *reinterpret_cast<const VkImageMemoryRequirementsInfo2*>( this );
  28173. }
  28174. operator VkImageMemoryRequirementsInfo2 &()
  28175. {
  28176. return *reinterpret_cast<VkImageMemoryRequirementsInfo2*>( this );
  28177. }
  28178. bool operator==( ImageMemoryRequirementsInfo2 const& rhs ) const
  28179. {
  28180. return ( sType == rhs.sType )
  28181. && ( pNext == rhs.pNext )
  28182. && ( image == rhs.image );
  28183. }
  28184. bool operator!=( ImageMemoryRequirementsInfo2 const& rhs ) const
  28185. {
  28186. return !operator==( rhs );
  28187. }
  28188. private:
  28189. StructureType sType = StructureType::eImageMemoryRequirementsInfo2;
  28190. public:
  28191. const void* pNext = nullptr;
  28192. Image image;
  28193. };
  28194. static_assert( sizeof( ImageMemoryRequirementsInfo2 ) == sizeof( VkImageMemoryRequirementsInfo2 ), "struct and wrapper have different size!" );
  28195. #ifdef VK_USE_PLATFORM_FUCHSIA
  28196. struct ImagePipeSurfaceCreateInfoFUCHSIA
  28197. {
  28198. ImagePipeSurfaceCreateInfoFUCHSIA( ImagePipeSurfaceCreateFlagsFUCHSIA flags_ = ImagePipeSurfaceCreateFlagsFUCHSIA(),
  28199. zx_handle_t imagePipeHandle_ = 0 )
  28200. : flags( flags_ )
  28201. , imagePipeHandle( imagePipeHandle_ )
  28202. {}
  28203. ImagePipeSurfaceCreateInfoFUCHSIA( VkImagePipeSurfaceCreateInfoFUCHSIA const & rhs )
  28204. {
  28205. *reinterpret_cast<VkImagePipeSurfaceCreateInfoFUCHSIA*>(this) = rhs;
  28206. }
  28207. ImagePipeSurfaceCreateInfoFUCHSIA& operator=( VkImagePipeSurfaceCreateInfoFUCHSIA const & rhs )
  28208. {
  28209. *reinterpret_cast<VkImagePipeSurfaceCreateInfoFUCHSIA*>(this) = rhs;
  28210. return *this;
  28211. }
  28212. ImagePipeSurfaceCreateInfoFUCHSIA & setPNext( const void* pNext_ )
  28213. {
  28214. pNext = pNext_;
  28215. return *this;
  28216. }
  28217. ImagePipeSurfaceCreateInfoFUCHSIA & setFlags( ImagePipeSurfaceCreateFlagsFUCHSIA flags_ )
  28218. {
  28219. flags = flags_;
  28220. return *this;
  28221. }
  28222. ImagePipeSurfaceCreateInfoFUCHSIA & setImagePipeHandle( zx_handle_t imagePipeHandle_ )
  28223. {
  28224. imagePipeHandle = imagePipeHandle_;
  28225. return *this;
  28226. }
  28227. operator VkImagePipeSurfaceCreateInfoFUCHSIA const&() const
  28228. {
  28229. return *reinterpret_cast<const VkImagePipeSurfaceCreateInfoFUCHSIA*>( this );
  28230. }
  28231. operator VkImagePipeSurfaceCreateInfoFUCHSIA &()
  28232. {
  28233. return *reinterpret_cast<VkImagePipeSurfaceCreateInfoFUCHSIA*>( this );
  28234. }
  28235. bool operator==( ImagePipeSurfaceCreateInfoFUCHSIA const& rhs ) const
  28236. {
  28237. return ( sType == rhs.sType )
  28238. && ( pNext == rhs.pNext )
  28239. && ( flags == rhs.flags )
  28240. && ( imagePipeHandle == rhs.imagePipeHandle );
  28241. }
  28242. bool operator!=( ImagePipeSurfaceCreateInfoFUCHSIA const& rhs ) const
  28243. {
  28244. return !operator==( rhs );
  28245. }
  28246. private:
  28247. StructureType sType = StructureType::eImagepipeSurfaceCreateInfoFUCHSIA;
  28248. public:
  28249. const void* pNext = nullptr;
  28250. ImagePipeSurfaceCreateFlagsFUCHSIA flags;
  28251. zx_handle_t imagePipeHandle;
  28252. };
  28253. static_assert( sizeof( ImagePipeSurfaceCreateInfoFUCHSIA ) == sizeof( VkImagePipeSurfaceCreateInfoFUCHSIA ), "struct and wrapper have different size!" );
  28254. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  28255. struct ImagePlaneMemoryRequirementsInfo
  28256. {
  28257. ImagePlaneMemoryRequirementsInfo( ImageAspectFlagBits planeAspect_ = ImageAspectFlagBits::eColor )
  28258. : planeAspect( planeAspect_ )
  28259. {}
  28260. ImagePlaneMemoryRequirementsInfo( VkImagePlaneMemoryRequirementsInfo const & rhs )
  28261. {
  28262. *reinterpret_cast<VkImagePlaneMemoryRequirementsInfo*>(this) = rhs;
  28263. }
  28264. ImagePlaneMemoryRequirementsInfo& operator=( VkImagePlaneMemoryRequirementsInfo const & rhs )
  28265. {
  28266. *reinterpret_cast<VkImagePlaneMemoryRequirementsInfo*>(this) = rhs;
  28267. return *this;
  28268. }
  28269. ImagePlaneMemoryRequirementsInfo & setPNext( const void* pNext_ )
  28270. {
  28271. pNext = pNext_;
  28272. return *this;
  28273. }
  28274. ImagePlaneMemoryRequirementsInfo & setPlaneAspect( ImageAspectFlagBits planeAspect_ )
  28275. {
  28276. planeAspect = planeAspect_;
  28277. return *this;
  28278. }
  28279. operator VkImagePlaneMemoryRequirementsInfo const&() const
  28280. {
  28281. return *reinterpret_cast<const VkImagePlaneMemoryRequirementsInfo*>( this );
  28282. }
  28283. operator VkImagePlaneMemoryRequirementsInfo &()
  28284. {
  28285. return *reinterpret_cast<VkImagePlaneMemoryRequirementsInfo*>( this );
  28286. }
  28287. bool operator==( ImagePlaneMemoryRequirementsInfo const& rhs ) const
  28288. {
  28289. return ( sType == rhs.sType )
  28290. && ( pNext == rhs.pNext )
  28291. && ( planeAspect == rhs.planeAspect );
  28292. }
  28293. bool operator!=( ImagePlaneMemoryRequirementsInfo const& rhs ) const
  28294. {
  28295. return !operator==( rhs );
  28296. }
  28297. private:
  28298. StructureType sType = StructureType::eImagePlaneMemoryRequirementsInfo;
  28299. public:
  28300. const void* pNext = nullptr;
  28301. ImageAspectFlagBits planeAspect;
  28302. };
  28303. static_assert( sizeof( ImagePlaneMemoryRequirementsInfo ) == sizeof( VkImagePlaneMemoryRequirementsInfo ), "struct and wrapper have different size!" );
  28304. struct ImageResolve
  28305. {
  28306. ImageResolve( ImageSubresourceLayers srcSubresource_ = ImageSubresourceLayers(),
  28307. Offset3D srcOffset_ = Offset3D(),
  28308. ImageSubresourceLayers dstSubresource_ = ImageSubresourceLayers(),
  28309. Offset3D dstOffset_ = Offset3D(),
  28310. Extent3D extent_ = Extent3D() )
  28311. : srcSubresource( srcSubresource_ )
  28312. , srcOffset( srcOffset_ )
  28313. , dstSubresource( dstSubresource_ )
  28314. , dstOffset( dstOffset_ )
  28315. , extent( extent_ )
  28316. {}
  28317. ImageResolve( VkImageResolve const & rhs )
  28318. {
  28319. *reinterpret_cast<VkImageResolve*>(this) = rhs;
  28320. }
  28321. ImageResolve& operator=( VkImageResolve const & rhs )
  28322. {
  28323. *reinterpret_cast<VkImageResolve*>(this) = rhs;
  28324. return *this;
  28325. }
  28326. ImageResolve & setSrcSubresource( ImageSubresourceLayers srcSubresource_ )
  28327. {
  28328. srcSubresource = srcSubresource_;
  28329. return *this;
  28330. }
  28331. ImageResolve & setSrcOffset( Offset3D srcOffset_ )
  28332. {
  28333. srcOffset = srcOffset_;
  28334. return *this;
  28335. }
  28336. ImageResolve & setDstSubresource( ImageSubresourceLayers dstSubresource_ )
  28337. {
  28338. dstSubresource = dstSubresource_;
  28339. return *this;
  28340. }
  28341. ImageResolve & setDstOffset( Offset3D dstOffset_ )
  28342. {
  28343. dstOffset = dstOffset_;
  28344. return *this;
  28345. }
  28346. ImageResolve & setExtent( Extent3D extent_ )
  28347. {
  28348. extent = extent_;
  28349. return *this;
  28350. }
  28351. operator VkImageResolve const&() const
  28352. {
  28353. return *reinterpret_cast<const VkImageResolve*>( this );
  28354. }
  28355. operator VkImageResolve &()
  28356. {
  28357. return *reinterpret_cast<VkImageResolve*>( this );
  28358. }
  28359. bool operator==( ImageResolve const& rhs ) const
  28360. {
  28361. return ( srcSubresource == rhs.srcSubresource )
  28362. && ( srcOffset == rhs.srcOffset )
  28363. && ( dstSubresource == rhs.dstSubresource )
  28364. && ( dstOffset == rhs.dstOffset )
  28365. && ( extent == rhs.extent );
  28366. }
  28367. bool operator!=( ImageResolve const& rhs ) const
  28368. {
  28369. return !operator==( rhs );
  28370. }
  28371. ImageSubresourceLayers srcSubresource;
  28372. Offset3D srcOffset;
  28373. ImageSubresourceLayers dstSubresource;
  28374. Offset3D dstOffset;
  28375. Extent3D extent;
  28376. };
  28377. static_assert( sizeof( ImageResolve ) == sizeof( VkImageResolve ), "struct and wrapper have different size!" );
  28378. struct ImageSparseMemoryRequirementsInfo2
  28379. {
  28380. ImageSparseMemoryRequirementsInfo2( Image image_ = Image() )
  28381. : image( image_ )
  28382. {}
  28383. ImageSparseMemoryRequirementsInfo2( VkImageSparseMemoryRequirementsInfo2 const & rhs )
  28384. {
  28385. *reinterpret_cast<VkImageSparseMemoryRequirementsInfo2*>(this) = rhs;
  28386. }
  28387. ImageSparseMemoryRequirementsInfo2& operator=( VkImageSparseMemoryRequirementsInfo2 const & rhs )
  28388. {
  28389. *reinterpret_cast<VkImageSparseMemoryRequirementsInfo2*>(this) = rhs;
  28390. return *this;
  28391. }
  28392. ImageSparseMemoryRequirementsInfo2 & setPNext( const void* pNext_ )
  28393. {
  28394. pNext = pNext_;
  28395. return *this;
  28396. }
  28397. ImageSparseMemoryRequirementsInfo2 & setImage( Image image_ )
  28398. {
  28399. image = image_;
  28400. return *this;
  28401. }
  28402. operator VkImageSparseMemoryRequirementsInfo2 const&() const
  28403. {
  28404. return *reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2*>( this );
  28405. }
  28406. operator VkImageSparseMemoryRequirementsInfo2 &()
  28407. {
  28408. return *reinterpret_cast<VkImageSparseMemoryRequirementsInfo2*>( this );
  28409. }
  28410. bool operator==( ImageSparseMemoryRequirementsInfo2 const& rhs ) const
  28411. {
  28412. return ( sType == rhs.sType )
  28413. && ( pNext == rhs.pNext )
  28414. && ( image == rhs.image );
  28415. }
  28416. bool operator!=( ImageSparseMemoryRequirementsInfo2 const& rhs ) const
  28417. {
  28418. return !operator==( rhs );
  28419. }
  28420. private:
  28421. StructureType sType = StructureType::eImageSparseMemoryRequirementsInfo2;
  28422. public:
  28423. const void* pNext = nullptr;
  28424. Image image;
  28425. };
  28426. static_assert( sizeof( ImageSparseMemoryRequirementsInfo2 ) == sizeof( VkImageSparseMemoryRequirementsInfo2 ), "struct and wrapper have different size!" );
  28427. struct ImageStencilUsageCreateInfoEXT
  28428. {
  28429. ImageStencilUsageCreateInfoEXT( ImageUsageFlags stencilUsage_ = ImageUsageFlags() )
  28430. : stencilUsage( stencilUsage_ )
  28431. {}
  28432. ImageStencilUsageCreateInfoEXT( VkImageStencilUsageCreateInfoEXT const & rhs )
  28433. {
  28434. *reinterpret_cast<VkImageStencilUsageCreateInfoEXT*>(this) = rhs;
  28435. }
  28436. ImageStencilUsageCreateInfoEXT& operator=( VkImageStencilUsageCreateInfoEXT const & rhs )
  28437. {
  28438. *reinterpret_cast<VkImageStencilUsageCreateInfoEXT*>(this) = rhs;
  28439. return *this;
  28440. }
  28441. ImageStencilUsageCreateInfoEXT & setPNext( const void* pNext_ )
  28442. {
  28443. pNext = pNext_;
  28444. return *this;
  28445. }
  28446. ImageStencilUsageCreateInfoEXT & setStencilUsage( ImageUsageFlags stencilUsage_ )
  28447. {
  28448. stencilUsage = stencilUsage_;
  28449. return *this;
  28450. }
  28451. operator VkImageStencilUsageCreateInfoEXT const&() const
  28452. {
  28453. return *reinterpret_cast<const VkImageStencilUsageCreateInfoEXT*>( this );
  28454. }
  28455. operator VkImageStencilUsageCreateInfoEXT &()
  28456. {
  28457. return *reinterpret_cast<VkImageStencilUsageCreateInfoEXT*>( this );
  28458. }
  28459. bool operator==( ImageStencilUsageCreateInfoEXT const& rhs ) const
  28460. {
  28461. return ( sType == rhs.sType )
  28462. && ( pNext == rhs.pNext )
  28463. && ( stencilUsage == rhs.stencilUsage );
  28464. }
  28465. bool operator!=( ImageStencilUsageCreateInfoEXT const& rhs ) const
  28466. {
  28467. return !operator==( rhs );
  28468. }
  28469. private:
  28470. StructureType sType = StructureType::eImageStencilUsageCreateInfoEXT;
  28471. public:
  28472. const void* pNext = nullptr;
  28473. ImageUsageFlags stencilUsage;
  28474. };
  28475. static_assert( sizeof( ImageStencilUsageCreateInfoEXT ) == sizeof( VkImageStencilUsageCreateInfoEXT ), "struct and wrapper have different size!" );
  28476. struct ImageSwapchainCreateInfoKHR
  28477. {
  28478. ImageSwapchainCreateInfoKHR( SwapchainKHR swapchain_ = SwapchainKHR() )
  28479. : swapchain( swapchain_ )
  28480. {}
  28481. ImageSwapchainCreateInfoKHR( VkImageSwapchainCreateInfoKHR const & rhs )
  28482. {
  28483. *reinterpret_cast<VkImageSwapchainCreateInfoKHR*>(this) = rhs;
  28484. }
  28485. ImageSwapchainCreateInfoKHR& operator=( VkImageSwapchainCreateInfoKHR const & rhs )
  28486. {
  28487. *reinterpret_cast<VkImageSwapchainCreateInfoKHR*>(this) = rhs;
  28488. return *this;
  28489. }
  28490. ImageSwapchainCreateInfoKHR & setPNext( const void* pNext_ )
  28491. {
  28492. pNext = pNext_;
  28493. return *this;
  28494. }
  28495. ImageSwapchainCreateInfoKHR & setSwapchain( SwapchainKHR swapchain_ )
  28496. {
  28497. swapchain = swapchain_;
  28498. return *this;
  28499. }
  28500. operator VkImageSwapchainCreateInfoKHR const&() const
  28501. {
  28502. return *reinterpret_cast<const VkImageSwapchainCreateInfoKHR*>( this );
  28503. }
  28504. operator VkImageSwapchainCreateInfoKHR &()
  28505. {
  28506. return *reinterpret_cast<VkImageSwapchainCreateInfoKHR*>( this );
  28507. }
  28508. bool operator==( ImageSwapchainCreateInfoKHR const& rhs ) const
  28509. {
  28510. return ( sType == rhs.sType )
  28511. && ( pNext == rhs.pNext )
  28512. && ( swapchain == rhs.swapchain );
  28513. }
  28514. bool operator!=( ImageSwapchainCreateInfoKHR const& rhs ) const
  28515. {
  28516. return !operator==( rhs );
  28517. }
  28518. private:
  28519. StructureType sType = StructureType::eImageSwapchainCreateInfoKHR;
  28520. public:
  28521. const void* pNext = nullptr;
  28522. SwapchainKHR swapchain;
  28523. };
  28524. static_assert( sizeof( ImageSwapchainCreateInfoKHR ) == sizeof( VkImageSwapchainCreateInfoKHR ), "struct and wrapper have different size!" );
  28525. struct ImageViewASTCDecodeModeEXT
  28526. {
  28527. ImageViewASTCDecodeModeEXT( Format decodeMode_ = Format::eUndefined )
  28528. : decodeMode( decodeMode_ )
  28529. {}
  28530. ImageViewASTCDecodeModeEXT( VkImageViewASTCDecodeModeEXT const & rhs )
  28531. {
  28532. *reinterpret_cast<VkImageViewASTCDecodeModeEXT*>(this) = rhs;
  28533. }
  28534. ImageViewASTCDecodeModeEXT& operator=( VkImageViewASTCDecodeModeEXT const & rhs )
  28535. {
  28536. *reinterpret_cast<VkImageViewASTCDecodeModeEXT*>(this) = rhs;
  28537. return *this;
  28538. }
  28539. ImageViewASTCDecodeModeEXT & setPNext( const void* pNext_ )
  28540. {
  28541. pNext = pNext_;
  28542. return *this;
  28543. }
  28544. ImageViewASTCDecodeModeEXT & setDecodeMode( Format decodeMode_ )
  28545. {
  28546. decodeMode = decodeMode_;
  28547. return *this;
  28548. }
  28549. operator VkImageViewASTCDecodeModeEXT const&() const
  28550. {
  28551. return *reinterpret_cast<const VkImageViewASTCDecodeModeEXT*>( this );
  28552. }
  28553. operator VkImageViewASTCDecodeModeEXT &()
  28554. {
  28555. return *reinterpret_cast<VkImageViewASTCDecodeModeEXT*>( this );
  28556. }
  28557. bool operator==( ImageViewASTCDecodeModeEXT const& rhs ) const
  28558. {
  28559. return ( sType == rhs.sType )
  28560. && ( pNext == rhs.pNext )
  28561. && ( decodeMode == rhs.decodeMode );
  28562. }
  28563. bool operator!=( ImageViewASTCDecodeModeEXT const& rhs ) const
  28564. {
  28565. return !operator==( rhs );
  28566. }
  28567. private:
  28568. StructureType sType = StructureType::eImageViewAstcDecodeModeEXT;
  28569. public:
  28570. const void* pNext = nullptr;
  28571. Format decodeMode;
  28572. };
  28573. static_assert( sizeof( ImageViewASTCDecodeModeEXT ) == sizeof( VkImageViewASTCDecodeModeEXT ), "struct and wrapper have different size!" );
  28574. struct ImageViewCreateInfo
  28575. {
  28576. ImageViewCreateInfo( ImageViewCreateFlags flags_ = ImageViewCreateFlags(),
  28577. Image image_ = Image(),
  28578. ImageViewType viewType_ = ImageViewType::e1D,
  28579. Format format_ = Format::eUndefined,
  28580. ComponentMapping components_ = ComponentMapping(),
  28581. ImageSubresourceRange subresourceRange_ = ImageSubresourceRange() )
  28582. : flags( flags_ )
  28583. , image( image_ )
  28584. , viewType( viewType_ )
  28585. , format( format_ )
  28586. , components( components_ )
  28587. , subresourceRange( subresourceRange_ )
  28588. {}
  28589. ImageViewCreateInfo( VkImageViewCreateInfo const & rhs )
  28590. {
  28591. *reinterpret_cast<VkImageViewCreateInfo*>(this) = rhs;
  28592. }
  28593. ImageViewCreateInfo& operator=( VkImageViewCreateInfo const & rhs )
  28594. {
  28595. *reinterpret_cast<VkImageViewCreateInfo*>(this) = rhs;
  28596. return *this;
  28597. }
  28598. ImageViewCreateInfo & setPNext( const void* pNext_ )
  28599. {
  28600. pNext = pNext_;
  28601. return *this;
  28602. }
  28603. ImageViewCreateInfo & setFlags( ImageViewCreateFlags flags_ )
  28604. {
  28605. flags = flags_;
  28606. return *this;
  28607. }
  28608. ImageViewCreateInfo & setImage( Image image_ )
  28609. {
  28610. image = image_;
  28611. return *this;
  28612. }
  28613. ImageViewCreateInfo & setViewType( ImageViewType viewType_ )
  28614. {
  28615. viewType = viewType_;
  28616. return *this;
  28617. }
  28618. ImageViewCreateInfo & setFormat( Format format_ )
  28619. {
  28620. format = format_;
  28621. return *this;
  28622. }
  28623. ImageViewCreateInfo & setComponents( ComponentMapping components_ )
  28624. {
  28625. components = components_;
  28626. return *this;
  28627. }
  28628. ImageViewCreateInfo & setSubresourceRange( ImageSubresourceRange subresourceRange_ )
  28629. {
  28630. subresourceRange = subresourceRange_;
  28631. return *this;
  28632. }
  28633. operator VkImageViewCreateInfo const&() const
  28634. {
  28635. return *reinterpret_cast<const VkImageViewCreateInfo*>( this );
  28636. }
  28637. operator VkImageViewCreateInfo &()
  28638. {
  28639. return *reinterpret_cast<VkImageViewCreateInfo*>( this );
  28640. }
  28641. bool operator==( ImageViewCreateInfo const& rhs ) const
  28642. {
  28643. return ( sType == rhs.sType )
  28644. && ( pNext == rhs.pNext )
  28645. && ( flags == rhs.flags )
  28646. && ( image == rhs.image )
  28647. && ( viewType == rhs.viewType )
  28648. && ( format == rhs.format )
  28649. && ( components == rhs.components )
  28650. && ( subresourceRange == rhs.subresourceRange );
  28651. }
  28652. bool operator!=( ImageViewCreateInfo const& rhs ) const
  28653. {
  28654. return !operator==( rhs );
  28655. }
  28656. private:
  28657. StructureType sType = StructureType::eImageViewCreateInfo;
  28658. public:
  28659. const void* pNext = nullptr;
  28660. ImageViewCreateFlags flags;
  28661. Image image;
  28662. ImageViewType viewType;
  28663. Format format;
  28664. ComponentMapping components;
  28665. ImageSubresourceRange subresourceRange;
  28666. };
  28667. static_assert( sizeof( ImageViewCreateInfo ) == sizeof( VkImageViewCreateInfo ), "struct and wrapper have different size!" );
  28668. struct ImageViewHandleInfoNVX
  28669. {
  28670. ImageViewHandleInfoNVX( ImageView imageView_ = ImageView(),
  28671. DescriptorType descriptorType_ = DescriptorType::eSampler,
  28672. Sampler sampler_ = Sampler() )
  28673. : imageView( imageView_ )
  28674. , descriptorType( descriptorType_ )
  28675. , sampler( sampler_ )
  28676. {}
  28677. ImageViewHandleInfoNVX( VkImageViewHandleInfoNVX const & rhs )
  28678. {
  28679. *reinterpret_cast<VkImageViewHandleInfoNVX*>(this) = rhs;
  28680. }
  28681. ImageViewHandleInfoNVX& operator=( VkImageViewHandleInfoNVX const & rhs )
  28682. {
  28683. *reinterpret_cast<VkImageViewHandleInfoNVX*>(this) = rhs;
  28684. return *this;
  28685. }
  28686. ImageViewHandleInfoNVX & setPNext( const void* pNext_ )
  28687. {
  28688. pNext = pNext_;
  28689. return *this;
  28690. }
  28691. ImageViewHandleInfoNVX & setImageView( ImageView imageView_ )
  28692. {
  28693. imageView = imageView_;
  28694. return *this;
  28695. }
  28696. ImageViewHandleInfoNVX & setDescriptorType( DescriptorType descriptorType_ )
  28697. {
  28698. descriptorType = descriptorType_;
  28699. return *this;
  28700. }
  28701. ImageViewHandleInfoNVX & setSampler( Sampler sampler_ )
  28702. {
  28703. sampler = sampler_;
  28704. return *this;
  28705. }
  28706. operator VkImageViewHandleInfoNVX const&() const
  28707. {
  28708. return *reinterpret_cast<const VkImageViewHandleInfoNVX*>( this );
  28709. }
  28710. operator VkImageViewHandleInfoNVX &()
  28711. {
  28712. return *reinterpret_cast<VkImageViewHandleInfoNVX*>( this );
  28713. }
  28714. bool operator==( ImageViewHandleInfoNVX const& rhs ) const
  28715. {
  28716. return ( sType == rhs.sType )
  28717. && ( pNext == rhs.pNext )
  28718. && ( imageView == rhs.imageView )
  28719. && ( descriptorType == rhs.descriptorType )
  28720. && ( sampler == rhs.sampler );
  28721. }
  28722. bool operator!=( ImageViewHandleInfoNVX const& rhs ) const
  28723. {
  28724. return !operator==( rhs );
  28725. }
  28726. private:
  28727. StructureType sType = StructureType::eImageViewHandleInfoNVX;
  28728. public:
  28729. const void* pNext = nullptr;
  28730. ImageView imageView;
  28731. DescriptorType descriptorType;
  28732. Sampler sampler;
  28733. };
  28734. static_assert( sizeof( ImageViewHandleInfoNVX ) == sizeof( VkImageViewHandleInfoNVX ), "struct and wrapper have different size!" );
  28735. struct ImageViewUsageCreateInfo
  28736. {
  28737. ImageViewUsageCreateInfo( ImageUsageFlags usage_ = ImageUsageFlags() )
  28738. : usage( usage_ )
  28739. {}
  28740. ImageViewUsageCreateInfo( VkImageViewUsageCreateInfo const & rhs )
  28741. {
  28742. *reinterpret_cast<VkImageViewUsageCreateInfo*>(this) = rhs;
  28743. }
  28744. ImageViewUsageCreateInfo& operator=( VkImageViewUsageCreateInfo const & rhs )
  28745. {
  28746. *reinterpret_cast<VkImageViewUsageCreateInfo*>(this) = rhs;
  28747. return *this;
  28748. }
  28749. ImageViewUsageCreateInfo & setPNext( const void* pNext_ )
  28750. {
  28751. pNext = pNext_;
  28752. return *this;
  28753. }
  28754. ImageViewUsageCreateInfo & setUsage( ImageUsageFlags usage_ )
  28755. {
  28756. usage = usage_;
  28757. return *this;
  28758. }
  28759. operator VkImageViewUsageCreateInfo const&() const
  28760. {
  28761. return *reinterpret_cast<const VkImageViewUsageCreateInfo*>( this );
  28762. }
  28763. operator VkImageViewUsageCreateInfo &()
  28764. {
  28765. return *reinterpret_cast<VkImageViewUsageCreateInfo*>( this );
  28766. }
  28767. bool operator==( ImageViewUsageCreateInfo const& rhs ) const
  28768. {
  28769. return ( sType == rhs.sType )
  28770. && ( pNext == rhs.pNext )
  28771. && ( usage == rhs.usage );
  28772. }
  28773. bool operator!=( ImageViewUsageCreateInfo const& rhs ) const
  28774. {
  28775. return !operator==( rhs );
  28776. }
  28777. private:
  28778. StructureType sType = StructureType::eImageViewUsageCreateInfo;
  28779. public:
  28780. const void* pNext = nullptr;
  28781. ImageUsageFlags usage;
  28782. };
  28783. static_assert( sizeof( ImageViewUsageCreateInfo ) == sizeof( VkImageViewUsageCreateInfo ), "struct and wrapper have different size!" );
  28784. #ifdef VK_USE_PLATFORM_ANDROID_KHR
  28785. struct ImportAndroidHardwareBufferInfoANDROID
  28786. {
  28787. ImportAndroidHardwareBufferInfoANDROID( struct AHardwareBuffer* buffer_ = nullptr )
  28788. : buffer( buffer_ )
  28789. {}
  28790. ImportAndroidHardwareBufferInfoANDROID( VkImportAndroidHardwareBufferInfoANDROID const & rhs )
  28791. {
  28792. *reinterpret_cast<VkImportAndroidHardwareBufferInfoANDROID*>(this) = rhs;
  28793. }
  28794. ImportAndroidHardwareBufferInfoANDROID& operator=( VkImportAndroidHardwareBufferInfoANDROID const & rhs )
  28795. {
  28796. *reinterpret_cast<VkImportAndroidHardwareBufferInfoANDROID*>(this) = rhs;
  28797. return *this;
  28798. }
  28799. ImportAndroidHardwareBufferInfoANDROID & setPNext( const void* pNext_ )
  28800. {
  28801. pNext = pNext_;
  28802. return *this;
  28803. }
  28804. ImportAndroidHardwareBufferInfoANDROID & setBuffer( struct AHardwareBuffer* buffer_ )
  28805. {
  28806. buffer = buffer_;
  28807. return *this;
  28808. }
  28809. operator VkImportAndroidHardwareBufferInfoANDROID const&() const
  28810. {
  28811. return *reinterpret_cast<const VkImportAndroidHardwareBufferInfoANDROID*>( this );
  28812. }
  28813. operator VkImportAndroidHardwareBufferInfoANDROID &()
  28814. {
  28815. return *reinterpret_cast<VkImportAndroidHardwareBufferInfoANDROID*>( this );
  28816. }
  28817. bool operator==( ImportAndroidHardwareBufferInfoANDROID const& rhs ) const
  28818. {
  28819. return ( sType == rhs.sType )
  28820. && ( pNext == rhs.pNext )
  28821. && ( buffer == rhs.buffer );
  28822. }
  28823. bool operator!=( ImportAndroidHardwareBufferInfoANDROID const& rhs ) const
  28824. {
  28825. return !operator==( rhs );
  28826. }
  28827. private:
  28828. StructureType sType = StructureType::eImportAndroidHardwareBufferInfoANDROID;
  28829. public:
  28830. const void* pNext = nullptr;
  28831. struct AHardwareBuffer* buffer;
  28832. };
  28833. static_assert( sizeof( ImportAndroidHardwareBufferInfoANDROID ) == sizeof( VkImportAndroidHardwareBufferInfoANDROID ), "struct and wrapper have different size!" );
  28834. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  28835. struct ImportFenceFdInfoKHR
  28836. {
  28837. ImportFenceFdInfoKHR( Fence fence_ = Fence(),
  28838. FenceImportFlags flags_ = FenceImportFlags(),
  28839. ExternalFenceHandleTypeFlagBits handleType_ = ExternalFenceHandleTypeFlagBits::eOpaqueFd,
  28840. int fd_ = 0 )
  28841. : fence( fence_ )
  28842. , flags( flags_ )
  28843. , handleType( handleType_ )
  28844. , fd( fd_ )
  28845. {}
  28846. ImportFenceFdInfoKHR( VkImportFenceFdInfoKHR const & rhs )
  28847. {
  28848. *reinterpret_cast<VkImportFenceFdInfoKHR*>(this) = rhs;
  28849. }
  28850. ImportFenceFdInfoKHR& operator=( VkImportFenceFdInfoKHR const & rhs )
  28851. {
  28852. *reinterpret_cast<VkImportFenceFdInfoKHR*>(this) = rhs;
  28853. return *this;
  28854. }
  28855. ImportFenceFdInfoKHR & setPNext( const void* pNext_ )
  28856. {
  28857. pNext = pNext_;
  28858. return *this;
  28859. }
  28860. ImportFenceFdInfoKHR & setFence( Fence fence_ )
  28861. {
  28862. fence = fence_;
  28863. return *this;
  28864. }
  28865. ImportFenceFdInfoKHR & setFlags( FenceImportFlags flags_ )
  28866. {
  28867. flags = flags_;
  28868. return *this;
  28869. }
  28870. ImportFenceFdInfoKHR & setHandleType( ExternalFenceHandleTypeFlagBits handleType_ )
  28871. {
  28872. handleType = handleType_;
  28873. return *this;
  28874. }
  28875. ImportFenceFdInfoKHR & setFd( int fd_ )
  28876. {
  28877. fd = fd_;
  28878. return *this;
  28879. }
  28880. operator VkImportFenceFdInfoKHR const&() const
  28881. {
  28882. return *reinterpret_cast<const VkImportFenceFdInfoKHR*>( this );
  28883. }
  28884. operator VkImportFenceFdInfoKHR &()
  28885. {
  28886. return *reinterpret_cast<VkImportFenceFdInfoKHR*>( this );
  28887. }
  28888. bool operator==( ImportFenceFdInfoKHR const& rhs ) const
  28889. {
  28890. return ( sType == rhs.sType )
  28891. && ( pNext == rhs.pNext )
  28892. && ( fence == rhs.fence )
  28893. && ( flags == rhs.flags )
  28894. && ( handleType == rhs.handleType )
  28895. && ( fd == rhs.fd );
  28896. }
  28897. bool operator!=( ImportFenceFdInfoKHR const& rhs ) const
  28898. {
  28899. return !operator==( rhs );
  28900. }
  28901. private:
  28902. StructureType sType = StructureType::eImportFenceFdInfoKHR;
  28903. public:
  28904. const void* pNext = nullptr;
  28905. Fence fence;
  28906. FenceImportFlags flags;
  28907. ExternalFenceHandleTypeFlagBits handleType;
  28908. int fd;
  28909. };
  28910. static_assert( sizeof( ImportFenceFdInfoKHR ) == sizeof( VkImportFenceFdInfoKHR ), "struct and wrapper have different size!" );
  28911. #ifdef VK_USE_PLATFORM_WIN32_KHR
  28912. struct ImportFenceWin32HandleInfoKHR
  28913. {
  28914. ImportFenceWin32HandleInfoKHR( Fence fence_ = Fence(),
  28915. FenceImportFlags flags_ = FenceImportFlags(),
  28916. ExternalFenceHandleTypeFlagBits handleType_ = ExternalFenceHandleTypeFlagBits::eOpaqueFd,
  28917. HANDLE handle_ = 0,
  28918. LPCWSTR name_ = nullptr )
  28919. : fence( fence_ )
  28920. , flags( flags_ )
  28921. , handleType( handleType_ )
  28922. , handle( handle_ )
  28923. , name( name_ )
  28924. {}
  28925. ImportFenceWin32HandleInfoKHR( VkImportFenceWin32HandleInfoKHR const & rhs )
  28926. {
  28927. *reinterpret_cast<VkImportFenceWin32HandleInfoKHR*>(this) = rhs;
  28928. }
  28929. ImportFenceWin32HandleInfoKHR& operator=( VkImportFenceWin32HandleInfoKHR const & rhs )
  28930. {
  28931. *reinterpret_cast<VkImportFenceWin32HandleInfoKHR*>(this) = rhs;
  28932. return *this;
  28933. }
  28934. ImportFenceWin32HandleInfoKHR & setPNext( const void* pNext_ )
  28935. {
  28936. pNext = pNext_;
  28937. return *this;
  28938. }
  28939. ImportFenceWin32HandleInfoKHR & setFence( Fence fence_ )
  28940. {
  28941. fence = fence_;
  28942. return *this;
  28943. }
  28944. ImportFenceWin32HandleInfoKHR & setFlags( FenceImportFlags flags_ )
  28945. {
  28946. flags = flags_;
  28947. return *this;
  28948. }
  28949. ImportFenceWin32HandleInfoKHR & setHandleType( ExternalFenceHandleTypeFlagBits handleType_ )
  28950. {
  28951. handleType = handleType_;
  28952. return *this;
  28953. }
  28954. ImportFenceWin32HandleInfoKHR & setHandle( HANDLE handle_ )
  28955. {
  28956. handle = handle_;
  28957. return *this;
  28958. }
  28959. ImportFenceWin32HandleInfoKHR & setName( LPCWSTR name_ )
  28960. {
  28961. name = name_;
  28962. return *this;
  28963. }
  28964. operator VkImportFenceWin32HandleInfoKHR const&() const
  28965. {
  28966. return *reinterpret_cast<const VkImportFenceWin32HandleInfoKHR*>( this );
  28967. }
  28968. operator VkImportFenceWin32HandleInfoKHR &()
  28969. {
  28970. return *reinterpret_cast<VkImportFenceWin32HandleInfoKHR*>( this );
  28971. }
  28972. bool operator==( ImportFenceWin32HandleInfoKHR const& rhs ) const
  28973. {
  28974. return ( sType == rhs.sType )
  28975. && ( pNext == rhs.pNext )
  28976. && ( fence == rhs.fence )
  28977. && ( flags == rhs.flags )
  28978. && ( handleType == rhs.handleType )
  28979. && ( handle == rhs.handle )
  28980. && ( name == rhs.name );
  28981. }
  28982. bool operator!=( ImportFenceWin32HandleInfoKHR const& rhs ) const
  28983. {
  28984. return !operator==( rhs );
  28985. }
  28986. private:
  28987. StructureType sType = StructureType::eImportFenceWin32HandleInfoKHR;
  28988. public:
  28989. const void* pNext = nullptr;
  28990. Fence fence;
  28991. FenceImportFlags flags;
  28992. ExternalFenceHandleTypeFlagBits handleType;
  28993. HANDLE handle;
  28994. LPCWSTR name;
  28995. };
  28996. static_assert( sizeof( ImportFenceWin32HandleInfoKHR ) == sizeof( VkImportFenceWin32HandleInfoKHR ), "struct and wrapper have different size!" );
  28997. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  28998. struct ImportMemoryFdInfoKHR
  28999. {
  29000. ImportMemoryFdInfoKHR( ExternalMemoryHandleTypeFlagBits handleType_ = ExternalMemoryHandleTypeFlagBits::eOpaqueFd,
  29001. int fd_ = 0 )
  29002. : handleType( handleType_ )
  29003. , fd( fd_ )
  29004. {}
  29005. ImportMemoryFdInfoKHR( VkImportMemoryFdInfoKHR const & rhs )
  29006. {
  29007. *reinterpret_cast<VkImportMemoryFdInfoKHR*>(this) = rhs;
  29008. }
  29009. ImportMemoryFdInfoKHR& operator=( VkImportMemoryFdInfoKHR const & rhs )
  29010. {
  29011. *reinterpret_cast<VkImportMemoryFdInfoKHR*>(this) = rhs;
  29012. return *this;
  29013. }
  29014. ImportMemoryFdInfoKHR & setPNext( const void* pNext_ )
  29015. {
  29016. pNext = pNext_;
  29017. return *this;
  29018. }
  29019. ImportMemoryFdInfoKHR & setHandleType( ExternalMemoryHandleTypeFlagBits handleType_ )
  29020. {
  29021. handleType = handleType_;
  29022. return *this;
  29023. }
  29024. ImportMemoryFdInfoKHR & setFd( int fd_ )
  29025. {
  29026. fd = fd_;
  29027. return *this;
  29028. }
  29029. operator VkImportMemoryFdInfoKHR const&() const
  29030. {
  29031. return *reinterpret_cast<const VkImportMemoryFdInfoKHR*>( this );
  29032. }
  29033. operator VkImportMemoryFdInfoKHR &()
  29034. {
  29035. return *reinterpret_cast<VkImportMemoryFdInfoKHR*>( this );
  29036. }
  29037. bool operator==( ImportMemoryFdInfoKHR const& rhs ) const
  29038. {
  29039. return ( sType == rhs.sType )
  29040. && ( pNext == rhs.pNext )
  29041. && ( handleType == rhs.handleType )
  29042. && ( fd == rhs.fd );
  29043. }
  29044. bool operator!=( ImportMemoryFdInfoKHR const& rhs ) const
  29045. {
  29046. return !operator==( rhs );
  29047. }
  29048. private:
  29049. StructureType sType = StructureType::eImportMemoryFdInfoKHR;
  29050. public:
  29051. const void* pNext = nullptr;
  29052. ExternalMemoryHandleTypeFlagBits handleType;
  29053. int fd;
  29054. };
  29055. static_assert( sizeof( ImportMemoryFdInfoKHR ) == sizeof( VkImportMemoryFdInfoKHR ), "struct and wrapper have different size!" );
  29056. struct ImportMemoryHostPointerInfoEXT
  29057. {
  29058. ImportMemoryHostPointerInfoEXT( ExternalMemoryHandleTypeFlagBits handleType_ = ExternalMemoryHandleTypeFlagBits::eOpaqueFd,
  29059. void* pHostPointer_ = nullptr )
  29060. : handleType( handleType_ )
  29061. , pHostPointer( pHostPointer_ )
  29062. {}
  29063. ImportMemoryHostPointerInfoEXT( VkImportMemoryHostPointerInfoEXT const & rhs )
  29064. {
  29065. *reinterpret_cast<VkImportMemoryHostPointerInfoEXT*>(this) = rhs;
  29066. }
  29067. ImportMemoryHostPointerInfoEXT& operator=( VkImportMemoryHostPointerInfoEXT const & rhs )
  29068. {
  29069. *reinterpret_cast<VkImportMemoryHostPointerInfoEXT*>(this) = rhs;
  29070. return *this;
  29071. }
  29072. ImportMemoryHostPointerInfoEXT & setPNext( const void* pNext_ )
  29073. {
  29074. pNext = pNext_;
  29075. return *this;
  29076. }
  29077. ImportMemoryHostPointerInfoEXT & setHandleType( ExternalMemoryHandleTypeFlagBits handleType_ )
  29078. {
  29079. handleType = handleType_;
  29080. return *this;
  29081. }
  29082. ImportMemoryHostPointerInfoEXT & setPHostPointer( void* pHostPointer_ )
  29083. {
  29084. pHostPointer = pHostPointer_;
  29085. return *this;
  29086. }
  29087. operator VkImportMemoryHostPointerInfoEXT const&() const
  29088. {
  29089. return *reinterpret_cast<const VkImportMemoryHostPointerInfoEXT*>( this );
  29090. }
  29091. operator VkImportMemoryHostPointerInfoEXT &()
  29092. {
  29093. return *reinterpret_cast<VkImportMemoryHostPointerInfoEXT*>( this );
  29094. }
  29095. bool operator==( ImportMemoryHostPointerInfoEXT const& rhs ) const
  29096. {
  29097. return ( sType == rhs.sType )
  29098. && ( pNext == rhs.pNext )
  29099. && ( handleType == rhs.handleType )
  29100. && ( pHostPointer == rhs.pHostPointer );
  29101. }
  29102. bool operator!=( ImportMemoryHostPointerInfoEXT const& rhs ) const
  29103. {
  29104. return !operator==( rhs );
  29105. }
  29106. private:
  29107. StructureType sType = StructureType::eImportMemoryHostPointerInfoEXT;
  29108. public:
  29109. const void* pNext = nullptr;
  29110. ExternalMemoryHandleTypeFlagBits handleType;
  29111. void* pHostPointer;
  29112. };
  29113. static_assert( sizeof( ImportMemoryHostPointerInfoEXT ) == sizeof( VkImportMemoryHostPointerInfoEXT ), "struct and wrapper have different size!" );
  29114. #ifdef VK_USE_PLATFORM_WIN32_KHR
  29115. struct ImportMemoryWin32HandleInfoKHR
  29116. {
  29117. ImportMemoryWin32HandleInfoKHR( ExternalMemoryHandleTypeFlagBits handleType_ = ExternalMemoryHandleTypeFlagBits::eOpaqueFd,
  29118. HANDLE handle_ = 0,
  29119. LPCWSTR name_ = nullptr )
  29120. : handleType( handleType_ )
  29121. , handle( handle_ )
  29122. , name( name_ )
  29123. {}
  29124. ImportMemoryWin32HandleInfoKHR( VkImportMemoryWin32HandleInfoKHR const & rhs )
  29125. {
  29126. *reinterpret_cast<VkImportMemoryWin32HandleInfoKHR*>(this) = rhs;
  29127. }
  29128. ImportMemoryWin32HandleInfoKHR& operator=( VkImportMemoryWin32HandleInfoKHR const & rhs )
  29129. {
  29130. *reinterpret_cast<VkImportMemoryWin32HandleInfoKHR*>(this) = rhs;
  29131. return *this;
  29132. }
  29133. ImportMemoryWin32HandleInfoKHR & setPNext( const void* pNext_ )
  29134. {
  29135. pNext = pNext_;
  29136. return *this;
  29137. }
  29138. ImportMemoryWin32HandleInfoKHR & setHandleType( ExternalMemoryHandleTypeFlagBits handleType_ )
  29139. {
  29140. handleType = handleType_;
  29141. return *this;
  29142. }
  29143. ImportMemoryWin32HandleInfoKHR & setHandle( HANDLE handle_ )
  29144. {
  29145. handle = handle_;
  29146. return *this;
  29147. }
  29148. ImportMemoryWin32HandleInfoKHR & setName( LPCWSTR name_ )
  29149. {
  29150. name = name_;
  29151. return *this;
  29152. }
  29153. operator VkImportMemoryWin32HandleInfoKHR const&() const
  29154. {
  29155. return *reinterpret_cast<const VkImportMemoryWin32HandleInfoKHR*>( this );
  29156. }
  29157. operator VkImportMemoryWin32HandleInfoKHR &()
  29158. {
  29159. return *reinterpret_cast<VkImportMemoryWin32HandleInfoKHR*>( this );
  29160. }
  29161. bool operator==( ImportMemoryWin32HandleInfoKHR const& rhs ) const
  29162. {
  29163. return ( sType == rhs.sType )
  29164. && ( pNext == rhs.pNext )
  29165. && ( handleType == rhs.handleType )
  29166. && ( handle == rhs.handle )
  29167. && ( name == rhs.name );
  29168. }
  29169. bool operator!=( ImportMemoryWin32HandleInfoKHR const& rhs ) const
  29170. {
  29171. return !operator==( rhs );
  29172. }
  29173. private:
  29174. StructureType sType = StructureType::eImportMemoryWin32HandleInfoKHR;
  29175. public:
  29176. const void* pNext = nullptr;
  29177. ExternalMemoryHandleTypeFlagBits handleType;
  29178. HANDLE handle;
  29179. LPCWSTR name;
  29180. };
  29181. static_assert( sizeof( ImportMemoryWin32HandleInfoKHR ) == sizeof( VkImportMemoryWin32HandleInfoKHR ), "struct and wrapper have different size!" );
  29182. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  29183. #ifdef VK_USE_PLATFORM_WIN32_KHR
  29184. struct ImportMemoryWin32HandleInfoNV
  29185. {
  29186. ImportMemoryWin32HandleInfoNV( ExternalMemoryHandleTypeFlagsNV handleType_ = ExternalMemoryHandleTypeFlagsNV(),
  29187. HANDLE handle_ = 0 )
  29188. : handleType( handleType_ )
  29189. , handle( handle_ )
  29190. {}
  29191. ImportMemoryWin32HandleInfoNV( VkImportMemoryWin32HandleInfoNV const & rhs )
  29192. {
  29193. *reinterpret_cast<VkImportMemoryWin32HandleInfoNV*>(this) = rhs;
  29194. }
  29195. ImportMemoryWin32HandleInfoNV& operator=( VkImportMemoryWin32HandleInfoNV const & rhs )
  29196. {
  29197. *reinterpret_cast<VkImportMemoryWin32HandleInfoNV*>(this) = rhs;
  29198. return *this;
  29199. }
  29200. ImportMemoryWin32HandleInfoNV & setPNext( const void* pNext_ )
  29201. {
  29202. pNext = pNext_;
  29203. return *this;
  29204. }
  29205. ImportMemoryWin32HandleInfoNV & setHandleType( ExternalMemoryHandleTypeFlagsNV handleType_ )
  29206. {
  29207. handleType = handleType_;
  29208. return *this;
  29209. }
  29210. ImportMemoryWin32HandleInfoNV & setHandle( HANDLE handle_ )
  29211. {
  29212. handle = handle_;
  29213. return *this;
  29214. }
  29215. operator VkImportMemoryWin32HandleInfoNV const&() const
  29216. {
  29217. return *reinterpret_cast<const VkImportMemoryWin32HandleInfoNV*>( this );
  29218. }
  29219. operator VkImportMemoryWin32HandleInfoNV &()
  29220. {
  29221. return *reinterpret_cast<VkImportMemoryWin32HandleInfoNV*>( this );
  29222. }
  29223. bool operator==( ImportMemoryWin32HandleInfoNV const& rhs ) const
  29224. {
  29225. return ( sType == rhs.sType )
  29226. && ( pNext == rhs.pNext )
  29227. && ( handleType == rhs.handleType )
  29228. && ( handle == rhs.handle );
  29229. }
  29230. bool operator!=( ImportMemoryWin32HandleInfoNV const& rhs ) const
  29231. {
  29232. return !operator==( rhs );
  29233. }
  29234. private:
  29235. StructureType sType = StructureType::eImportMemoryWin32HandleInfoNV;
  29236. public:
  29237. const void* pNext = nullptr;
  29238. ExternalMemoryHandleTypeFlagsNV handleType;
  29239. HANDLE handle;
  29240. };
  29241. static_assert( sizeof( ImportMemoryWin32HandleInfoNV ) == sizeof( VkImportMemoryWin32HandleInfoNV ), "struct and wrapper have different size!" );
  29242. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  29243. struct ImportSemaphoreFdInfoKHR
  29244. {
  29245. ImportSemaphoreFdInfoKHR( Semaphore semaphore_ = Semaphore(),
  29246. SemaphoreImportFlags flags_ = SemaphoreImportFlags(),
  29247. ExternalSemaphoreHandleTypeFlagBits handleType_ = ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd,
  29248. int fd_ = 0 )
  29249. : semaphore( semaphore_ )
  29250. , flags( flags_ )
  29251. , handleType( handleType_ )
  29252. , fd( fd_ )
  29253. {}
  29254. ImportSemaphoreFdInfoKHR( VkImportSemaphoreFdInfoKHR const & rhs )
  29255. {
  29256. *reinterpret_cast<VkImportSemaphoreFdInfoKHR*>(this) = rhs;
  29257. }
  29258. ImportSemaphoreFdInfoKHR& operator=( VkImportSemaphoreFdInfoKHR const & rhs )
  29259. {
  29260. *reinterpret_cast<VkImportSemaphoreFdInfoKHR*>(this) = rhs;
  29261. return *this;
  29262. }
  29263. ImportSemaphoreFdInfoKHR & setPNext( const void* pNext_ )
  29264. {
  29265. pNext = pNext_;
  29266. return *this;
  29267. }
  29268. ImportSemaphoreFdInfoKHR & setSemaphore( Semaphore semaphore_ )
  29269. {
  29270. semaphore = semaphore_;
  29271. return *this;
  29272. }
  29273. ImportSemaphoreFdInfoKHR & setFlags( SemaphoreImportFlags flags_ )
  29274. {
  29275. flags = flags_;
  29276. return *this;
  29277. }
  29278. ImportSemaphoreFdInfoKHR & setHandleType( ExternalSemaphoreHandleTypeFlagBits handleType_ )
  29279. {
  29280. handleType = handleType_;
  29281. return *this;
  29282. }
  29283. ImportSemaphoreFdInfoKHR & setFd( int fd_ )
  29284. {
  29285. fd = fd_;
  29286. return *this;
  29287. }
  29288. operator VkImportSemaphoreFdInfoKHR const&() const
  29289. {
  29290. return *reinterpret_cast<const VkImportSemaphoreFdInfoKHR*>( this );
  29291. }
  29292. operator VkImportSemaphoreFdInfoKHR &()
  29293. {
  29294. return *reinterpret_cast<VkImportSemaphoreFdInfoKHR*>( this );
  29295. }
  29296. bool operator==( ImportSemaphoreFdInfoKHR const& rhs ) const
  29297. {
  29298. return ( sType == rhs.sType )
  29299. && ( pNext == rhs.pNext )
  29300. && ( semaphore == rhs.semaphore )
  29301. && ( flags == rhs.flags )
  29302. && ( handleType == rhs.handleType )
  29303. && ( fd == rhs.fd );
  29304. }
  29305. bool operator!=( ImportSemaphoreFdInfoKHR const& rhs ) const
  29306. {
  29307. return !operator==( rhs );
  29308. }
  29309. private:
  29310. StructureType sType = StructureType::eImportSemaphoreFdInfoKHR;
  29311. public:
  29312. const void* pNext = nullptr;
  29313. Semaphore semaphore;
  29314. SemaphoreImportFlags flags;
  29315. ExternalSemaphoreHandleTypeFlagBits handleType;
  29316. int fd;
  29317. };
  29318. static_assert( sizeof( ImportSemaphoreFdInfoKHR ) == sizeof( VkImportSemaphoreFdInfoKHR ), "struct and wrapper have different size!" );
  29319. #ifdef VK_USE_PLATFORM_WIN32_KHR
  29320. struct ImportSemaphoreWin32HandleInfoKHR
  29321. {
  29322. ImportSemaphoreWin32HandleInfoKHR( Semaphore semaphore_ = Semaphore(),
  29323. SemaphoreImportFlags flags_ = SemaphoreImportFlags(),
  29324. ExternalSemaphoreHandleTypeFlagBits handleType_ = ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd,
  29325. HANDLE handle_ = 0,
  29326. LPCWSTR name_ = nullptr )
  29327. : semaphore( semaphore_ )
  29328. , flags( flags_ )
  29329. , handleType( handleType_ )
  29330. , handle( handle_ )
  29331. , name( name_ )
  29332. {}
  29333. ImportSemaphoreWin32HandleInfoKHR( VkImportSemaphoreWin32HandleInfoKHR const & rhs )
  29334. {
  29335. *reinterpret_cast<VkImportSemaphoreWin32HandleInfoKHR*>(this) = rhs;
  29336. }
  29337. ImportSemaphoreWin32HandleInfoKHR& operator=( VkImportSemaphoreWin32HandleInfoKHR const & rhs )
  29338. {
  29339. *reinterpret_cast<VkImportSemaphoreWin32HandleInfoKHR*>(this) = rhs;
  29340. return *this;
  29341. }
  29342. ImportSemaphoreWin32HandleInfoKHR & setPNext( const void* pNext_ )
  29343. {
  29344. pNext = pNext_;
  29345. return *this;
  29346. }
  29347. ImportSemaphoreWin32HandleInfoKHR & setSemaphore( Semaphore semaphore_ )
  29348. {
  29349. semaphore = semaphore_;
  29350. return *this;
  29351. }
  29352. ImportSemaphoreWin32HandleInfoKHR & setFlags( SemaphoreImportFlags flags_ )
  29353. {
  29354. flags = flags_;
  29355. return *this;
  29356. }
  29357. ImportSemaphoreWin32HandleInfoKHR & setHandleType( ExternalSemaphoreHandleTypeFlagBits handleType_ )
  29358. {
  29359. handleType = handleType_;
  29360. return *this;
  29361. }
  29362. ImportSemaphoreWin32HandleInfoKHR & setHandle( HANDLE handle_ )
  29363. {
  29364. handle = handle_;
  29365. return *this;
  29366. }
  29367. ImportSemaphoreWin32HandleInfoKHR & setName( LPCWSTR name_ )
  29368. {
  29369. name = name_;
  29370. return *this;
  29371. }
  29372. operator VkImportSemaphoreWin32HandleInfoKHR const&() const
  29373. {
  29374. return *reinterpret_cast<const VkImportSemaphoreWin32HandleInfoKHR*>( this );
  29375. }
  29376. operator VkImportSemaphoreWin32HandleInfoKHR &()
  29377. {
  29378. return *reinterpret_cast<VkImportSemaphoreWin32HandleInfoKHR*>( this );
  29379. }
  29380. bool operator==( ImportSemaphoreWin32HandleInfoKHR const& rhs ) const
  29381. {
  29382. return ( sType == rhs.sType )
  29383. && ( pNext == rhs.pNext )
  29384. && ( semaphore == rhs.semaphore )
  29385. && ( flags == rhs.flags )
  29386. && ( handleType == rhs.handleType )
  29387. && ( handle == rhs.handle )
  29388. && ( name == rhs.name );
  29389. }
  29390. bool operator!=( ImportSemaphoreWin32HandleInfoKHR const& rhs ) const
  29391. {
  29392. return !operator==( rhs );
  29393. }
  29394. private:
  29395. StructureType sType = StructureType::eImportSemaphoreWin32HandleInfoKHR;
  29396. public:
  29397. const void* pNext = nullptr;
  29398. Semaphore semaphore;
  29399. SemaphoreImportFlags flags;
  29400. ExternalSemaphoreHandleTypeFlagBits handleType;
  29401. HANDLE handle;
  29402. LPCWSTR name;
  29403. };
  29404. static_assert( sizeof( ImportSemaphoreWin32HandleInfoKHR ) == sizeof( VkImportSemaphoreWin32HandleInfoKHR ), "struct and wrapper have different size!" );
  29405. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  29406. struct IndirectCommandsLayoutTokenNVX
  29407. {
  29408. IndirectCommandsLayoutTokenNVX( IndirectCommandsTokenTypeNVX tokenType_ = IndirectCommandsTokenTypeNVX::ePipeline,
  29409. uint32_t bindingUnit_ = 0,
  29410. uint32_t dynamicCount_ = 0,
  29411. uint32_t divisor_ = 0 )
  29412. : tokenType( tokenType_ )
  29413. , bindingUnit( bindingUnit_ )
  29414. , dynamicCount( dynamicCount_ )
  29415. , divisor( divisor_ )
  29416. {}
  29417. IndirectCommandsLayoutTokenNVX( VkIndirectCommandsLayoutTokenNVX const & rhs )
  29418. {
  29419. *reinterpret_cast<VkIndirectCommandsLayoutTokenNVX*>(this) = rhs;
  29420. }
  29421. IndirectCommandsLayoutTokenNVX& operator=( VkIndirectCommandsLayoutTokenNVX const & rhs )
  29422. {
  29423. *reinterpret_cast<VkIndirectCommandsLayoutTokenNVX*>(this) = rhs;
  29424. return *this;
  29425. }
  29426. IndirectCommandsLayoutTokenNVX & setTokenType( IndirectCommandsTokenTypeNVX tokenType_ )
  29427. {
  29428. tokenType = tokenType_;
  29429. return *this;
  29430. }
  29431. IndirectCommandsLayoutTokenNVX & setBindingUnit( uint32_t bindingUnit_ )
  29432. {
  29433. bindingUnit = bindingUnit_;
  29434. return *this;
  29435. }
  29436. IndirectCommandsLayoutTokenNVX & setDynamicCount( uint32_t dynamicCount_ )
  29437. {
  29438. dynamicCount = dynamicCount_;
  29439. return *this;
  29440. }
  29441. IndirectCommandsLayoutTokenNVX & setDivisor( uint32_t divisor_ )
  29442. {
  29443. divisor = divisor_;
  29444. return *this;
  29445. }
  29446. operator VkIndirectCommandsLayoutTokenNVX const&() const
  29447. {
  29448. return *reinterpret_cast<const VkIndirectCommandsLayoutTokenNVX*>( this );
  29449. }
  29450. operator VkIndirectCommandsLayoutTokenNVX &()
  29451. {
  29452. return *reinterpret_cast<VkIndirectCommandsLayoutTokenNVX*>( this );
  29453. }
  29454. bool operator==( IndirectCommandsLayoutTokenNVX const& rhs ) const
  29455. {
  29456. return ( tokenType == rhs.tokenType )
  29457. && ( bindingUnit == rhs.bindingUnit )
  29458. && ( dynamicCount == rhs.dynamicCount )
  29459. && ( divisor == rhs.divisor );
  29460. }
  29461. bool operator!=( IndirectCommandsLayoutTokenNVX const& rhs ) const
  29462. {
  29463. return !operator==( rhs );
  29464. }
  29465. IndirectCommandsTokenTypeNVX tokenType;
  29466. uint32_t bindingUnit;
  29467. uint32_t dynamicCount;
  29468. uint32_t divisor;
  29469. };
  29470. static_assert( sizeof( IndirectCommandsLayoutTokenNVX ) == sizeof( VkIndirectCommandsLayoutTokenNVX ), "struct and wrapper have different size!" );
  29471. struct IndirectCommandsLayoutCreateInfoNVX
  29472. {
  29473. IndirectCommandsLayoutCreateInfoNVX( PipelineBindPoint pipelineBindPoint_ = PipelineBindPoint::eGraphics,
  29474. IndirectCommandsLayoutUsageFlagsNVX flags_ = IndirectCommandsLayoutUsageFlagsNVX(),
  29475. uint32_t tokenCount_ = 0,
  29476. const IndirectCommandsLayoutTokenNVX* pTokens_ = nullptr )
  29477. : pipelineBindPoint( pipelineBindPoint_ )
  29478. , flags( flags_ )
  29479. , tokenCount( tokenCount_ )
  29480. , pTokens( pTokens_ )
  29481. {}
  29482. IndirectCommandsLayoutCreateInfoNVX( VkIndirectCommandsLayoutCreateInfoNVX const & rhs )
  29483. {
  29484. *reinterpret_cast<VkIndirectCommandsLayoutCreateInfoNVX*>(this) = rhs;
  29485. }
  29486. IndirectCommandsLayoutCreateInfoNVX& operator=( VkIndirectCommandsLayoutCreateInfoNVX const & rhs )
  29487. {
  29488. *reinterpret_cast<VkIndirectCommandsLayoutCreateInfoNVX*>(this) = rhs;
  29489. return *this;
  29490. }
  29491. IndirectCommandsLayoutCreateInfoNVX & setPNext( const void* pNext_ )
  29492. {
  29493. pNext = pNext_;
  29494. return *this;
  29495. }
  29496. IndirectCommandsLayoutCreateInfoNVX & setPipelineBindPoint( PipelineBindPoint pipelineBindPoint_ )
  29497. {
  29498. pipelineBindPoint = pipelineBindPoint_;
  29499. return *this;
  29500. }
  29501. IndirectCommandsLayoutCreateInfoNVX & setFlags( IndirectCommandsLayoutUsageFlagsNVX flags_ )
  29502. {
  29503. flags = flags_;
  29504. return *this;
  29505. }
  29506. IndirectCommandsLayoutCreateInfoNVX & setTokenCount( uint32_t tokenCount_ )
  29507. {
  29508. tokenCount = tokenCount_;
  29509. return *this;
  29510. }
  29511. IndirectCommandsLayoutCreateInfoNVX & setPTokens( const IndirectCommandsLayoutTokenNVX* pTokens_ )
  29512. {
  29513. pTokens = pTokens_;
  29514. return *this;
  29515. }
  29516. operator VkIndirectCommandsLayoutCreateInfoNVX const&() const
  29517. {
  29518. return *reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoNVX*>( this );
  29519. }
  29520. operator VkIndirectCommandsLayoutCreateInfoNVX &()
  29521. {
  29522. return *reinterpret_cast<VkIndirectCommandsLayoutCreateInfoNVX*>( this );
  29523. }
  29524. bool operator==( IndirectCommandsLayoutCreateInfoNVX const& rhs ) const
  29525. {
  29526. return ( sType == rhs.sType )
  29527. && ( pNext == rhs.pNext )
  29528. && ( pipelineBindPoint == rhs.pipelineBindPoint )
  29529. && ( flags == rhs.flags )
  29530. && ( tokenCount == rhs.tokenCount )
  29531. && ( pTokens == rhs.pTokens );
  29532. }
  29533. bool operator!=( IndirectCommandsLayoutCreateInfoNVX const& rhs ) const
  29534. {
  29535. return !operator==( rhs );
  29536. }
  29537. private:
  29538. StructureType sType = StructureType::eIndirectCommandsLayoutCreateInfoNVX;
  29539. public:
  29540. const void* pNext = nullptr;
  29541. PipelineBindPoint pipelineBindPoint;
  29542. IndirectCommandsLayoutUsageFlagsNVX flags;
  29543. uint32_t tokenCount;
  29544. const IndirectCommandsLayoutTokenNVX* pTokens;
  29545. };
  29546. static_assert( sizeof( IndirectCommandsLayoutCreateInfoNVX ) == sizeof( VkIndirectCommandsLayoutCreateInfoNVX ), "struct and wrapper have different size!" );
  29547. struct InitializePerformanceApiInfoINTEL
  29548. {
  29549. InitializePerformanceApiInfoINTEL( void* pUserData_ = nullptr )
  29550. : pUserData( pUserData_ )
  29551. {}
  29552. InitializePerformanceApiInfoINTEL( VkInitializePerformanceApiInfoINTEL const & rhs )
  29553. {
  29554. *reinterpret_cast<VkInitializePerformanceApiInfoINTEL*>(this) = rhs;
  29555. }
  29556. InitializePerformanceApiInfoINTEL& operator=( VkInitializePerformanceApiInfoINTEL const & rhs )
  29557. {
  29558. *reinterpret_cast<VkInitializePerformanceApiInfoINTEL*>(this) = rhs;
  29559. return *this;
  29560. }
  29561. InitializePerformanceApiInfoINTEL & setPNext( const void* pNext_ )
  29562. {
  29563. pNext = pNext_;
  29564. return *this;
  29565. }
  29566. InitializePerformanceApiInfoINTEL & setPUserData( void* pUserData_ )
  29567. {
  29568. pUserData = pUserData_;
  29569. return *this;
  29570. }
  29571. operator VkInitializePerformanceApiInfoINTEL const&() const
  29572. {
  29573. return *reinterpret_cast<const VkInitializePerformanceApiInfoINTEL*>( this );
  29574. }
  29575. operator VkInitializePerformanceApiInfoINTEL &()
  29576. {
  29577. return *reinterpret_cast<VkInitializePerformanceApiInfoINTEL*>( this );
  29578. }
  29579. bool operator==( InitializePerformanceApiInfoINTEL const& rhs ) const
  29580. {
  29581. return ( sType == rhs.sType )
  29582. && ( pNext == rhs.pNext )
  29583. && ( pUserData == rhs.pUserData );
  29584. }
  29585. bool operator!=( InitializePerformanceApiInfoINTEL const& rhs ) const
  29586. {
  29587. return !operator==( rhs );
  29588. }
  29589. private:
  29590. StructureType sType = StructureType::eInitializePerformanceApiInfoINTEL;
  29591. public:
  29592. const void* pNext = nullptr;
  29593. void* pUserData;
  29594. };
  29595. static_assert( sizeof( InitializePerformanceApiInfoINTEL ) == sizeof( VkInitializePerformanceApiInfoINTEL ), "struct and wrapper have different size!" );
  29596. struct InputAttachmentAspectReference
  29597. {
  29598. InputAttachmentAspectReference( uint32_t subpass_ = 0,
  29599. uint32_t inputAttachmentIndex_ = 0,
  29600. ImageAspectFlags aspectMask_ = ImageAspectFlags() )
  29601. : subpass( subpass_ )
  29602. , inputAttachmentIndex( inputAttachmentIndex_ )
  29603. , aspectMask( aspectMask_ )
  29604. {}
  29605. InputAttachmentAspectReference( VkInputAttachmentAspectReference const & rhs )
  29606. {
  29607. *reinterpret_cast<VkInputAttachmentAspectReference*>(this) = rhs;
  29608. }
  29609. InputAttachmentAspectReference& operator=( VkInputAttachmentAspectReference const & rhs )
  29610. {
  29611. *reinterpret_cast<VkInputAttachmentAspectReference*>(this) = rhs;
  29612. return *this;
  29613. }
  29614. InputAttachmentAspectReference & setSubpass( uint32_t subpass_ )
  29615. {
  29616. subpass = subpass_;
  29617. return *this;
  29618. }
  29619. InputAttachmentAspectReference & setInputAttachmentIndex( uint32_t inputAttachmentIndex_ )
  29620. {
  29621. inputAttachmentIndex = inputAttachmentIndex_;
  29622. return *this;
  29623. }
  29624. InputAttachmentAspectReference & setAspectMask( ImageAspectFlags aspectMask_ )
  29625. {
  29626. aspectMask = aspectMask_;
  29627. return *this;
  29628. }
  29629. operator VkInputAttachmentAspectReference const&() const
  29630. {
  29631. return *reinterpret_cast<const VkInputAttachmentAspectReference*>( this );
  29632. }
  29633. operator VkInputAttachmentAspectReference &()
  29634. {
  29635. return *reinterpret_cast<VkInputAttachmentAspectReference*>( this );
  29636. }
  29637. bool operator==( InputAttachmentAspectReference const& rhs ) const
  29638. {
  29639. return ( subpass == rhs.subpass )
  29640. && ( inputAttachmentIndex == rhs.inputAttachmentIndex )
  29641. && ( aspectMask == rhs.aspectMask );
  29642. }
  29643. bool operator!=( InputAttachmentAspectReference const& rhs ) const
  29644. {
  29645. return !operator==( rhs );
  29646. }
  29647. uint32_t subpass;
  29648. uint32_t inputAttachmentIndex;
  29649. ImageAspectFlags aspectMask;
  29650. };
  29651. static_assert( sizeof( InputAttachmentAspectReference ) == sizeof( VkInputAttachmentAspectReference ), "struct and wrapper have different size!" );
  29652. struct InstanceCreateInfo
  29653. {
  29654. InstanceCreateInfo( InstanceCreateFlags flags_ = InstanceCreateFlags(),
  29655. const ApplicationInfo* pApplicationInfo_ = nullptr,
  29656. uint32_t enabledLayerCount_ = 0,
  29657. const char* const* ppEnabledLayerNames_ = nullptr,
  29658. uint32_t enabledExtensionCount_ = 0,
  29659. const char* const* ppEnabledExtensionNames_ = nullptr )
  29660. : flags( flags_ )
  29661. , pApplicationInfo( pApplicationInfo_ )
  29662. , enabledLayerCount( enabledLayerCount_ )
  29663. , ppEnabledLayerNames( ppEnabledLayerNames_ )
  29664. , enabledExtensionCount( enabledExtensionCount_ )
  29665. , ppEnabledExtensionNames( ppEnabledExtensionNames_ )
  29666. {}
  29667. InstanceCreateInfo( VkInstanceCreateInfo const & rhs )
  29668. {
  29669. *reinterpret_cast<VkInstanceCreateInfo*>(this) = rhs;
  29670. }
  29671. InstanceCreateInfo& operator=( VkInstanceCreateInfo const & rhs )
  29672. {
  29673. *reinterpret_cast<VkInstanceCreateInfo*>(this) = rhs;
  29674. return *this;
  29675. }
  29676. InstanceCreateInfo & setPNext( const void* pNext_ )
  29677. {
  29678. pNext = pNext_;
  29679. return *this;
  29680. }
  29681. InstanceCreateInfo & setFlags( InstanceCreateFlags flags_ )
  29682. {
  29683. flags = flags_;
  29684. return *this;
  29685. }
  29686. InstanceCreateInfo & setPApplicationInfo( const ApplicationInfo* pApplicationInfo_ )
  29687. {
  29688. pApplicationInfo = pApplicationInfo_;
  29689. return *this;
  29690. }
  29691. InstanceCreateInfo & setEnabledLayerCount( uint32_t enabledLayerCount_ )
  29692. {
  29693. enabledLayerCount = enabledLayerCount_;
  29694. return *this;
  29695. }
  29696. InstanceCreateInfo & setPpEnabledLayerNames( const char* const* ppEnabledLayerNames_ )
  29697. {
  29698. ppEnabledLayerNames = ppEnabledLayerNames_;
  29699. return *this;
  29700. }
  29701. InstanceCreateInfo & setEnabledExtensionCount( uint32_t enabledExtensionCount_ )
  29702. {
  29703. enabledExtensionCount = enabledExtensionCount_;
  29704. return *this;
  29705. }
  29706. InstanceCreateInfo & setPpEnabledExtensionNames( const char* const* ppEnabledExtensionNames_ )
  29707. {
  29708. ppEnabledExtensionNames = ppEnabledExtensionNames_;
  29709. return *this;
  29710. }
  29711. operator VkInstanceCreateInfo const&() const
  29712. {
  29713. return *reinterpret_cast<const VkInstanceCreateInfo*>( this );
  29714. }
  29715. operator VkInstanceCreateInfo &()
  29716. {
  29717. return *reinterpret_cast<VkInstanceCreateInfo*>( this );
  29718. }
  29719. bool operator==( InstanceCreateInfo const& rhs ) const
  29720. {
  29721. return ( sType == rhs.sType )
  29722. && ( pNext == rhs.pNext )
  29723. && ( flags == rhs.flags )
  29724. && ( pApplicationInfo == rhs.pApplicationInfo )
  29725. && ( enabledLayerCount == rhs.enabledLayerCount )
  29726. && ( ppEnabledLayerNames == rhs.ppEnabledLayerNames )
  29727. && ( enabledExtensionCount == rhs.enabledExtensionCount )
  29728. && ( ppEnabledExtensionNames == rhs.ppEnabledExtensionNames );
  29729. }
  29730. bool operator!=( InstanceCreateInfo const& rhs ) const
  29731. {
  29732. return !operator==( rhs );
  29733. }
  29734. private:
  29735. StructureType sType = StructureType::eInstanceCreateInfo;
  29736. public:
  29737. const void* pNext = nullptr;
  29738. InstanceCreateFlags flags;
  29739. const ApplicationInfo* pApplicationInfo;
  29740. uint32_t enabledLayerCount;
  29741. const char* const* ppEnabledLayerNames;
  29742. uint32_t enabledExtensionCount;
  29743. const char* const* ppEnabledExtensionNames;
  29744. };
  29745. static_assert( sizeof( InstanceCreateInfo ) == sizeof( VkInstanceCreateInfo ), "struct and wrapper have different size!" );
  29746. struct LayerProperties
  29747. {
  29748. operator VkLayerProperties const&() const
  29749. {
  29750. return *reinterpret_cast<const VkLayerProperties*>( this );
  29751. }
  29752. operator VkLayerProperties &()
  29753. {
  29754. return *reinterpret_cast<VkLayerProperties*>( this );
  29755. }
  29756. bool operator==( LayerProperties const& rhs ) const
  29757. {
  29758. return ( memcmp( layerName, rhs.layerName, VK_MAX_EXTENSION_NAME_SIZE * sizeof( char ) ) == 0 )
  29759. && ( specVersion == rhs.specVersion )
  29760. && ( implementationVersion == rhs.implementationVersion )
  29761. && ( memcmp( description, rhs.description, VK_MAX_DESCRIPTION_SIZE * sizeof( char ) ) == 0 );
  29762. }
  29763. bool operator!=( LayerProperties const& rhs ) const
  29764. {
  29765. return !operator==( rhs );
  29766. }
  29767. char layerName[VK_MAX_EXTENSION_NAME_SIZE];
  29768. uint32_t specVersion;
  29769. uint32_t implementationVersion;
  29770. char description[VK_MAX_DESCRIPTION_SIZE];
  29771. };
  29772. static_assert( sizeof( LayerProperties ) == sizeof( VkLayerProperties ), "struct and wrapper have different size!" );
  29773. #ifdef VK_USE_PLATFORM_MACOS_MVK
  29774. struct MacOSSurfaceCreateInfoMVK
  29775. {
  29776. MacOSSurfaceCreateInfoMVK( MacOSSurfaceCreateFlagsMVK flags_ = MacOSSurfaceCreateFlagsMVK(),
  29777. const void* pView_ = nullptr )
  29778. : flags( flags_ )
  29779. , pView( pView_ )
  29780. {}
  29781. MacOSSurfaceCreateInfoMVK( VkMacOSSurfaceCreateInfoMVK const & rhs )
  29782. {
  29783. *reinterpret_cast<VkMacOSSurfaceCreateInfoMVK*>(this) = rhs;
  29784. }
  29785. MacOSSurfaceCreateInfoMVK& operator=( VkMacOSSurfaceCreateInfoMVK const & rhs )
  29786. {
  29787. *reinterpret_cast<VkMacOSSurfaceCreateInfoMVK*>(this) = rhs;
  29788. return *this;
  29789. }
  29790. MacOSSurfaceCreateInfoMVK & setPNext( const void* pNext_ )
  29791. {
  29792. pNext = pNext_;
  29793. return *this;
  29794. }
  29795. MacOSSurfaceCreateInfoMVK & setFlags( MacOSSurfaceCreateFlagsMVK flags_ )
  29796. {
  29797. flags = flags_;
  29798. return *this;
  29799. }
  29800. MacOSSurfaceCreateInfoMVK & setPView( const void* pView_ )
  29801. {
  29802. pView = pView_;
  29803. return *this;
  29804. }
  29805. operator VkMacOSSurfaceCreateInfoMVK const&() const
  29806. {
  29807. return *reinterpret_cast<const VkMacOSSurfaceCreateInfoMVK*>( this );
  29808. }
  29809. operator VkMacOSSurfaceCreateInfoMVK &()
  29810. {
  29811. return *reinterpret_cast<VkMacOSSurfaceCreateInfoMVK*>( this );
  29812. }
  29813. bool operator==( MacOSSurfaceCreateInfoMVK const& rhs ) const
  29814. {
  29815. return ( sType == rhs.sType )
  29816. && ( pNext == rhs.pNext )
  29817. && ( flags == rhs.flags )
  29818. && ( pView == rhs.pView );
  29819. }
  29820. bool operator!=( MacOSSurfaceCreateInfoMVK const& rhs ) const
  29821. {
  29822. return !operator==( rhs );
  29823. }
  29824. private:
  29825. StructureType sType = StructureType::eMacosSurfaceCreateInfoMVK;
  29826. public:
  29827. const void* pNext = nullptr;
  29828. MacOSSurfaceCreateFlagsMVK flags;
  29829. const void* pView;
  29830. };
  29831. static_assert( sizeof( MacOSSurfaceCreateInfoMVK ) == sizeof( VkMacOSSurfaceCreateInfoMVK ), "struct and wrapper have different size!" );
  29832. #endif /*VK_USE_PLATFORM_MACOS_MVK*/
  29833. struct MappedMemoryRange
  29834. {
  29835. MappedMemoryRange( DeviceMemory memory_ = DeviceMemory(),
  29836. DeviceSize offset_ = 0,
  29837. DeviceSize size_ = 0 )
  29838. : memory( memory_ )
  29839. , offset( offset_ )
  29840. , size( size_ )
  29841. {}
  29842. MappedMemoryRange( VkMappedMemoryRange const & rhs )
  29843. {
  29844. *reinterpret_cast<VkMappedMemoryRange*>(this) = rhs;
  29845. }
  29846. MappedMemoryRange& operator=( VkMappedMemoryRange const & rhs )
  29847. {
  29848. *reinterpret_cast<VkMappedMemoryRange*>(this) = rhs;
  29849. return *this;
  29850. }
  29851. MappedMemoryRange & setPNext( const void* pNext_ )
  29852. {
  29853. pNext = pNext_;
  29854. return *this;
  29855. }
  29856. MappedMemoryRange & setMemory( DeviceMemory memory_ )
  29857. {
  29858. memory = memory_;
  29859. return *this;
  29860. }
  29861. MappedMemoryRange & setOffset( DeviceSize offset_ )
  29862. {
  29863. offset = offset_;
  29864. return *this;
  29865. }
  29866. MappedMemoryRange & setSize( DeviceSize size_ )
  29867. {
  29868. size = size_;
  29869. return *this;
  29870. }
  29871. operator VkMappedMemoryRange const&() const
  29872. {
  29873. return *reinterpret_cast<const VkMappedMemoryRange*>( this );
  29874. }
  29875. operator VkMappedMemoryRange &()
  29876. {
  29877. return *reinterpret_cast<VkMappedMemoryRange*>( this );
  29878. }
  29879. bool operator==( MappedMemoryRange const& rhs ) const
  29880. {
  29881. return ( sType == rhs.sType )
  29882. && ( pNext == rhs.pNext )
  29883. && ( memory == rhs.memory )
  29884. && ( offset == rhs.offset )
  29885. && ( size == rhs.size );
  29886. }
  29887. bool operator!=( MappedMemoryRange const& rhs ) const
  29888. {
  29889. return !operator==( rhs );
  29890. }
  29891. private:
  29892. StructureType sType = StructureType::eMappedMemoryRange;
  29893. public:
  29894. const void* pNext = nullptr;
  29895. DeviceMemory memory;
  29896. DeviceSize offset;
  29897. DeviceSize size;
  29898. };
  29899. static_assert( sizeof( MappedMemoryRange ) == sizeof( VkMappedMemoryRange ), "struct and wrapper have different size!" );
  29900. struct MemoryAllocateFlagsInfo
  29901. {
  29902. MemoryAllocateFlagsInfo( MemoryAllocateFlags flags_ = MemoryAllocateFlags(),
  29903. uint32_t deviceMask_ = 0 )
  29904. : flags( flags_ )
  29905. , deviceMask( deviceMask_ )
  29906. {}
  29907. MemoryAllocateFlagsInfo( VkMemoryAllocateFlagsInfo const & rhs )
  29908. {
  29909. *reinterpret_cast<VkMemoryAllocateFlagsInfo*>(this) = rhs;
  29910. }
  29911. MemoryAllocateFlagsInfo& operator=( VkMemoryAllocateFlagsInfo const & rhs )
  29912. {
  29913. *reinterpret_cast<VkMemoryAllocateFlagsInfo*>(this) = rhs;
  29914. return *this;
  29915. }
  29916. MemoryAllocateFlagsInfo & setPNext( const void* pNext_ )
  29917. {
  29918. pNext = pNext_;
  29919. return *this;
  29920. }
  29921. MemoryAllocateFlagsInfo & setFlags( MemoryAllocateFlags flags_ )
  29922. {
  29923. flags = flags_;
  29924. return *this;
  29925. }
  29926. MemoryAllocateFlagsInfo & setDeviceMask( uint32_t deviceMask_ )
  29927. {
  29928. deviceMask = deviceMask_;
  29929. return *this;
  29930. }
  29931. operator VkMemoryAllocateFlagsInfo const&() const
  29932. {
  29933. return *reinterpret_cast<const VkMemoryAllocateFlagsInfo*>( this );
  29934. }
  29935. operator VkMemoryAllocateFlagsInfo &()
  29936. {
  29937. return *reinterpret_cast<VkMemoryAllocateFlagsInfo*>( this );
  29938. }
  29939. bool operator==( MemoryAllocateFlagsInfo const& rhs ) const
  29940. {
  29941. return ( sType == rhs.sType )
  29942. && ( pNext == rhs.pNext )
  29943. && ( flags == rhs.flags )
  29944. && ( deviceMask == rhs.deviceMask );
  29945. }
  29946. bool operator!=( MemoryAllocateFlagsInfo const& rhs ) const
  29947. {
  29948. return !operator==( rhs );
  29949. }
  29950. private:
  29951. StructureType sType = StructureType::eMemoryAllocateFlagsInfo;
  29952. public:
  29953. const void* pNext = nullptr;
  29954. MemoryAllocateFlags flags;
  29955. uint32_t deviceMask;
  29956. };
  29957. static_assert( sizeof( MemoryAllocateFlagsInfo ) == sizeof( VkMemoryAllocateFlagsInfo ), "struct and wrapper have different size!" );
  29958. struct MemoryAllocateInfo
  29959. {
  29960. MemoryAllocateInfo( DeviceSize allocationSize_ = 0,
  29961. uint32_t memoryTypeIndex_ = 0 )
  29962. : allocationSize( allocationSize_ )
  29963. , memoryTypeIndex( memoryTypeIndex_ )
  29964. {}
  29965. MemoryAllocateInfo( VkMemoryAllocateInfo const & rhs )
  29966. {
  29967. *reinterpret_cast<VkMemoryAllocateInfo*>(this) = rhs;
  29968. }
  29969. MemoryAllocateInfo& operator=( VkMemoryAllocateInfo const & rhs )
  29970. {
  29971. *reinterpret_cast<VkMemoryAllocateInfo*>(this) = rhs;
  29972. return *this;
  29973. }
  29974. MemoryAllocateInfo & setPNext( const void* pNext_ )
  29975. {
  29976. pNext = pNext_;
  29977. return *this;
  29978. }
  29979. MemoryAllocateInfo & setAllocationSize( DeviceSize allocationSize_ )
  29980. {
  29981. allocationSize = allocationSize_;
  29982. return *this;
  29983. }
  29984. MemoryAllocateInfo & setMemoryTypeIndex( uint32_t memoryTypeIndex_ )
  29985. {
  29986. memoryTypeIndex = memoryTypeIndex_;
  29987. return *this;
  29988. }
  29989. operator VkMemoryAllocateInfo const&() const
  29990. {
  29991. return *reinterpret_cast<const VkMemoryAllocateInfo*>( this );
  29992. }
  29993. operator VkMemoryAllocateInfo &()
  29994. {
  29995. return *reinterpret_cast<VkMemoryAllocateInfo*>( this );
  29996. }
  29997. bool operator==( MemoryAllocateInfo const& rhs ) const
  29998. {
  29999. return ( sType == rhs.sType )
  30000. && ( pNext == rhs.pNext )
  30001. && ( allocationSize == rhs.allocationSize )
  30002. && ( memoryTypeIndex == rhs.memoryTypeIndex );
  30003. }
  30004. bool operator!=( MemoryAllocateInfo const& rhs ) const
  30005. {
  30006. return !operator==( rhs );
  30007. }
  30008. private:
  30009. StructureType sType = StructureType::eMemoryAllocateInfo;
  30010. public:
  30011. const void* pNext = nullptr;
  30012. DeviceSize allocationSize;
  30013. uint32_t memoryTypeIndex;
  30014. };
  30015. static_assert( sizeof( MemoryAllocateInfo ) == sizeof( VkMemoryAllocateInfo ), "struct and wrapper have different size!" );
  30016. struct MemoryBarrier
  30017. {
  30018. MemoryBarrier( AccessFlags srcAccessMask_ = AccessFlags(),
  30019. AccessFlags dstAccessMask_ = AccessFlags() )
  30020. : srcAccessMask( srcAccessMask_ )
  30021. , dstAccessMask( dstAccessMask_ )
  30022. {}
  30023. MemoryBarrier( VkMemoryBarrier const & rhs )
  30024. {
  30025. *reinterpret_cast<VkMemoryBarrier*>(this) = rhs;
  30026. }
  30027. MemoryBarrier& operator=( VkMemoryBarrier const & rhs )
  30028. {
  30029. *reinterpret_cast<VkMemoryBarrier*>(this) = rhs;
  30030. return *this;
  30031. }
  30032. MemoryBarrier & setPNext( const void* pNext_ )
  30033. {
  30034. pNext = pNext_;
  30035. return *this;
  30036. }
  30037. MemoryBarrier & setSrcAccessMask( AccessFlags srcAccessMask_ )
  30038. {
  30039. srcAccessMask = srcAccessMask_;
  30040. return *this;
  30041. }
  30042. MemoryBarrier & setDstAccessMask( AccessFlags dstAccessMask_ )
  30043. {
  30044. dstAccessMask = dstAccessMask_;
  30045. return *this;
  30046. }
  30047. operator VkMemoryBarrier const&() const
  30048. {
  30049. return *reinterpret_cast<const VkMemoryBarrier*>( this );
  30050. }
  30051. operator VkMemoryBarrier &()
  30052. {
  30053. return *reinterpret_cast<VkMemoryBarrier*>( this );
  30054. }
  30055. bool operator==( MemoryBarrier const& rhs ) const
  30056. {
  30057. return ( sType == rhs.sType )
  30058. && ( pNext == rhs.pNext )
  30059. && ( srcAccessMask == rhs.srcAccessMask )
  30060. && ( dstAccessMask == rhs.dstAccessMask );
  30061. }
  30062. bool operator!=( MemoryBarrier const& rhs ) const
  30063. {
  30064. return !operator==( rhs );
  30065. }
  30066. private:
  30067. StructureType sType = StructureType::eMemoryBarrier;
  30068. public:
  30069. const void* pNext = nullptr;
  30070. AccessFlags srcAccessMask;
  30071. AccessFlags dstAccessMask;
  30072. };
  30073. static_assert( sizeof( MemoryBarrier ) == sizeof( VkMemoryBarrier ), "struct and wrapper have different size!" );
  30074. struct MemoryDedicatedAllocateInfo
  30075. {
  30076. MemoryDedicatedAllocateInfo( Image image_ = Image(),
  30077. Buffer buffer_ = Buffer() )
  30078. : image( image_ )
  30079. , buffer( buffer_ )
  30080. {}
  30081. MemoryDedicatedAllocateInfo( VkMemoryDedicatedAllocateInfo const & rhs )
  30082. {
  30083. *reinterpret_cast<VkMemoryDedicatedAllocateInfo*>(this) = rhs;
  30084. }
  30085. MemoryDedicatedAllocateInfo& operator=( VkMemoryDedicatedAllocateInfo const & rhs )
  30086. {
  30087. *reinterpret_cast<VkMemoryDedicatedAllocateInfo*>(this) = rhs;
  30088. return *this;
  30089. }
  30090. MemoryDedicatedAllocateInfo & setPNext( const void* pNext_ )
  30091. {
  30092. pNext = pNext_;
  30093. return *this;
  30094. }
  30095. MemoryDedicatedAllocateInfo & setImage( Image image_ )
  30096. {
  30097. image = image_;
  30098. return *this;
  30099. }
  30100. MemoryDedicatedAllocateInfo & setBuffer( Buffer buffer_ )
  30101. {
  30102. buffer = buffer_;
  30103. return *this;
  30104. }
  30105. operator VkMemoryDedicatedAllocateInfo const&() const
  30106. {
  30107. return *reinterpret_cast<const VkMemoryDedicatedAllocateInfo*>( this );
  30108. }
  30109. operator VkMemoryDedicatedAllocateInfo &()
  30110. {
  30111. return *reinterpret_cast<VkMemoryDedicatedAllocateInfo*>( this );
  30112. }
  30113. bool operator==( MemoryDedicatedAllocateInfo const& rhs ) const
  30114. {
  30115. return ( sType == rhs.sType )
  30116. && ( pNext == rhs.pNext )
  30117. && ( image == rhs.image )
  30118. && ( buffer == rhs.buffer );
  30119. }
  30120. bool operator!=( MemoryDedicatedAllocateInfo const& rhs ) const
  30121. {
  30122. return !operator==( rhs );
  30123. }
  30124. private:
  30125. StructureType sType = StructureType::eMemoryDedicatedAllocateInfo;
  30126. public:
  30127. const void* pNext = nullptr;
  30128. Image image;
  30129. Buffer buffer;
  30130. };
  30131. static_assert( sizeof( MemoryDedicatedAllocateInfo ) == sizeof( VkMemoryDedicatedAllocateInfo ), "struct and wrapper have different size!" );
  30132. struct MemoryDedicatedRequirements
  30133. {
  30134. operator VkMemoryDedicatedRequirements const&() const
  30135. {
  30136. return *reinterpret_cast<const VkMemoryDedicatedRequirements*>( this );
  30137. }
  30138. operator VkMemoryDedicatedRequirements &()
  30139. {
  30140. return *reinterpret_cast<VkMemoryDedicatedRequirements*>( this );
  30141. }
  30142. bool operator==( MemoryDedicatedRequirements const& rhs ) const
  30143. {
  30144. return ( sType == rhs.sType )
  30145. && ( pNext == rhs.pNext )
  30146. && ( prefersDedicatedAllocation == rhs.prefersDedicatedAllocation )
  30147. && ( requiresDedicatedAllocation == rhs.requiresDedicatedAllocation );
  30148. }
  30149. bool operator!=( MemoryDedicatedRequirements const& rhs ) const
  30150. {
  30151. return !operator==( rhs );
  30152. }
  30153. private:
  30154. StructureType sType = StructureType::eMemoryDedicatedRequirements;
  30155. public:
  30156. void* pNext = nullptr;
  30157. Bool32 prefersDedicatedAllocation;
  30158. Bool32 requiresDedicatedAllocation;
  30159. };
  30160. static_assert( sizeof( MemoryDedicatedRequirements ) == sizeof( VkMemoryDedicatedRequirements ), "struct and wrapper have different size!" );
  30161. struct MemoryFdPropertiesKHR
  30162. {
  30163. operator VkMemoryFdPropertiesKHR const&() const
  30164. {
  30165. return *reinterpret_cast<const VkMemoryFdPropertiesKHR*>( this );
  30166. }
  30167. operator VkMemoryFdPropertiesKHR &()
  30168. {
  30169. return *reinterpret_cast<VkMemoryFdPropertiesKHR*>( this );
  30170. }
  30171. bool operator==( MemoryFdPropertiesKHR const& rhs ) const
  30172. {
  30173. return ( sType == rhs.sType )
  30174. && ( pNext == rhs.pNext )
  30175. && ( memoryTypeBits == rhs.memoryTypeBits );
  30176. }
  30177. bool operator!=( MemoryFdPropertiesKHR const& rhs ) const
  30178. {
  30179. return !operator==( rhs );
  30180. }
  30181. private:
  30182. StructureType sType = StructureType::eMemoryFdPropertiesKHR;
  30183. public:
  30184. void* pNext = nullptr;
  30185. uint32_t memoryTypeBits;
  30186. };
  30187. static_assert( sizeof( MemoryFdPropertiesKHR ) == sizeof( VkMemoryFdPropertiesKHR ), "struct and wrapper have different size!" );
  30188. #ifdef VK_USE_PLATFORM_ANDROID_KHR
  30189. struct MemoryGetAndroidHardwareBufferInfoANDROID
  30190. {
  30191. MemoryGetAndroidHardwareBufferInfoANDROID( DeviceMemory memory_ = DeviceMemory() )
  30192. : memory( memory_ )
  30193. {}
  30194. MemoryGetAndroidHardwareBufferInfoANDROID( VkMemoryGetAndroidHardwareBufferInfoANDROID const & rhs )
  30195. {
  30196. *reinterpret_cast<VkMemoryGetAndroidHardwareBufferInfoANDROID*>(this) = rhs;
  30197. }
  30198. MemoryGetAndroidHardwareBufferInfoANDROID& operator=( VkMemoryGetAndroidHardwareBufferInfoANDROID const & rhs )
  30199. {
  30200. *reinterpret_cast<VkMemoryGetAndroidHardwareBufferInfoANDROID*>(this) = rhs;
  30201. return *this;
  30202. }
  30203. MemoryGetAndroidHardwareBufferInfoANDROID & setPNext( const void* pNext_ )
  30204. {
  30205. pNext = pNext_;
  30206. return *this;
  30207. }
  30208. MemoryGetAndroidHardwareBufferInfoANDROID & setMemory( DeviceMemory memory_ )
  30209. {
  30210. memory = memory_;
  30211. return *this;
  30212. }
  30213. operator VkMemoryGetAndroidHardwareBufferInfoANDROID const&() const
  30214. {
  30215. return *reinterpret_cast<const VkMemoryGetAndroidHardwareBufferInfoANDROID*>( this );
  30216. }
  30217. operator VkMemoryGetAndroidHardwareBufferInfoANDROID &()
  30218. {
  30219. return *reinterpret_cast<VkMemoryGetAndroidHardwareBufferInfoANDROID*>( this );
  30220. }
  30221. bool operator==( MemoryGetAndroidHardwareBufferInfoANDROID const& rhs ) const
  30222. {
  30223. return ( sType == rhs.sType )
  30224. && ( pNext == rhs.pNext )
  30225. && ( memory == rhs.memory );
  30226. }
  30227. bool operator!=( MemoryGetAndroidHardwareBufferInfoANDROID const& rhs ) const
  30228. {
  30229. return !operator==( rhs );
  30230. }
  30231. private:
  30232. StructureType sType = StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID;
  30233. public:
  30234. const void* pNext = nullptr;
  30235. DeviceMemory memory;
  30236. };
  30237. static_assert( sizeof( MemoryGetAndroidHardwareBufferInfoANDROID ) == sizeof( VkMemoryGetAndroidHardwareBufferInfoANDROID ), "struct and wrapper have different size!" );
  30238. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  30239. struct MemoryGetFdInfoKHR
  30240. {
  30241. MemoryGetFdInfoKHR( DeviceMemory memory_ = DeviceMemory(),
  30242. ExternalMemoryHandleTypeFlagBits handleType_ = ExternalMemoryHandleTypeFlagBits::eOpaqueFd )
  30243. : memory( memory_ )
  30244. , handleType( handleType_ )
  30245. {}
  30246. MemoryGetFdInfoKHR( VkMemoryGetFdInfoKHR const & rhs )
  30247. {
  30248. *reinterpret_cast<VkMemoryGetFdInfoKHR*>(this) = rhs;
  30249. }
  30250. MemoryGetFdInfoKHR& operator=( VkMemoryGetFdInfoKHR const & rhs )
  30251. {
  30252. *reinterpret_cast<VkMemoryGetFdInfoKHR*>(this) = rhs;
  30253. return *this;
  30254. }
  30255. MemoryGetFdInfoKHR & setPNext( const void* pNext_ )
  30256. {
  30257. pNext = pNext_;
  30258. return *this;
  30259. }
  30260. MemoryGetFdInfoKHR & setMemory( DeviceMemory memory_ )
  30261. {
  30262. memory = memory_;
  30263. return *this;
  30264. }
  30265. MemoryGetFdInfoKHR & setHandleType( ExternalMemoryHandleTypeFlagBits handleType_ )
  30266. {
  30267. handleType = handleType_;
  30268. return *this;
  30269. }
  30270. operator VkMemoryGetFdInfoKHR const&() const
  30271. {
  30272. return *reinterpret_cast<const VkMemoryGetFdInfoKHR*>( this );
  30273. }
  30274. operator VkMemoryGetFdInfoKHR &()
  30275. {
  30276. return *reinterpret_cast<VkMemoryGetFdInfoKHR*>( this );
  30277. }
  30278. bool operator==( MemoryGetFdInfoKHR const& rhs ) const
  30279. {
  30280. return ( sType == rhs.sType )
  30281. && ( pNext == rhs.pNext )
  30282. && ( memory == rhs.memory )
  30283. && ( handleType == rhs.handleType );
  30284. }
  30285. bool operator!=( MemoryGetFdInfoKHR const& rhs ) const
  30286. {
  30287. return !operator==( rhs );
  30288. }
  30289. private:
  30290. StructureType sType = StructureType::eMemoryGetFdInfoKHR;
  30291. public:
  30292. const void* pNext = nullptr;
  30293. DeviceMemory memory;
  30294. ExternalMemoryHandleTypeFlagBits handleType;
  30295. };
  30296. static_assert( sizeof( MemoryGetFdInfoKHR ) == sizeof( VkMemoryGetFdInfoKHR ), "struct and wrapper have different size!" );
  30297. #ifdef VK_USE_PLATFORM_WIN32_KHR
  30298. struct MemoryGetWin32HandleInfoKHR
  30299. {
  30300. MemoryGetWin32HandleInfoKHR( DeviceMemory memory_ = DeviceMemory(),
  30301. ExternalMemoryHandleTypeFlagBits handleType_ = ExternalMemoryHandleTypeFlagBits::eOpaqueFd )
  30302. : memory( memory_ )
  30303. , handleType( handleType_ )
  30304. {}
  30305. MemoryGetWin32HandleInfoKHR( VkMemoryGetWin32HandleInfoKHR const & rhs )
  30306. {
  30307. *reinterpret_cast<VkMemoryGetWin32HandleInfoKHR*>(this) = rhs;
  30308. }
  30309. MemoryGetWin32HandleInfoKHR& operator=( VkMemoryGetWin32HandleInfoKHR const & rhs )
  30310. {
  30311. *reinterpret_cast<VkMemoryGetWin32HandleInfoKHR*>(this) = rhs;
  30312. return *this;
  30313. }
  30314. MemoryGetWin32HandleInfoKHR & setPNext( const void* pNext_ )
  30315. {
  30316. pNext = pNext_;
  30317. return *this;
  30318. }
  30319. MemoryGetWin32HandleInfoKHR & setMemory( DeviceMemory memory_ )
  30320. {
  30321. memory = memory_;
  30322. return *this;
  30323. }
  30324. MemoryGetWin32HandleInfoKHR & setHandleType( ExternalMemoryHandleTypeFlagBits handleType_ )
  30325. {
  30326. handleType = handleType_;
  30327. return *this;
  30328. }
  30329. operator VkMemoryGetWin32HandleInfoKHR const&() const
  30330. {
  30331. return *reinterpret_cast<const VkMemoryGetWin32HandleInfoKHR*>( this );
  30332. }
  30333. operator VkMemoryGetWin32HandleInfoKHR &()
  30334. {
  30335. return *reinterpret_cast<VkMemoryGetWin32HandleInfoKHR*>( this );
  30336. }
  30337. bool operator==( MemoryGetWin32HandleInfoKHR const& rhs ) const
  30338. {
  30339. return ( sType == rhs.sType )
  30340. && ( pNext == rhs.pNext )
  30341. && ( memory == rhs.memory )
  30342. && ( handleType == rhs.handleType );
  30343. }
  30344. bool operator!=( MemoryGetWin32HandleInfoKHR const& rhs ) const
  30345. {
  30346. return !operator==( rhs );
  30347. }
  30348. private:
  30349. StructureType sType = StructureType::eMemoryGetWin32HandleInfoKHR;
  30350. public:
  30351. const void* pNext = nullptr;
  30352. DeviceMemory memory;
  30353. ExternalMemoryHandleTypeFlagBits handleType;
  30354. };
  30355. static_assert( sizeof( MemoryGetWin32HandleInfoKHR ) == sizeof( VkMemoryGetWin32HandleInfoKHR ), "struct and wrapper have different size!" );
  30356. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  30357. struct MemoryHeap
  30358. {
  30359. operator VkMemoryHeap const&() const
  30360. {
  30361. return *reinterpret_cast<const VkMemoryHeap*>( this );
  30362. }
  30363. operator VkMemoryHeap &()
  30364. {
  30365. return *reinterpret_cast<VkMemoryHeap*>( this );
  30366. }
  30367. bool operator==( MemoryHeap const& rhs ) const
  30368. {
  30369. return ( size == rhs.size )
  30370. && ( flags == rhs.flags );
  30371. }
  30372. bool operator!=( MemoryHeap const& rhs ) const
  30373. {
  30374. return !operator==( rhs );
  30375. }
  30376. DeviceSize size;
  30377. MemoryHeapFlags flags;
  30378. };
  30379. static_assert( sizeof( MemoryHeap ) == sizeof( VkMemoryHeap ), "struct and wrapper have different size!" );
  30380. struct MemoryHostPointerPropertiesEXT
  30381. {
  30382. operator VkMemoryHostPointerPropertiesEXT const&() const
  30383. {
  30384. return *reinterpret_cast<const VkMemoryHostPointerPropertiesEXT*>( this );
  30385. }
  30386. operator VkMemoryHostPointerPropertiesEXT &()
  30387. {
  30388. return *reinterpret_cast<VkMemoryHostPointerPropertiesEXT*>( this );
  30389. }
  30390. bool operator==( MemoryHostPointerPropertiesEXT const& rhs ) const
  30391. {
  30392. return ( sType == rhs.sType )
  30393. && ( pNext == rhs.pNext )
  30394. && ( memoryTypeBits == rhs.memoryTypeBits );
  30395. }
  30396. bool operator!=( MemoryHostPointerPropertiesEXT const& rhs ) const
  30397. {
  30398. return !operator==( rhs );
  30399. }
  30400. private:
  30401. StructureType sType = StructureType::eMemoryHostPointerPropertiesEXT;
  30402. public:
  30403. void* pNext = nullptr;
  30404. uint32_t memoryTypeBits;
  30405. };
  30406. static_assert( sizeof( MemoryHostPointerPropertiesEXT ) == sizeof( VkMemoryHostPointerPropertiesEXT ), "struct and wrapper have different size!" );
  30407. struct MemoryPriorityAllocateInfoEXT
  30408. {
  30409. MemoryPriorityAllocateInfoEXT( float priority_ = 0 )
  30410. : priority( priority_ )
  30411. {}
  30412. MemoryPriorityAllocateInfoEXT( VkMemoryPriorityAllocateInfoEXT const & rhs )
  30413. {
  30414. *reinterpret_cast<VkMemoryPriorityAllocateInfoEXT*>(this) = rhs;
  30415. }
  30416. MemoryPriorityAllocateInfoEXT& operator=( VkMemoryPriorityAllocateInfoEXT const & rhs )
  30417. {
  30418. *reinterpret_cast<VkMemoryPriorityAllocateInfoEXT*>(this) = rhs;
  30419. return *this;
  30420. }
  30421. MemoryPriorityAllocateInfoEXT & setPNext( const void* pNext_ )
  30422. {
  30423. pNext = pNext_;
  30424. return *this;
  30425. }
  30426. MemoryPriorityAllocateInfoEXT & setPriority( float priority_ )
  30427. {
  30428. priority = priority_;
  30429. return *this;
  30430. }
  30431. operator VkMemoryPriorityAllocateInfoEXT const&() const
  30432. {
  30433. return *reinterpret_cast<const VkMemoryPriorityAllocateInfoEXT*>( this );
  30434. }
  30435. operator VkMemoryPriorityAllocateInfoEXT &()
  30436. {
  30437. return *reinterpret_cast<VkMemoryPriorityAllocateInfoEXT*>( this );
  30438. }
  30439. bool operator==( MemoryPriorityAllocateInfoEXT const& rhs ) const
  30440. {
  30441. return ( sType == rhs.sType )
  30442. && ( pNext == rhs.pNext )
  30443. && ( priority == rhs.priority );
  30444. }
  30445. bool operator!=( MemoryPriorityAllocateInfoEXT const& rhs ) const
  30446. {
  30447. return !operator==( rhs );
  30448. }
  30449. private:
  30450. StructureType sType = StructureType::eMemoryPriorityAllocateInfoEXT;
  30451. public:
  30452. const void* pNext = nullptr;
  30453. float priority;
  30454. };
  30455. static_assert( sizeof( MemoryPriorityAllocateInfoEXT ) == sizeof( VkMemoryPriorityAllocateInfoEXT ), "struct and wrapper have different size!" );
  30456. struct MemoryRequirements
  30457. {
  30458. operator VkMemoryRequirements const&() const
  30459. {
  30460. return *reinterpret_cast<const VkMemoryRequirements*>( this );
  30461. }
  30462. operator VkMemoryRequirements &()
  30463. {
  30464. return *reinterpret_cast<VkMemoryRequirements*>( this );
  30465. }
  30466. bool operator==( MemoryRequirements const& rhs ) const
  30467. {
  30468. return ( size == rhs.size )
  30469. && ( alignment == rhs.alignment )
  30470. && ( memoryTypeBits == rhs.memoryTypeBits );
  30471. }
  30472. bool operator!=( MemoryRequirements const& rhs ) const
  30473. {
  30474. return !operator==( rhs );
  30475. }
  30476. DeviceSize size;
  30477. DeviceSize alignment;
  30478. uint32_t memoryTypeBits;
  30479. };
  30480. static_assert( sizeof( MemoryRequirements ) == sizeof( VkMemoryRequirements ), "struct and wrapper have different size!" );
  30481. struct MemoryRequirements2
  30482. {
  30483. operator VkMemoryRequirements2 const&() const
  30484. {
  30485. return *reinterpret_cast<const VkMemoryRequirements2*>( this );
  30486. }
  30487. operator VkMemoryRequirements2 &()
  30488. {
  30489. return *reinterpret_cast<VkMemoryRequirements2*>( this );
  30490. }
  30491. bool operator==( MemoryRequirements2 const& rhs ) const
  30492. {
  30493. return ( sType == rhs.sType )
  30494. && ( pNext == rhs.pNext )
  30495. && ( memoryRequirements == rhs.memoryRequirements );
  30496. }
  30497. bool operator!=( MemoryRequirements2 const& rhs ) const
  30498. {
  30499. return !operator==( rhs );
  30500. }
  30501. private:
  30502. StructureType sType = StructureType::eMemoryRequirements2;
  30503. public:
  30504. void* pNext = nullptr;
  30505. MemoryRequirements memoryRequirements;
  30506. };
  30507. static_assert( sizeof( MemoryRequirements2 ) == sizeof( VkMemoryRequirements2 ), "struct and wrapper have different size!" );
  30508. struct MemoryType
  30509. {
  30510. operator VkMemoryType const&() const
  30511. {
  30512. return *reinterpret_cast<const VkMemoryType*>( this );
  30513. }
  30514. operator VkMemoryType &()
  30515. {
  30516. return *reinterpret_cast<VkMemoryType*>( this );
  30517. }
  30518. bool operator==( MemoryType const& rhs ) const
  30519. {
  30520. return ( propertyFlags == rhs.propertyFlags )
  30521. && ( heapIndex == rhs.heapIndex );
  30522. }
  30523. bool operator!=( MemoryType const& rhs ) const
  30524. {
  30525. return !operator==( rhs );
  30526. }
  30527. MemoryPropertyFlags propertyFlags;
  30528. uint32_t heapIndex;
  30529. };
  30530. static_assert( sizeof( MemoryType ) == sizeof( VkMemoryType ), "struct and wrapper have different size!" );
  30531. #ifdef VK_USE_PLATFORM_WIN32_KHR
  30532. struct MemoryWin32HandlePropertiesKHR
  30533. {
  30534. operator VkMemoryWin32HandlePropertiesKHR const&() const
  30535. {
  30536. return *reinterpret_cast<const VkMemoryWin32HandlePropertiesKHR*>( this );
  30537. }
  30538. operator VkMemoryWin32HandlePropertiesKHR &()
  30539. {
  30540. return *reinterpret_cast<VkMemoryWin32HandlePropertiesKHR*>( this );
  30541. }
  30542. bool operator==( MemoryWin32HandlePropertiesKHR const& rhs ) const
  30543. {
  30544. return ( sType == rhs.sType )
  30545. && ( pNext == rhs.pNext )
  30546. && ( memoryTypeBits == rhs.memoryTypeBits );
  30547. }
  30548. bool operator!=( MemoryWin32HandlePropertiesKHR const& rhs ) const
  30549. {
  30550. return !operator==( rhs );
  30551. }
  30552. private:
  30553. StructureType sType = StructureType::eMemoryWin32HandlePropertiesKHR;
  30554. public:
  30555. void* pNext = nullptr;
  30556. uint32_t memoryTypeBits;
  30557. };
  30558. static_assert( sizeof( MemoryWin32HandlePropertiesKHR ) == sizeof( VkMemoryWin32HandlePropertiesKHR ), "struct and wrapper have different size!" );
  30559. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  30560. #ifdef VK_USE_PLATFORM_METAL_EXT
  30561. struct MetalSurfaceCreateInfoEXT
  30562. {
  30563. MetalSurfaceCreateInfoEXT( MetalSurfaceCreateFlagsEXT flags_ = MetalSurfaceCreateFlagsEXT(),
  30564. const CAMetalLayer* pLayer_ = nullptr )
  30565. : flags( flags_ )
  30566. , pLayer( pLayer_ )
  30567. {}
  30568. MetalSurfaceCreateInfoEXT( VkMetalSurfaceCreateInfoEXT const & rhs )
  30569. {
  30570. *reinterpret_cast<VkMetalSurfaceCreateInfoEXT*>(this) = rhs;
  30571. }
  30572. MetalSurfaceCreateInfoEXT& operator=( VkMetalSurfaceCreateInfoEXT const & rhs )
  30573. {
  30574. *reinterpret_cast<VkMetalSurfaceCreateInfoEXT*>(this) = rhs;
  30575. return *this;
  30576. }
  30577. MetalSurfaceCreateInfoEXT & setPNext( const void* pNext_ )
  30578. {
  30579. pNext = pNext_;
  30580. return *this;
  30581. }
  30582. MetalSurfaceCreateInfoEXT & setFlags( MetalSurfaceCreateFlagsEXT flags_ )
  30583. {
  30584. flags = flags_;
  30585. return *this;
  30586. }
  30587. MetalSurfaceCreateInfoEXT & setPLayer( const CAMetalLayer* pLayer_ )
  30588. {
  30589. pLayer = pLayer_;
  30590. return *this;
  30591. }
  30592. operator VkMetalSurfaceCreateInfoEXT const&() const
  30593. {
  30594. return *reinterpret_cast<const VkMetalSurfaceCreateInfoEXT*>( this );
  30595. }
  30596. operator VkMetalSurfaceCreateInfoEXT &()
  30597. {
  30598. return *reinterpret_cast<VkMetalSurfaceCreateInfoEXT*>( this );
  30599. }
  30600. bool operator==( MetalSurfaceCreateInfoEXT const& rhs ) const
  30601. {
  30602. return ( sType == rhs.sType )
  30603. && ( pNext == rhs.pNext )
  30604. && ( flags == rhs.flags )
  30605. && ( pLayer == rhs.pLayer );
  30606. }
  30607. bool operator!=( MetalSurfaceCreateInfoEXT const& rhs ) const
  30608. {
  30609. return !operator==( rhs );
  30610. }
  30611. private:
  30612. StructureType sType = StructureType::eMetalSurfaceCreateInfoEXT;
  30613. public:
  30614. const void* pNext = nullptr;
  30615. MetalSurfaceCreateFlagsEXT flags;
  30616. const CAMetalLayer* pLayer;
  30617. };
  30618. static_assert( sizeof( MetalSurfaceCreateInfoEXT ) == sizeof( VkMetalSurfaceCreateInfoEXT ), "struct and wrapper have different size!" );
  30619. #endif /*VK_USE_PLATFORM_METAL_EXT*/
  30620. struct MultisamplePropertiesEXT
  30621. {
  30622. operator VkMultisamplePropertiesEXT const&() const
  30623. {
  30624. return *reinterpret_cast<const VkMultisamplePropertiesEXT*>( this );
  30625. }
  30626. operator VkMultisamplePropertiesEXT &()
  30627. {
  30628. return *reinterpret_cast<VkMultisamplePropertiesEXT*>( this );
  30629. }
  30630. bool operator==( MultisamplePropertiesEXT const& rhs ) const
  30631. {
  30632. return ( sType == rhs.sType )
  30633. && ( pNext == rhs.pNext )
  30634. && ( maxSampleLocationGridSize == rhs.maxSampleLocationGridSize );
  30635. }
  30636. bool operator!=( MultisamplePropertiesEXT const& rhs ) const
  30637. {
  30638. return !operator==( rhs );
  30639. }
  30640. private:
  30641. StructureType sType = StructureType::eMultisamplePropertiesEXT;
  30642. public:
  30643. void* pNext = nullptr;
  30644. Extent2D maxSampleLocationGridSize;
  30645. };
  30646. static_assert( sizeof( MultisamplePropertiesEXT ) == sizeof( VkMultisamplePropertiesEXT ), "struct and wrapper have different size!" );
  30647. struct ObjectTableCreateInfoNVX
  30648. {
  30649. ObjectTableCreateInfoNVX( uint32_t objectCount_ = 0,
  30650. const ObjectEntryTypeNVX* pObjectEntryTypes_ = nullptr,
  30651. const uint32_t* pObjectEntryCounts_ = nullptr,
  30652. const ObjectEntryUsageFlagsNVX* pObjectEntryUsageFlags_ = nullptr,
  30653. uint32_t maxUniformBuffersPerDescriptor_ = 0,
  30654. uint32_t maxStorageBuffersPerDescriptor_ = 0,
  30655. uint32_t maxStorageImagesPerDescriptor_ = 0,
  30656. uint32_t maxSampledImagesPerDescriptor_ = 0,
  30657. uint32_t maxPipelineLayouts_ = 0 )
  30658. : objectCount( objectCount_ )
  30659. , pObjectEntryTypes( pObjectEntryTypes_ )
  30660. , pObjectEntryCounts( pObjectEntryCounts_ )
  30661. , pObjectEntryUsageFlags( pObjectEntryUsageFlags_ )
  30662. , maxUniformBuffersPerDescriptor( maxUniformBuffersPerDescriptor_ )
  30663. , maxStorageBuffersPerDescriptor( maxStorageBuffersPerDescriptor_ )
  30664. , maxStorageImagesPerDescriptor( maxStorageImagesPerDescriptor_ )
  30665. , maxSampledImagesPerDescriptor( maxSampledImagesPerDescriptor_ )
  30666. , maxPipelineLayouts( maxPipelineLayouts_ )
  30667. {}
  30668. ObjectTableCreateInfoNVX( VkObjectTableCreateInfoNVX const & rhs )
  30669. {
  30670. *reinterpret_cast<VkObjectTableCreateInfoNVX*>(this) = rhs;
  30671. }
  30672. ObjectTableCreateInfoNVX& operator=( VkObjectTableCreateInfoNVX const & rhs )
  30673. {
  30674. *reinterpret_cast<VkObjectTableCreateInfoNVX*>(this) = rhs;
  30675. return *this;
  30676. }
  30677. ObjectTableCreateInfoNVX & setPNext( const void* pNext_ )
  30678. {
  30679. pNext = pNext_;
  30680. return *this;
  30681. }
  30682. ObjectTableCreateInfoNVX & setObjectCount( uint32_t objectCount_ )
  30683. {
  30684. objectCount = objectCount_;
  30685. return *this;
  30686. }
  30687. ObjectTableCreateInfoNVX & setPObjectEntryTypes( const ObjectEntryTypeNVX* pObjectEntryTypes_ )
  30688. {
  30689. pObjectEntryTypes = pObjectEntryTypes_;
  30690. return *this;
  30691. }
  30692. ObjectTableCreateInfoNVX & setPObjectEntryCounts( const uint32_t* pObjectEntryCounts_ )
  30693. {
  30694. pObjectEntryCounts = pObjectEntryCounts_;
  30695. return *this;
  30696. }
  30697. ObjectTableCreateInfoNVX & setPObjectEntryUsageFlags( const ObjectEntryUsageFlagsNVX* pObjectEntryUsageFlags_ )
  30698. {
  30699. pObjectEntryUsageFlags = pObjectEntryUsageFlags_;
  30700. return *this;
  30701. }
  30702. ObjectTableCreateInfoNVX & setMaxUniformBuffersPerDescriptor( uint32_t maxUniformBuffersPerDescriptor_ )
  30703. {
  30704. maxUniformBuffersPerDescriptor = maxUniformBuffersPerDescriptor_;
  30705. return *this;
  30706. }
  30707. ObjectTableCreateInfoNVX & setMaxStorageBuffersPerDescriptor( uint32_t maxStorageBuffersPerDescriptor_ )
  30708. {
  30709. maxStorageBuffersPerDescriptor = maxStorageBuffersPerDescriptor_;
  30710. return *this;
  30711. }
  30712. ObjectTableCreateInfoNVX & setMaxStorageImagesPerDescriptor( uint32_t maxStorageImagesPerDescriptor_ )
  30713. {
  30714. maxStorageImagesPerDescriptor = maxStorageImagesPerDescriptor_;
  30715. return *this;
  30716. }
  30717. ObjectTableCreateInfoNVX & setMaxSampledImagesPerDescriptor( uint32_t maxSampledImagesPerDescriptor_ )
  30718. {
  30719. maxSampledImagesPerDescriptor = maxSampledImagesPerDescriptor_;
  30720. return *this;
  30721. }
  30722. ObjectTableCreateInfoNVX & setMaxPipelineLayouts( uint32_t maxPipelineLayouts_ )
  30723. {
  30724. maxPipelineLayouts = maxPipelineLayouts_;
  30725. return *this;
  30726. }
  30727. operator VkObjectTableCreateInfoNVX const&() const
  30728. {
  30729. return *reinterpret_cast<const VkObjectTableCreateInfoNVX*>( this );
  30730. }
  30731. operator VkObjectTableCreateInfoNVX &()
  30732. {
  30733. return *reinterpret_cast<VkObjectTableCreateInfoNVX*>( this );
  30734. }
  30735. bool operator==( ObjectTableCreateInfoNVX const& rhs ) const
  30736. {
  30737. return ( sType == rhs.sType )
  30738. && ( pNext == rhs.pNext )
  30739. && ( objectCount == rhs.objectCount )
  30740. && ( pObjectEntryTypes == rhs.pObjectEntryTypes )
  30741. && ( pObjectEntryCounts == rhs.pObjectEntryCounts )
  30742. && ( pObjectEntryUsageFlags == rhs.pObjectEntryUsageFlags )
  30743. && ( maxUniformBuffersPerDescriptor == rhs.maxUniformBuffersPerDescriptor )
  30744. && ( maxStorageBuffersPerDescriptor == rhs.maxStorageBuffersPerDescriptor )
  30745. && ( maxStorageImagesPerDescriptor == rhs.maxStorageImagesPerDescriptor )
  30746. && ( maxSampledImagesPerDescriptor == rhs.maxSampledImagesPerDescriptor )
  30747. && ( maxPipelineLayouts == rhs.maxPipelineLayouts );
  30748. }
  30749. bool operator!=( ObjectTableCreateInfoNVX const& rhs ) const
  30750. {
  30751. return !operator==( rhs );
  30752. }
  30753. private:
  30754. StructureType sType = StructureType::eObjectTableCreateInfoNVX;
  30755. public:
  30756. const void* pNext = nullptr;
  30757. uint32_t objectCount;
  30758. const ObjectEntryTypeNVX* pObjectEntryTypes;
  30759. const uint32_t* pObjectEntryCounts;
  30760. const ObjectEntryUsageFlagsNVX* pObjectEntryUsageFlags;
  30761. uint32_t maxUniformBuffersPerDescriptor;
  30762. uint32_t maxStorageBuffersPerDescriptor;
  30763. uint32_t maxStorageImagesPerDescriptor;
  30764. uint32_t maxSampledImagesPerDescriptor;
  30765. uint32_t maxPipelineLayouts;
  30766. };
  30767. static_assert( sizeof( ObjectTableCreateInfoNVX ) == sizeof( VkObjectTableCreateInfoNVX ), "struct and wrapper have different size!" );
  30768. struct ObjectTableEntryNVX
  30769. {
  30770. ObjectTableEntryNVX( ObjectEntryTypeNVX type_ = ObjectEntryTypeNVX::eDescriptorSet,
  30771. ObjectEntryUsageFlagsNVX flags_ = ObjectEntryUsageFlagsNVX() )
  30772. : type( type_ )
  30773. , flags( flags_ )
  30774. {}
  30775. ObjectTableEntryNVX( VkObjectTableEntryNVX const & rhs )
  30776. {
  30777. *reinterpret_cast<VkObjectTableEntryNVX*>(this) = rhs;
  30778. }
  30779. ObjectTableEntryNVX& operator=( VkObjectTableEntryNVX const & rhs )
  30780. {
  30781. *reinterpret_cast<VkObjectTableEntryNVX*>(this) = rhs;
  30782. return *this;
  30783. }
  30784. ObjectTableEntryNVX & setType( ObjectEntryTypeNVX type_ )
  30785. {
  30786. type = type_;
  30787. return *this;
  30788. }
  30789. ObjectTableEntryNVX & setFlags( ObjectEntryUsageFlagsNVX flags_ )
  30790. {
  30791. flags = flags_;
  30792. return *this;
  30793. }
  30794. operator VkObjectTableEntryNVX const&() const
  30795. {
  30796. return *reinterpret_cast<const VkObjectTableEntryNVX*>( this );
  30797. }
  30798. operator VkObjectTableEntryNVX &()
  30799. {
  30800. return *reinterpret_cast<VkObjectTableEntryNVX*>( this );
  30801. }
  30802. bool operator==( ObjectTableEntryNVX const& rhs ) const
  30803. {
  30804. return ( type == rhs.type )
  30805. && ( flags == rhs.flags );
  30806. }
  30807. bool operator!=( ObjectTableEntryNVX const& rhs ) const
  30808. {
  30809. return !operator==( rhs );
  30810. }
  30811. ObjectEntryTypeNVX type;
  30812. ObjectEntryUsageFlagsNVX flags;
  30813. };
  30814. static_assert( sizeof( ObjectTableEntryNVX ) == sizeof( VkObjectTableEntryNVX ), "struct and wrapper have different size!" );
  30815. struct ObjectTableDescriptorSetEntryNVX
  30816. {
  30817. ObjectTableDescriptorSetEntryNVX( ObjectEntryTypeNVX type_ = ObjectEntryTypeNVX::eDescriptorSet,
  30818. ObjectEntryUsageFlagsNVX flags_ = ObjectEntryUsageFlagsNVX(),
  30819. PipelineLayout pipelineLayout_ = PipelineLayout(),
  30820. DescriptorSet descriptorSet_ = DescriptorSet() )
  30821. : type( type_ )
  30822. , flags( flags_ )
  30823. , pipelineLayout( pipelineLayout_ )
  30824. , descriptorSet( descriptorSet_ )
  30825. {}
  30826. explicit ObjectTableDescriptorSetEntryNVX( ObjectTableEntryNVX const& objectTableEntryNVX,
  30827. PipelineLayout pipelineLayout_ = PipelineLayout(),
  30828. DescriptorSet descriptorSet_ = DescriptorSet() )
  30829. : type( objectTableEntryNVX.type )
  30830. , flags( objectTableEntryNVX.flags )
  30831. , pipelineLayout( pipelineLayout_ )
  30832. , descriptorSet( descriptorSet_ )
  30833. {}
  30834. ObjectTableDescriptorSetEntryNVX( VkObjectTableDescriptorSetEntryNVX const & rhs )
  30835. {
  30836. *reinterpret_cast<VkObjectTableDescriptorSetEntryNVX*>(this) = rhs;
  30837. }
  30838. ObjectTableDescriptorSetEntryNVX& operator=( VkObjectTableDescriptorSetEntryNVX const & rhs )
  30839. {
  30840. *reinterpret_cast<VkObjectTableDescriptorSetEntryNVX*>(this) = rhs;
  30841. return *this;
  30842. }
  30843. ObjectTableDescriptorSetEntryNVX & setType( ObjectEntryTypeNVX type_ )
  30844. {
  30845. type = type_;
  30846. return *this;
  30847. }
  30848. ObjectTableDescriptorSetEntryNVX & setFlags( ObjectEntryUsageFlagsNVX flags_ )
  30849. {
  30850. flags = flags_;
  30851. return *this;
  30852. }
  30853. ObjectTableDescriptorSetEntryNVX & setPipelineLayout( PipelineLayout pipelineLayout_ )
  30854. {
  30855. pipelineLayout = pipelineLayout_;
  30856. return *this;
  30857. }
  30858. ObjectTableDescriptorSetEntryNVX & setDescriptorSet( DescriptorSet descriptorSet_ )
  30859. {
  30860. descriptorSet = descriptorSet_;
  30861. return *this;
  30862. }
  30863. operator VkObjectTableDescriptorSetEntryNVX const&() const
  30864. {
  30865. return *reinterpret_cast<const VkObjectTableDescriptorSetEntryNVX*>( this );
  30866. }
  30867. operator VkObjectTableDescriptorSetEntryNVX &()
  30868. {
  30869. return *reinterpret_cast<VkObjectTableDescriptorSetEntryNVX*>( this );
  30870. }
  30871. bool operator==( ObjectTableDescriptorSetEntryNVX const& rhs ) const
  30872. {
  30873. return ( type == rhs.type )
  30874. && ( flags == rhs.flags )
  30875. && ( pipelineLayout == rhs.pipelineLayout )
  30876. && ( descriptorSet == rhs.descriptorSet );
  30877. }
  30878. bool operator!=( ObjectTableDescriptorSetEntryNVX const& rhs ) const
  30879. {
  30880. return !operator==( rhs );
  30881. }
  30882. ObjectEntryTypeNVX type;
  30883. ObjectEntryUsageFlagsNVX flags;
  30884. PipelineLayout pipelineLayout;
  30885. DescriptorSet descriptorSet;
  30886. };
  30887. static_assert( sizeof( ObjectTableDescriptorSetEntryNVX ) == sizeof( VkObjectTableDescriptorSetEntryNVX ), "struct and wrapper have different size!" );
  30888. struct ObjectTableIndexBufferEntryNVX
  30889. {
  30890. ObjectTableIndexBufferEntryNVX( ObjectEntryTypeNVX type_ = ObjectEntryTypeNVX::eDescriptorSet,
  30891. ObjectEntryUsageFlagsNVX flags_ = ObjectEntryUsageFlagsNVX(),
  30892. Buffer buffer_ = Buffer(),
  30893. IndexType indexType_ = IndexType::eUint16 )
  30894. : type( type_ )
  30895. , flags( flags_ )
  30896. , buffer( buffer_ )
  30897. , indexType( indexType_ )
  30898. {}
  30899. explicit ObjectTableIndexBufferEntryNVX( ObjectTableEntryNVX const& objectTableEntryNVX,
  30900. Buffer buffer_ = Buffer(),
  30901. IndexType indexType_ = IndexType::eUint16 )
  30902. : type( objectTableEntryNVX.type )
  30903. , flags( objectTableEntryNVX.flags )
  30904. , buffer( buffer_ )
  30905. , indexType( indexType_ )
  30906. {}
  30907. ObjectTableIndexBufferEntryNVX( VkObjectTableIndexBufferEntryNVX const & rhs )
  30908. {
  30909. *reinterpret_cast<VkObjectTableIndexBufferEntryNVX*>(this) = rhs;
  30910. }
  30911. ObjectTableIndexBufferEntryNVX& operator=( VkObjectTableIndexBufferEntryNVX const & rhs )
  30912. {
  30913. *reinterpret_cast<VkObjectTableIndexBufferEntryNVX*>(this) = rhs;
  30914. return *this;
  30915. }
  30916. ObjectTableIndexBufferEntryNVX & setType( ObjectEntryTypeNVX type_ )
  30917. {
  30918. type = type_;
  30919. return *this;
  30920. }
  30921. ObjectTableIndexBufferEntryNVX & setFlags( ObjectEntryUsageFlagsNVX flags_ )
  30922. {
  30923. flags = flags_;
  30924. return *this;
  30925. }
  30926. ObjectTableIndexBufferEntryNVX & setBuffer( Buffer buffer_ )
  30927. {
  30928. buffer = buffer_;
  30929. return *this;
  30930. }
  30931. ObjectTableIndexBufferEntryNVX & setIndexType( IndexType indexType_ )
  30932. {
  30933. indexType = indexType_;
  30934. return *this;
  30935. }
  30936. operator VkObjectTableIndexBufferEntryNVX const&() const
  30937. {
  30938. return *reinterpret_cast<const VkObjectTableIndexBufferEntryNVX*>( this );
  30939. }
  30940. operator VkObjectTableIndexBufferEntryNVX &()
  30941. {
  30942. return *reinterpret_cast<VkObjectTableIndexBufferEntryNVX*>( this );
  30943. }
  30944. bool operator==( ObjectTableIndexBufferEntryNVX const& rhs ) const
  30945. {
  30946. return ( type == rhs.type )
  30947. && ( flags == rhs.flags )
  30948. && ( buffer == rhs.buffer )
  30949. && ( indexType == rhs.indexType );
  30950. }
  30951. bool operator!=( ObjectTableIndexBufferEntryNVX const& rhs ) const
  30952. {
  30953. return !operator==( rhs );
  30954. }
  30955. ObjectEntryTypeNVX type;
  30956. ObjectEntryUsageFlagsNVX flags;
  30957. Buffer buffer;
  30958. IndexType indexType;
  30959. };
  30960. static_assert( sizeof( ObjectTableIndexBufferEntryNVX ) == sizeof( VkObjectTableIndexBufferEntryNVX ), "struct and wrapper have different size!" );
  30961. struct ObjectTablePipelineEntryNVX
  30962. {
  30963. ObjectTablePipelineEntryNVX( ObjectEntryTypeNVX type_ = ObjectEntryTypeNVX::eDescriptorSet,
  30964. ObjectEntryUsageFlagsNVX flags_ = ObjectEntryUsageFlagsNVX(),
  30965. Pipeline pipeline_ = Pipeline() )
  30966. : type( type_ )
  30967. , flags( flags_ )
  30968. , pipeline( pipeline_ )
  30969. {}
  30970. explicit ObjectTablePipelineEntryNVX( ObjectTableEntryNVX const& objectTableEntryNVX,
  30971. Pipeline pipeline_ = Pipeline() )
  30972. : type( objectTableEntryNVX.type )
  30973. , flags( objectTableEntryNVX.flags )
  30974. , pipeline( pipeline_ )
  30975. {}
  30976. ObjectTablePipelineEntryNVX( VkObjectTablePipelineEntryNVX const & rhs )
  30977. {
  30978. *reinterpret_cast<VkObjectTablePipelineEntryNVX*>(this) = rhs;
  30979. }
  30980. ObjectTablePipelineEntryNVX& operator=( VkObjectTablePipelineEntryNVX const & rhs )
  30981. {
  30982. *reinterpret_cast<VkObjectTablePipelineEntryNVX*>(this) = rhs;
  30983. return *this;
  30984. }
  30985. ObjectTablePipelineEntryNVX & setType( ObjectEntryTypeNVX type_ )
  30986. {
  30987. type = type_;
  30988. return *this;
  30989. }
  30990. ObjectTablePipelineEntryNVX & setFlags( ObjectEntryUsageFlagsNVX flags_ )
  30991. {
  30992. flags = flags_;
  30993. return *this;
  30994. }
  30995. ObjectTablePipelineEntryNVX & setPipeline( Pipeline pipeline_ )
  30996. {
  30997. pipeline = pipeline_;
  30998. return *this;
  30999. }
  31000. operator VkObjectTablePipelineEntryNVX const&() const
  31001. {
  31002. return *reinterpret_cast<const VkObjectTablePipelineEntryNVX*>( this );
  31003. }
  31004. operator VkObjectTablePipelineEntryNVX &()
  31005. {
  31006. return *reinterpret_cast<VkObjectTablePipelineEntryNVX*>( this );
  31007. }
  31008. bool operator==( ObjectTablePipelineEntryNVX const& rhs ) const
  31009. {
  31010. return ( type == rhs.type )
  31011. && ( flags == rhs.flags )
  31012. && ( pipeline == rhs.pipeline );
  31013. }
  31014. bool operator!=( ObjectTablePipelineEntryNVX const& rhs ) const
  31015. {
  31016. return !operator==( rhs );
  31017. }
  31018. ObjectEntryTypeNVX type;
  31019. ObjectEntryUsageFlagsNVX flags;
  31020. Pipeline pipeline;
  31021. };
  31022. static_assert( sizeof( ObjectTablePipelineEntryNVX ) == sizeof( VkObjectTablePipelineEntryNVX ), "struct and wrapper have different size!" );
  31023. struct ObjectTablePushConstantEntryNVX
  31024. {
  31025. ObjectTablePushConstantEntryNVX( ObjectEntryTypeNVX type_ = ObjectEntryTypeNVX::eDescriptorSet,
  31026. ObjectEntryUsageFlagsNVX flags_ = ObjectEntryUsageFlagsNVX(),
  31027. PipelineLayout pipelineLayout_ = PipelineLayout(),
  31028. ShaderStageFlags stageFlags_ = ShaderStageFlags() )
  31029. : type( type_ )
  31030. , flags( flags_ )
  31031. , pipelineLayout( pipelineLayout_ )
  31032. , stageFlags( stageFlags_ )
  31033. {}
  31034. explicit ObjectTablePushConstantEntryNVX( ObjectTableEntryNVX const& objectTableEntryNVX,
  31035. PipelineLayout pipelineLayout_ = PipelineLayout(),
  31036. ShaderStageFlags stageFlags_ = ShaderStageFlags() )
  31037. : type( objectTableEntryNVX.type )
  31038. , flags( objectTableEntryNVX.flags )
  31039. , pipelineLayout( pipelineLayout_ )
  31040. , stageFlags( stageFlags_ )
  31041. {}
  31042. ObjectTablePushConstantEntryNVX( VkObjectTablePushConstantEntryNVX const & rhs )
  31043. {
  31044. *reinterpret_cast<VkObjectTablePushConstantEntryNVX*>(this) = rhs;
  31045. }
  31046. ObjectTablePushConstantEntryNVX& operator=( VkObjectTablePushConstantEntryNVX const & rhs )
  31047. {
  31048. *reinterpret_cast<VkObjectTablePushConstantEntryNVX*>(this) = rhs;
  31049. return *this;
  31050. }
  31051. ObjectTablePushConstantEntryNVX & setType( ObjectEntryTypeNVX type_ )
  31052. {
  31053. type = type_;
  31054. return *this;
  31055. }
  31056. ObjectTablePushConstantEntryNVX & setFlags( ObjectEntryUsageFlagsNVX flags_ )
  31057. {
  31058. flags = flags_;
  31059. return *this;
  31060. }
  31061. ObjectTablePushConstantEntryNVX & setPipelineLayout( PipelineLayout pipelineLayout_ )
  31062. {
  31063. pipelineLayout = pipelineLayout_;
  31064. return *this;
  31065. }
  31066. ObjectTablePushConstantEntryNVX & setStageFlags( ShaderStageFlags stageFlags_ )
  31067. {
  31068. stageFlags = stageFlags_;
  31069. return *this;
  31070. }
  31071. operator VkObjectTablePushConstantEntryNVX const&() const
  31072. {
  31073. return *reinterpret_cast<const VkObjectTablePushConstantEntryNVX*>( this );
  31074. }
  31075. operator VkObjectTablePushConstantEntryNVX &()
  31076. {
  31077. return *reinterpret_cast<VkObjectTablePushConstantEntryNVX*>( this );
  31078. }
  31079. bool operator==( ObjectTablePushConstantEntryNVX const& rhs ) const
  31080. {
  31081. return ( type == rhs.type )
  31082. && ( flags == rhs.flags )
  31083. && ( pipelineLayout == rhs.pipelineLayout )
  31084. && ( stageFlags == rhs.stageFlags );
  31085. }
  31086. bool operator!=( ObjectTablePushConstantEntryNVX const& rhs ) const
  31087. {
  31088. return !operator==( rhs );
  31089. }
  31090. ObjectEntryTypeNVX type;
  31091. ObjectEntryUsageFlagsNVX flags;
  31092. PipelineLayout pipelineLayout;
  31093. ShaderStageFlags stageFlags;
  31094. };
  31095. static_assert( sizeof( ObjectTablePushConstantEntryNVX ) == sizeof( VkObjectTablePushConstantEntryNVX ), "struct and wrapper have different size!" );
  31096. struct ObjectTableVertexBufferEntryNVX
  31097. {
  31098. ObjectTableVertexBufferEntryNVX( ObjectEntryTypeNVX type_ = ObjectEntryTypeNVX::eDescriptorSet,
  31099. ObjectEntryUsageFlagsNVX flags_ = ObjectEntryUsageFlagsNVX(),
  31100. Buffer buffer_ = Buffer() )
  31101. : type( type_ )
  31102. , flags( flags_ )
  31103. , buffer( buffer_ )
  31104. {}
  31105. explicit ObjectTableVertexBufferEntryNVX( ObjectTableEntryNVX const& objectTableEntryNVX,
  31106. Buffer buffer_ = Buffer() )
  31107. : type( objectTableEntryNVX.type )
  31108. , flags( objectTableEntryNVX.flags )
  31109. , buffer( buffer_ )
  31110. {}
  31111. ObjectTableVertexBufferEntryNVX( VkObjectTableVertexBufferEntryNVX const & rhs )
  31112. {
  31113. *reinterpret_cast<VkObjectTableVertexBufferEntryNVX*>(this) = rhs;
  31114. }
  31115. ObjectTableVertexBufferEntryNVX& operator=( VkObjectTableVertexBufferEntryNVX const & rhs )
  31116. {
  31117. *reinterpret_cast<VkObjectTableVertexBufferEntryNVX*>(this) = rhs;
  31118. return *this;
  31119. }
  31120. ObjectTableVertexBufferEntryNVX & setType( ObjectEntryTypeNVX type_ )
  31121. {
  31122. type = type_;
  31123. return *this;
  31124. }
  31125. ObjectTableVertexBufferEntryNVX & setFlags( ObjectEntryUsageFlagsNVX flags_ )
  31126. {
  31127. flags = flags_;
  31128. return *this;
  31129. }
  31130. ObjectTableVertexBufferEntryNVX & setBuffer( Buffer buffer_ )
  31131. {
  31132. buffer = buffer_;
  31133. return *this;
  31134. }
  31135. operator VkObjectTableVertexBufferEntryNVX const&() const
  31136. {
  31137. return *reinterpret_cast<const VkObjectTableVertexBufferEntryNVX*>( this );
  31138. }
  31139. operator VkObjectTableVertexBufferEntryNVX &()
  31140. {
  31141. return *reinterpret_cast<VkObjectTableVertexBufferEntryNVX*>( this );
  31142. }
  31143. bool operator==( ObjectTableVertexBufferEntryNVX const& rhs ) const
  31144. {
  31145. return ( type == rhs.type )
  31146. && ( flags == rhs.flags )
  31147. && ( buffer == rhs.buffer );
  31148. }
  31149. bool operator!=( ObjectTableVertexBufferEntryNVX const& rhs ) const
  31150. {
  31151. return !operator==( rhs );
  31152. }
  31153. ObjectEntryTypeNVX type;
  31154. ObjectEntryUsageFlagsNVX flags;
  31155. Buffer buffer;
  31156. };
  31157. static_assert( sizeof( ObjectTableVertexBufferEntryNVX ) == sizeof( VkObjectTableVertexBufferEntryNVX ), "struct and wrapper have different size!" );
  31158. struct PastPresentationTimingGOOGLE
  31159. {
  31160. operator VkPastPresentationTimingGOOGLE const&() const
  31161. {
  31162. return *reinterpret_cast<const VkPastPresentationTimingGOOGLE*>( this );
  31163. }
  31164. operator VkPastPresentationTimingGOOGLE &()
  31165. {
  31166. return *reinterpret_cast<VkPastPresentationTimingGOOGLE*>( this );
  31167. }
  31168. bool operator==( PastPresentationTimingGOOGLE const& rhs ) const
  31169. {
  31170. return ( presentID == rhs.presentID )
  31171. && ( desiredPresentTime == rhs.desiredPresentTime )
  31172. && ( actualPresentTime == rhs.actualPresentTime )
  31173. && ( earliestPresentTime == rhs.earliestPresentTime )
  31174. && ( presentMargin == rhs.presentMargin );
  31175. }
  31176. bool operator!=( PastPresentationTimingGOOGLE const& rhs ) const
  31177. {
  31178. return !operator==( rhs );
  31179. }
  31180. uint32_t presentID;
  31181. uint64_t desiredPresentTime;
  31182. uint64_t actualPresentTime;
  31183. uint64_t earliestPresentTime;
  31184. uint64_t presentMargin;
  31185. };
  31186. static_assert( sizeof( PastPresentationTimingGOOGLE ) == sizeof( VkPastPresentationTimingGOOGLE ), "struct and wrapper have different size!" );
  31187. struct PerformanceConfigurationAcquireInfoINTEL
  31188. {
  31189. PerformanceConfigurationAcquireInfoINTEL( PerformanceConfigurationTypeINTEL type_ = PerformanceConfigurationTypeINTEL::eCommandQueueMetricsDiscoveryActivated )
  31190. : type( type_ )
  31191. {}
  31192. PerformanceConfigurationAcquireInfoINTEL( VkPerformanceConfigurationAcquireInfoINTEL const & rhs )
  31193. {
  31194. *reinterpret_cast<VkPerformanceConfigurationAcquireInfoINTEL*>(this) = rhs;
  31195. }
  31196. PerformanceConfigurationAcquireInfoINTEL& operator=( VkPerformanceConfigurationAcquireInfoINTEL const & rhs )
  31197. {
  31198. *reinterpret_cast<VkPerformanceConfigurationAcquireInfoINTEL*>(this) = rhs;
  31199. return *this;
  31200. }
  31201. PerformanceConfigurationAcquireInfoINTEL & setPNext( const void* pNext_ )
  31202. {
  31203. pNext = pNext_;
  31204. return *this;
  31205. }
  31206. PerformanceConfigurationAcquireInfoINTEL & setType( PerformanceConfigurationTypeINTEL type_ )
  31207. {
  31208. type = type_;
  31209. return *this;
  31210. }
  31211. operator VkPerformanceConfigurationAcquireInfoINTEL const&() const
  31212. {
  31213. return *reinterpret_cast<const VkPerformanceConfigurationAcquireInfoINTEL*>( this );
  31214. }
  31215. operator VkPerformanceConfigurationAcquireInfoINTEL &()
  31216. {
  31217. return *reinterpret_cast<VkPerformanceConfigurationAcquireInfoINTEL*>( this );
  31218. }
  31219. bool operator==( PerformanceConfigurationAcquireInfoINTEL const& rhs ) const
  31220. {
  31221. return ( sType == rhs.sType )
  31222. && ( pNext == rhs.pNext )
  31223. && ( type == rhs.type );
  31224. }
  31225. bool operator!=( PerformanceConfigurationAcquireInfoINTEL const& rhs ) const
  31226. {
  31227. return !operator==( rhs );
  31228. }
  31229. private:
  31230. StructureType sType = StructureType::ePerformanceConfigurationAcquireInfoINTEL;
  31231. public:
  31232. const void* pNext = nullptr;
  31233. PerformanceConfigurationTypeINTEL type;
  31234. };
  31235. static_assert( sizeof( PerformanceConfigurationAcquireInfoINTEL ) == sizeof( VkPerformanceConfigurationAcquireInfoINTEL ), "struct and wrapper have different size!" );
  31236. struct PerformanceMarkerInfoINTEL
  31237. {
  31238. PerformanceMarkerInfoINTEL( uint64_t marker_ = 0 )
  31239. : marker( marker_ )
  31240. {}
  31241. PerformanceMarkerInfoINTEL( VkPerformanceMarkerInfoINTEL const & rhs )
  31242. {
  31243. *reinterpret_cast<VkPerformanceMarkerInfoINTEL*>(this) = rhs;
  31244. }
  31245. PerformanceMarkerInfoINTEL& operator=( VkPerformanceMarkerInfoINTEL const & rhs )
  31246. {
  31247. *reinterpret_cast<VkPerformanceMarkerInfoINTEL*>(this) = rhs;
  31248. return *this;
  31249. }
  31250. PerformanceMarkerInfoINTEL & setPNext( const void* pNext_ )
  31251. {
  31252. pNext = pNext_;
  31253. return *this;
  31254. }
  31255. PerformanceMarkerInfoINTEL & setMarker( uint64_t marker_ )
  31256. {
  31257. marker = marker_;
  31258. return *this;
  31259. }
  31260. operator VkPerformanceMarkerInfoINTEL const&() const
  31261. {
  31262. return *reinterpret_cast<const VkPerformanceMarkerInfoINTEL*>( this );
  31263. }
  31264. operator VkPerformanceMarkerInfoINTEL &()
  31265. {
  31266. return *reinterpret_cast<VkPerformanceMarkerInfoINTEL*>( this );
  31267. }
  31268. bool operator==( PerformanceMarkerInfoINTEL const& rhs ) const
  31269. {
  31270. return ( sType == rhs.sType )
  31271. && ( pNext == rhs.pNext )
  31272. && ( marker == rhs.marker );
  31273. }
  31274. bool operator!=( PerformanceMarkerInfoINTEL const& rhs ) const
  31275. {
  31276. return !operator==( rhs );
  31277. }
  31278. private:
  31279. StructureType sType = StructureType::ePerformanceMarkerInfoINTEL;
  31280. public:
  31281. const void* pNext = nullptr;
  31282. uint64_t marker;
  31283. };
  31284. static_assert( sizeof( PerformanceMarkerInfoINTEL ) == sizeof( VkPerformanceMarkerInfoINTEL ), "struct and wrapper have different size!" );
  31285. struct PerformanceOverrideInfoINTEL
  31286. {
  31287. PerformanceOverrideInfoINTEL( PerformanceOverrideTypeINTEL type_ = PerformanceOverrideTypeINTEL::eNullHardware,
  31288. Bool32 enable_ = 0,
  31289. uint64_t parameter_ = 0 )
  31290. : type( type_ )
  31291. , enable( enable_ )
  31292. , parameter( parameter_ )
  31293. {}
  31294. PerformanceOverrideInfoINTEL( VkPerformanceOverrideInfoINTEL const & rhs )
  31295. {
  31296. *reinterpret_cast<VkPerformanceOverrideInfoINTEL*>(this) = rhs;
  31297. }
  31298. PerformanceOverrideInfoINTEL& operator=( VkPerformanceOverrideInfoINTEL const & rhs )
  31299. {
  31300. *reinterpret_cast<VkPerformanceOverrideInfoINTEL*>(this) = rhs;
  31301. return *this;
  31302. }
  31303. PerformanceOverrideInfoINTEL & setPNext( const void* pNext_ )
  31304. {
  31305. pNext = pNext_;
  31306. return *this;
  31307. }
  31308. PerformanceOverrideInfoINTEL & setType( PerformanceOverrideTypeINTEL type_ )
  31309. {
  31310. type = type_;
  31311. return *this;
  31312. }
  31313. PerformanceOverrideInfoINTEL & setEnable( Bool32 enable_ )
  31314. {
  31315. enable = enable_;
  31316. return *this;
  31317. }
  31318. PerformanceOverrideInfoINTEL & setParameter( uint64_t parameter_ )
  31319. {
  31320. parameter = parameter_;
  31321. return *this;
  31322. }
  31323. operator VkPerformanceOverrideInfoINTEL const&() const
  31324. {
  31325. return *reinterpret_cast<const VkPerformanceOverrideInfoINTEL*>( this );
  31326. }
  31327. operator VkPerformanceOverrideInfoINTEL &()
  31328. {
  31329. return *reinterpret_cast<VkPerformanceOverrideInfoINTEL*>( this );
  31330. }
  31331. bool operator==( PerformanceOverrideInfoINTEL const& rhs ) const
  31332. {
  31333. return ( sType == rhs.sType )
  31334. && ( pNext == rhs.pNext )
  31335. && ( type == rhs.type )
  31336. && ( enable == rhs.enable )
  31337. && ( parameter == rhs.parameter );
  31338. }
  31339. bool operator!=( PerformanceOverrideInfoINTEL const& rhs ) const
  31340. {
  31341. return !operator==( rhs );
  31342. }
  31343. private:
  31344. StructureType sType = StructureType::ePerformanceOverrideInfoINTEL;
  31345. public:
  31346. const void* pNext = nullptr;
  31347. PerformanceOverrideTypeINTEL type;
  31348. Bool32 enable;
  31349. uint64_t parameter;
  31350. };
  31351. static_assert( sizeof( PerformanceOverrideInfoINTEL ) == sizeof( VkPerformanceOverrideInfoINTEL ), "struct and wrapper have different size!" );
  31352. struct PerformanceStreamMarkerInfoINTEL
  31353. {
  31354. PerformanceStreamMarkerInfoINTEL( uint32_t marker_ = 0 )
  31355. : marker( marker_ )
  31356. {}
  31357. PerformanceStreamMarkerInfoINTEL( VkPerformanceStreamMarkerInfoINTEL const & rhs )
  31358. {
  31359. *reinterpret_cast<VkPerformanceStreamMarkerInfoINTEL*>(this) = rhs;
  31360. }
  31361. PerformanceStreamMarkerInfoINTEL& operator=( VkPerformanceStreamMarkerInfoINTEL const & rhs )
  31362. {
  31363. *reinterpret_cast<VkPerformanceStreamMarkerInfoINTEL*>(this) = rhs;
  31364. return *this;
  31365. }
  31366. PerformanceStreamMarkerInfoINTEL & setPNext( const void* pNext_ )
  31367. {
  31368. pNext = pNext_;
  31369. return *this;
  31370. }
  31371. PerformanceStreamMarkerInfoINTEL & setMarker( uint32_t marker_ )
  31372. {
  31373. marker = marker_;
  31374. return *this;
  31375. }
  31376. operator VkPerformanceStreamMarkerInfoINTEL const&() const
  31377. {
  31378. return *reinterpret_cast<const VkPerformanceStreamMarkerInfoINTEL*>( this );
  31379. }
  31380. operator VkPerformanceStreamMarkerInfoINTEL &()
  31381. {
  31382. return *reinterpret_cast<VkPerformanceStreamMarkerInfoINTEL*>( this );
  31383. }
  31384. bool operator==( PerformanceStreamMarkerInfoINTEL const& rhs ) const
  31385. {
  31386. return ( sType == rhs.sType )
  31387. && ( pNext == rhs.pNext )
  31388. && ( marker == rhs.marker );
  31389. }
  31390. bool operator!=( PerformanceStreamMarkerInfoINTEL const& rhs ) const
  31391. {
  31392. return !operator==( rhs );
  31393. }
  31394. private:
  31395. StructureType sType = StructureType::ePerformanceStreamMarkerInfoINTEL;
  31396. public:
  31397. const void* pNext = nullptr;
  31398. uint32_t marker;
  31399. };
  31400. static_assert( sizeof( PerformanceStreamMarkerInfoINTEL ) == sizeof( VkPerformanceStreamMarkerInfoINTEL ), "struct and wrapper have different size!" );
  31401. union PerformanceValueDataINTEL
  31402. {
  31403. PerformanceValueDataINTEL( uint32_t value32_ = 0 )
  31404. {
  31405. value32 = value32_;
  31406. }
  31407. PerformanceValueDataINTEL( uint64_t value64_ )
  31408. {
  31409. value64 = value64_;
  31410. }
  31411. PerformanceValueDataINTEL( float valueFloat_ )
  31412. {
  31413. valueFloat = valueFloat_;
  31414. }
  31415. PerformanceValueDataINTEL( const char* valueString_ )
  31416. {
  31417. valueString = valueString_;
  31418. }
  31419. PerformanceValueDataINTEL & setValue32( uint32_t value32_ )
  31420. {
  31421. value32 = value32_;
  31422. return *this;
  31423. }
  31424. PerformanceValueDataINTEL & setValue64( uint64_t value64_ )
  31425. {
  31426. value64 = value64_;
  31427. return *this;
  31428. }
  31429. PerformanceValueDataINTEL & setValueFloat( float valueFloat_ )
  31430. {
  31431. valueFloat = valueFloat_;
  31432. return *this;
  31433. }
  31434. PerformanceValueDataINTEL & setValueBool( Bool32 valueBool_ )
  31435. {
  31436. valueBool = valueBool_;
  31437. return *this;
  31438. }
  31439. PerformanceValueDataINTEL & setValueString( const char* valueString_ )
  31440. {
  31441. valueString = valueString_;
  31442. return *this;
  31443. }
  31444. operator VkPerformanceValueDataINTEL const&() const
  31445. {
  31446. return *reinterpret_cast<const VkPerformanceValueDataINTEL*>(this);
  31447. }
  31448. operator VkPerformanceValueDataINTEL &()
  31449. {
  31450. return *reinterpret_cast<VkPerformanceValueDataINTEL*>(this);
  31451. }
  31452. #ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
  31453. uint32_t value32;
  31454. uint64_t value64;
  31455. float valueFloat;
  31456. Bool32 valueBool;
  31457. const char* valueString;
  31458. #else
  31459. uint32_t value32;
  31460. uint64_t value64;
  31461. float valueFloat;
  31462. VkBool32 valueBool;
  31463. const char* valueString;
  31464. #endif /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
  31465. };
  31466. struct PerformanceValueINTEL
  31467. {
  31468. PerformanceValueINTEL( PerformanceValueTypeINTEL type_ = PerformanceValueTypeINTEL::eUint32,
  31469. PerformanceValueDataINTEL data_ = PerformanceValueDataINTEL() )
  31470. : type( type_ )
  31471. , data( data_ )
  31472. {}
  31473. PerformanceValueINTEL( VkPerformanceValueINTEL const & rhs )
  31474. {
  31475. *reinterpret_cast<VkPerformanceValueINTEL*>(this) = rhs;
  31476. }
  31477. PerformanceValueINTEL& operator=( VkPerformanceValueINTEL const & rhs )
  31478. {
  31479. *reinterpret_cast<VkPerformanceValueINTEL*>(this) = rhs;
  31480. return *this;
  31481. }
  31482. PerformanceValueINTEL & setType( PerformanceValueTypeINTEL type_ )
  31483. {
  31484. type = type_;
  31485. return *this;
  31486. }
  31487. PerformanceValueINTEL & setData( PerformanceValueDataINTEL data_ )
  31488. {
  31489. data = data_;
  31490. return *this;
  31491. }
  31492. operator VkPerformanceValueINTEL const&() const
  31493. {
  31494. return *reinterpret_cast<const VkPerformanceValueINTEL*>( this );
  31495. }
  31496. operator VkPerformanceValueINTEL &()
  31497. {
  31498. return *reinterpret_cast<VkPerformanceValueINTEL*>( this );
  31499. }
  31500. PerformanceValueTypeINTEL type;
  31501. PerformanceValueDataINTEL data;
  31502. };
  31503. static_assert( sizeof( PerformanceValueINTEL ) == sizeof( VkPerformanceValueINTEL ), "struct and wrapper have different size!" );
  31504. struct PhysicalDevice16BitStorageFeatures
  31505. {
  31506. PhysicalDevice16BitStorageFeatures( Bool32 storageBuffer16BitAccess_ = 0,
  31507. Bool32 uniformAndStorageBuffer16BitAccess_ = 0,
  31508. Bool32 storagePushConstant16_ = 0,
  31509. Bool32 storageInputOutput16_ = 0 )
  31510. : storageBuffer16BitAccess( storageBuffer16BitAccess_ )
  31511. , uniformAndStorageBuffer16BitAccess( uniformAndStorageBuffer16BitAccess_ )
  31512. , storagePushConstant16( storagePushConstant16_ )
  31513. , storageInputOutput16( storageInputOutput16_ )
  31514. {}
  31515. PhysicalDevice16BitStorageFeatures( VkPhysicalDevice16BitStorageFeatures const & rhs )
  31516. {
  31517. *reinterpret_cast<VkPhysicalDevice16BitStorageFeatures*>(this) = rhs;
  31518. }
  31519. PhysicalDevice16BitStorageFeatures& operator=( VkPhysicalDevice16BitStorageFeatures const & rhs )
  31520. {
  31521. *reinterpret_cast<VkPhysicalDevice16BitStorageFeatures*>(this) = rhs;
  31522. return *this;
  31523. }
  31524. PhysicalDevice16BitStorageFeatures & setPNext( void* pNext_ )
  31525. {
  31526. pNext = pNext_;
  31527. return *this;
  31528. }
  31529. PhysicalDevice16BitStorageFeatures & setStorageBuffer16BitAccess( Bool32 storageBuffer16BitAccess_ )
  31530. {
  31531. storageBuffer16BitAccess = storageBuffer16BitAccess_;
  31532. return *this;
  31533. }
  31534. PhysicalDevice16BitStorageFeatures & setUniformAndStorageBuffer16BitAccess( Bool32 uniformAndStorageBuffer16BitAccess_ )
  31535. {
  31536. uniformAndStorageBuffer16BitAccess = uniformAndStorageBuffer16BitAccess_;
  31537. return *this;
  31538. }
  31539. PhysicalDevice16BitStorageFeatures & setStoragePushConstant16( Bool32 storagePushConstant16_ )
  31540. {
  31541. storagePushConstant16 = storagePushConstant16_;
  31542. return *this;
  31543. }
  31544. PhysicalDevice16BitStorageFeatures & setStorageInputOutput16( Bool32 storageInputOutput16_ )
  31545. {
  31546. storageInputOutput16 = storageInputOutput16_;
  31547. return *this;
  31548. }
  31549. operator VkPhysicalDevice16BitStorageFeatures const&() const
  31550. {
  31551. return *reinterpret_cast<const VkPhysicalDevice16BitStorageFeatures*>( this );
  31552. }
  31553. operator VkPhysicalDevice16BitStorageFeatures &()
  31554. {
  31555. return *reinterpret_cast<VkPhysicalDevice16BitStorageFeatures*>( this );
  31556. }
  31557. bool operator==( PhysicalDevice16BitStorageFeatures const& rhs ) const
  31558. {
  31559. return ( sType == rhs.sType )
  31560. && ( pNext == rhs.pNext )
  31561. && ( storageBuffer16BitAccess == rhs.storageBuffer16BitAccess )
  31562. && ( uniformAndStorageBuffer16BitAccess == rhs.uniformAndStorageBuffer16BitAccess )
  31563. && ( storagePushConstant16 == rhs.storagePushConstant16 )
  31564. && ( storageInputOutput16 == rhs.storageInputOutput16 );
  31565. }
  31566. bool operator!=( PhysicalDevice16BitStorageFeatures const& rhs ) const
  31567. {
  31568. return !operator==( rhs );
  31569. }
  31570. private:
  31571. StructureType sType = StructureType::ePhysicalDevice16BitStorageFeatures;
  31572. public:
  31573. void* pNext = nullptr;
  31574. Bool32 storageBuffer16BitAccess;
  31575. Bool32 uniformAndStorageBuffer16BitAccess;
  31576. Bool32 storagePushConstant16;
  31577. Bool32 storageInputOutput16;
  31578. };
  31579. static_assert( sizeof( PhysicalDevice16BitStorageFeatures ) == sizeof( VkPhysicalDevice16BitStorageFeatures ), "struct and wrapper have different size!" );
  31580. struct PhysicalDevice8BitStorageFeaturesKHR
  31581. {
  31582. PhysicalDevice8BitStorageFeaturesKHR( Bool32 storageBuffer8BitAccess_ = 0,
  31583. Bool32 uniformAndStorageBuffer8BitAccess_ = 0,
  31584. Bool32 storagePushConstant8_ = 0 )
  31585. : storageBuffer8BitAccess( storageBuffer8BitAccess_ )
  31586. , uniformAndStorageBuffer8BitAccess( uniformAndStorageBuffer8BitAccess_ )
  31587. , storagePushConstant8( storagePushConstant8_ )
  31588. {}
  31589. PhysicalDevice8BitStorageFeaturesKHR( VkPhysicalDevice8BitStorageFeaturesKHR const & rhs )
  31590. {
  31591. *reinterpret_cast<VkPhysicalDevice8BitStorageFeaturesKHR*>(this) = rhs;
  31592. }
  31593. PhysicalDevice8BitStorageFeaturesKHR& operator=( VkPhysicalDevice8BitStorageFeaturesKHR const & rhs )
  31594. {
  31595. *reinterpret_cast<VkPhysicalDevice8BitStorageFeaturesKHR*>(this) = rhs;
  31596. return *this;
  31597. }
  31598. PhysicalDevice8BitStorageFeaturesKHR & setPNext( void* pNext_ )
  31599. {
  31600. pNext = pNext_;
  31601. return *this;
  31602. }
  31603. PhysicalDevice8BitStorageFeaturesKHR & setStorageBuffer8BitAccess( Bool32 storageBuffer8BitAccess_ )
  31604. {
  31605. storageBuffer8BitAccess = storageBuffer8BitAccess_;
  31606. return *this;
  31607. }
  31608. PhysicalDevice8BitStorageFeaturesKHR & setUniformAndStorageBuffer8BitAccess( Bool32 uniformAndStorageBuffer8BitAccess_ )
  31609. {
  31610. uniformAndStorageBuffer8BitAccess = uniformAndStorageBuffer8BitAccess_;
  31611. return *this;
  31612. }
  31613. PhysicalDevice8BitStorageFeaturesKHR & setStoragePushConstant8( Bool32 storagePushConstant8_ )
  31614. {
  31615. storagePushConstant8 = storagePushConstant8_;
  31616. return *this;
  31617. }
  31618. operator VkPhysicalDevice8BitStorageFeaturesKHR const&() const
  31619. {
  31620. return *reinterpret_cast<const VkPhysicalDevice8BitStorageFeaturesKHR*>( this );
  31621. }
  31622. operator VkPhysicalDevice8BitStorageFeaturesKHR &()
  31623. {
  31624. return *reinterpret_cast<VkPhysicalDevice8BitStorageFeaturesKHR*>( this );
  31625. }
  31626. bool operator==( PhysicalDevice8BitStorageFeaturesKHR const& rhs ) const
  31627. {
  31628. return ( sType == rhs.sType )
  31629. && ( pNext == rhs.pNext )
  31630. && ( storageBuffer8BitAccess == rhs.storageBuffer8BitAccess )
  31631. && ( uniformAndStorageBuffer8BitAccess == rhs.uniformAndStorageBuffer8BitAccess )
  31632. && ( storagePushConstant8 == rhs.storagePushConstant8 );
  31633. }
  31634. bool operator!=( PhysicalDevice8BitStorageFeaturesKHR const& rhs ) const
  31635. {
  31636. return !operator==( rhs );
  31637. }
  31638. private:
  31639. StructureType sType = StructureType::ePhysicalDevice8BitStorageFeaturesKHR;
  31640. public:
  31641. void* pNext = nullptr;
  31642. Bool32 storageBuffer8BitAccess;
  31643. Bool32 uniformAndStorageBuffer8BitAccess;
  31644. Bool32 storagePushConstant8;
  31645. };
  31646. static_assert( sizeof( PhysicalDevice8BitStorageFeaturesKHR ) == sizeof( VkPhysicalDevice8BitStorageFeaturesKHR ), "struct and wrapper have different size!" );
  31647. struct PhysicalDeviceASTCDecodeFeaturesEXT
  31648. {
  31649. PhysicalDeviceASTCDecodeFeaturesEXT( Bool32 decodeModeSharedExponent_ = 0 )
  31650. : decodeModeSharedExponent( decodeModeSharedExponent_ )
  31651. {}
  31652. PhysicalDeviceASTCDecodeFeaturesEXT( VkPhysicalDeviceASTCDecodeFeaturesEXT const & rhs )
  31653. {
  31654. *reinterpret_cast<VkPhysicalDeviceASTCDecodeFeaturesEXT*>(this) = rhs;
  31655. }
  31656. PhysicalDeviceASTCDecodeFeaturesEXT& operator=( VkPhysicalDeviceASTCDecodeFeaturesEXT const & rhs )
  31657. {
  31658. *reinterpret_cast<VkPhysicalDeviceASTCDecodeFeaturesEXT*>(this) = rhs;
  31659. return *this;
  31660. }
  31661. PhysicalDeviceASTCDecodeFeaturesEXT & setPNext( void* pNext_ )
  31662. {
  31663. pNext = pNext_;
  31664. return *this;
  31665. }
  31666. PhysicalDeviceASTCDecodeFeaturesEXT & setDecodeModeSharedExponent( Bool32 decodeModeSharedExponent_ )
  31667. {
  31668. decodeModeSharedExponent = decodeModeSharedExponent_;
  31669. return *this;
  31670. }
  31671. operator VkPhysicalDeviceASTCDecodeFeaturesEXT const&() const
  31672. {
  31673. return *reinterpret_cast<const VkPhysicalDeviceASTCDecodeFeaturesEXT*>( this );
  31674. }
  31675. operator VkPhysicalDeviceASTCDecodeFeaturesEXT &()
  31676. {
  31677. return *reinterpret_cast<VkPhysicalDeviceASTCDecodeFeaturesEXT*>( this );
  31678. }
  31679. bool operator==( PhysicalDeviceASTCDecodeFeaturesEXT const& rhs ) const
  31680. {
  31681. return ( sType == rhs.sType )
  31682. && ( pNext == rhs.pNext )
  31683. && ( decodeModeSharedExponent == rhs.decodeModeSharedExponent );
  31684. }
  31685. bool operator!=( PhysicalDeviceASTCDecodeFeaturesEXT const& rhs ) const
  31686. {
  31687. return !operator==( rhs );
  31688. }
  31689. private:
  31690. StructureType sType = StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT;
  31691. public:
  31692. void* pNext = nullptr;
  31693. Bool32 decodeModeSharedExponent;
  31694. };
  31695. static_assert( sizeof( PhysicalDeviceASTCDecodeFeaturesEXT ) == sizeof( VkPhysicalDeviceASTCDecodeFeaturesEXT ), "struct and wrapper have different size!" );
  31696. struct PhysicalDeviceBlendOperationAdvancedFeaturesEXT
  31697. {
  31698. PhysicalDeviceBlendOperationAdvancedFeaturesEXT( Bool32 advancedBlendCoherentOperations_ = 0 )
  31699. : advancedBlendCoherentOperations( advancedBlendCoherentOperations_ )
  31700. {}
  31701. PhysicalDeviceBlendOperationAdvancedFeaturesEXT( VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs )
  31702. {
  31703. *reinterpret_cast<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT*>(this) = rhs;
  31704. }
  31705. PhysicalDeviceBlendOperationAdvancedFeaturesEXT& operator=( VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs )
  31706. {
  31707. *reinterpret_cast<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT*>(this) = rhs;
  31708. return *this;
  31709. }
  31710. PhysicalDeviceBlendOperationAdvancedFeaturesEXT & setPNext( void* pNext_ )
  31711. {
  31712. pNext = pNext_;
  31713. return *this;
  31714. }
  31715. PhysicalDeviceBlendOperationAdvancedFeaturesEXT & setAdvancedBlendCoherentOperations( Bool32 advancedBlendCoherentOperations_ )
  31716. {
  31717. advancedBlendCoherentOperations = advancedBlendCoherentOperations_;
  31718. return *this;
  31719. }
  31720. operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const&() const
  31721. {
  31722. return *reinterpret_cast<const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT*>( this );
  31723. }
  31724. operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT &()
  31725. {
  31726. return *reinterpret_cast<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT*>( this );
  31727. }
  31728. bool operator==( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const& rhs ) const
  31729. {
  31730. return ( sType == rhs.sType )
  31731. && ( pNext == rhs.pNext )
  31732. && ( advancedBlendCoherentOperations == rhs.advancedBlendCoherentOperations );
  31733. }
  31734. bool operator!=( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const& rhs ) const
  31735. {
  31736. return !operator==( rhs );
  31737. }
  31738. private:
  31739. StructureType sType = StructureType::ePhysicalDeviceBlendOperationAdvancedFeaturesEXT;
  31740. public:
  31741. void* pNext = nullptr;
  31742. Bool32 advancedBlendCoherentOperations;
  31743. };
  31744. static_assert( sizeof( PhysicalDeviceBlendOperationAdvancedFeaturesEXT ) == sizeof( VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT ), "struct and wrapper have different size!" );
  31745. struct PhysicalDeviceBlendOperationAdvancedPropertiesEXT
  31746. {
  31747. operator VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const&() const
  31748. {
  31749. return *reinterpret_cast<const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT*>( this );
  31750. }
  31751. operator VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT &()
  31752. {
  31753. return *reinterpret_cast<VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT*>( this );
  31754. }
  31755. bool operator==( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const& rhs ) const
  31756. {
  31757. return ( sType == rhs.sType )
  31758. && ( pNext == rhs.pNext )
  31759. && ( advancedBlendMaxColorAttachments == rhs.advancedBlendMaxColorAttachments )
  31760. && ( advancedBlendIndependentBlend == rhs.advancedBlendIndependentBlend )
  31761. && ( advancedBlendNonPremultipliedSrcColor == rhs.advancedBlendNonPremultipliedSrcColor )
  31762. && ( advancedBlendNonPremultipliedDstColor == rhs.advancedBlendNonPremultipliedDstColor )
  31763. && ( advancedBlendCorrelatedOverlap == rhs.advancedBlendCorrelatedOverlap )
  31764. && ( advancedBlendAllOperations == rhs.advancedBlendAllOperations );
  31765. }
  31766. bool operator!=( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const& rhs ) const
  31767. {
  31768. return !operator==( rhs );
  31769. }
  31770. private:
  31771. StructureType sType = StructureType::ePhysicalDeviceBlendOperationAdvancedPropertiesEXT;
  31772. public:
  31773. void* pNext = nullptr;
  31774. uint32_t advancedBlendMaxColorAttachments;
  31775. Bool32 advancedBlendIndependentBlend;
  31776. Bool32 advancedBlendNonPremultipliedSrcColor;
  31777. Bool32 advancedBlendNonPremultipliedDstColor;
  31778. Bool32 advancedBlendCorrelatedOverlap;
  31779. Bool32 advancedBlendAllOperations;
  31780. };
  31781. static_assert( sizeof( PhysicalDeviceBlendOperationAdvancedPropertiesEXT ) == sizeof( VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT ), "struct and wrapper have different size!" );
  31782. struct PhysicalDeviceBufferDeviceAddressFeaturesEXT
  31783. {
  31784. PhysicalDeviceBufferDeviceAddressFeaturesEXT( Bool32 bufferDeviceAddress_ = 0,
  31785. Bool32 bufferDeviceAddressCaptureReplay_ = 0,
  31786. Bool32 bufferDeviceAddressMultiDevice_ = 0 )
  31787. : bufferDeviceAddress( bufferDeviceAddress_ )
  31788. , bufferDeviceAddressCaptureReplay( bufferDeviceAddressCaptureReplay_ )
  31789. , bufferDeviceAddressMultiDevice( bufferDeviceAddressMultiDevice_ )
  31790. {}
  31791. PhysicalDeviceBufferDeviceAddressFeaturesEXT( VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs )
  31792. {
  31793. *reinterpret_cast<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT*>(this) = rhs;
  31794. }
  31795. PhysicalDeviceBufferDeviceAddressFeaturesEXT& operator=( VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs )
  31796. {
  31797. *reinterpret_cast<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT*>(this) = rhs;
  31798. return *this;
  31799. }
  31800. PhysicalDeviceBufferDeviceAddressFeaturesEXT & setPNext( void* pNext_ )
  31801. {
  31802. pNext = pNext_;
  31803. return *this;
  31804. }
  31805. PhysicalDeviceBufferDeviceAddressFeaturesEXT & setBufferDeviceAddress( Bool32 bufferDeviceAddress_ )
  31806. {
  31807. bufferDeviceAddress = bufferDeviceAddress_;
  31808. return *this;
  31809. }
  31810. PhysicalDeviceBufferDeviceAddressFeaturesEXT & setBufferDeviceAddressCaptureReplay( Bool32 bufferDeviceAddressCaptureReplay_ )
  31811. {
  31812. bufferDeviceAddressCaptureReplay = bufferDeviceAddressCaptureReplay_;
  31813. return *this;
  31814. }
  31815. PhysicalDeviceBufferDeviceAddressFeaturesEXT & setBufferDeviceAddressMultiDevice( Bool32 bufferDeviceAddressMultiDevice_ )
  31816. {
  31817. bufferDeviceAddressMultiDevice = bufferDeviceAddressMultiDevice_;
  31818. return *this;
  31819. }
  31820. operator VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const&() const
  31821. {
  31822. return *reinterpret_cast<const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT*>( this );
  31823. }
  31824. operator VkPhysicalDeviceBufferDeviceAddressFeaturesEXT &()
  31825. {
  31826. return *reinterpret_cast<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT*>( this );
  31827. }
  31828. bool operator==( PhysicalDeviceBufferDeviceAddressFeaturesEXT const& rhs ) const
  31829. {
  31830. return ( sType == rhs.sType )
  31831. && ( pNext == rhs.pNext )
  31832. && ( bufferDeviceAddress == rhs.bufferDeviceAddress )
  31833. && ( bufferDeviceAddressCaptureReplay == rhs.bufferDeviceAddressCaptureReplay )
  31834. && ( bufferDeviceAddressMultiDevice == rhs.bufferDeviceAddressMultiDevice );
  31835. }
  31836. bool operator!=( PhysicalDeviceBufferDeviceAddressFeaturesEXT const& rhs ) const
  31837. {
  31838. return !operator==( rhs );
  31839. }
  31840. private:
  31841. StructureType sType = StructureType::ePhysicalDeviceBufferDeviceAddressFeaturesEXT;
  31842. public:
  31843. void* pNext = nullptr;
  31844. Bool32 bufferDeviceAddress;
  31845. Bool32 bufferDeviceAddressCaptureReplay;
  31846. Bool32 bufferDeviceAddressMultiDevice;
  31847. };
  31848. static_assert( sizeof( PhysicalDeviceBufferDeviceAddressFeaturesEXT ) == sizeof( VkPhysicalDeviceBufferDeviceAddressFeaturesEXT ), "struct and wrapper have different size!" );
  31849. struct PhysicalDeviceComputeShaderDerivativesFeaturesNV
  31850. {
  31851. PhysicalDeviceComputeShaderDerivativesFeaturesNV( Bool32 computeDerivativeGroupQuads_ = 0,
  31852. Bool32 computeDerivativeGroupLinear_ = 0 )
  31853. : computeDerivativeGroupQuads( computeDerivativeGroupQuads_ )
  31854. , computeDerivativeGroupLinear( computeDerivativeGroupLinear_ )
  31855. {}
  31856. PhysicalDeviceComputeShaderDerivativesFeaturesNV( VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs )
  31857. {
  31858. *reinterpret_cast<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV*>(this) = rhs;
  31859. }
  31860. PhysicalDeviceComputeShaderDerivativesFeaturesNV& operator=( VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs )
  31861. {
  31862. *reinterpret_cast<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV*>(this) = rhs;
  31863. return *this;
  31864. }
  31865. PhysicalDeviceComputeShaderDerivativesFeaturesNV & setPNext( void* pNext_ )
  31866. {
  31867. pNext = pNext_;
  31868. return *this;
  31869. }
  31870. PhysicalDeviceComputeShaderDerivativesFeaturesNV & setComputeDerivativeGroupQuads( Bool32 computeDerivativeGroupQuads_ )
  31871. {
  31872. computeDerivativeGroupQuads = computeDerivativeGroupQuads_;
  31873. return *this;
  31874. }
  31875. PhysicalDeviceComputeShaderDerivativesFeaturesNV & setComputeDerivativeGroupLinear( Bool32 computeDerivativeGroupLinear_ )
  31876. {
  31877. computeDerivativeGroupLinear = computeDerivativeGroupLinear_;
  31878. return *this;
  31879. }
  31880. operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const&() const
  31881. {
  31882. return *reinterpret_cast<const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV*>( this );
  31883. }
  31884. operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV &()
  31885. {
  31886. return *reinterpret_cast<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV*>( this );
  31887. }
  31888. bool operator==( PhysicalDeviceComputeShaderDerivativesFeaturesNV const& rhs ) const
  31889. {
  31890. return ( sType == rhs.sType )
  31891. && ( pNext == rhs.pNext )
  31892. && ( computeDerivativeGroupQuads == rhs.computeDerivativeGroupQuads )
  31893. && ( computeDerivativeGroupLinear == rhs.computeDerivativeGroupLinear );
  31894. }
  31895. bool operator!=( PhysicalDeviceComputeShaderDerivativesFeaturesNV const& rhs ) const
  31896. {
  31897. return !operator==( rhs );
  31898. }
  31899. private:
  31900. StructureType sType = StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV;
  31901. public:
  31902. void* pNext = nullptr;
  31903. Bool32 computeDerivativeGroupQuads;
  31904. Bool32 computeDerivativeGroupLinear;
  31905. };
  31906. static_assert( sizeof( PhysicalDeviceComputeShaderDerivativesFeaturesNV ) == sizeof( VkPhysicalDeviceComputeShaderDerivativesFeaturesNV ), "struct and wrapper have different size!" );
  31907. struct PhysicalDeviceConditionalRenderingFeaturesEXT
  31908. {
  31909. PhysicalDeviceConditionalRenderingFeaturesEXT( Bool32 conditionalRendering_ = 0,
  31910. Bool32 inheritedConditionalRendering_ = 0 )
  31911. : conditionalRendering( conditionalRendering_ )
  31912. , inheritedConditionalRendering( inheritedConditionalRendering_ )
  31913. {}
  31914. PhysicalDeviceConditionalRenderingFeaturesEXT( VkPhysicalDeviceConditionalRenderingFeaturesEXT const & rhs )
  31915. {
  31916. *reinterpret_cast<VkPhysicalDeviceConditionalRenderingFeaturesEXT*>(this) = rhs;
  31917. }
  31918. PhysicalDeviceConditionalRenderingFeaturesEXT& operator=( VkPhysicalDeviceConditionalRenderingFeaturesEXT const & rhs )
  31919. {
  31920. *reinterpret_cast<VkPhysicalDeviceConditionalRenderingFeaturesEXT*>(this) = rhs;
  31921. return *this;
  31922. }
  31923. PhysicalDeviceConditionalRenderingFeaturesEXT & setPNext( void* pNext_ )
  31924. {
  31925. pNext = pNext_;
  31926. return *this;
  31927. }
  31928. PhysicalDeviceConditionalRenderingFeaturesEXT & setConditionalRendering( Bool32 conditionalRendering_ )
  31929. {
  31930. conditionalRendering = conditionalRendering_;
  31931. return *this;
  31932. }
  31933. PhysicalDeviceConditionalRenderingFeaturesEXT & setInheritedConditionalRendering( Bool32 inheritedConditionalRendering_ )
  31934. {
  31935. inheritedConditionalRendering = inheritedConditionalRendering_;
  31936. return *this;
  31937. }
  31938. operator VkPhysicalDeviceConditionalRenderingFeaturesEXT const&() const
  31939. {
  31940. return *reinterpret_cast<const VkPhysicalDeviceConditionalRenderingFeaturesEXT*>( this );
  31941. }
  31942. operator VkPhysicalDeviceConditionalRenderingFeaturesEXT &()
  31943. {
  31944. return *reinterpret_cast<VkPhysicalDeviceConditionalRenderingFeaturesEXT*>( this );
  31945. }
  31946. bool operator==( PhysicalDeviceConditionalRenderingFeaturesEXT const& rhs ) const
  31947. {
  31948. return ( sType == rhs.sType )
  31949. && ( pNext == rhs.pNext )
  31950. && ( conditionalRendering == rhs.conditionalRendering )
  31951. && ( inheritedConditionalRendering == rhs.inheritedConditionalRendering );
  31952. }
  31953. bool operator!=( PhysicalDeviceConditionalRenderingFeaturesEXT const& rhs ) const
  31954. {
  31955. return !operator==( rhs );
  31956. }
  31957. private:
  31958. StructureType sType = StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT;
  31959. public:
  31960. void* pNext = nullptr;
  31961. Bool32 conditionalRendering;
  31962. Bool32 inheritedConditionalRendering;
  31963. };
  31964. static_assert( sizeof( PhysicalDeviceConditionalRenderingFeaturesEXT ) == sizeof( VkPhysicalDeviceConditionalRenderingFeaturesEXT ), "struct and wrapper have different size!" );
  31965. struct PhysicalDeviceConservativeRasterizationPropertiesEXT
  31966. {
  31967. operator VkPhysicalDeviceConservativeRasterizationPropertiesEXT const&() const
  31968. {
  31969. return *reinterpret_cast<const VkPhysicalDeviceConservativeRasterizationPropertiesEXT*>( this );
  31970. }
  31971. operator VkPhysicalDeviceConservativeRasterizationPropertiesEXT &()
  31972. {
  31973. return *reinterpret_cast<VkPhysicalDeviceConservativeRasterizationPropertiesEXT*>( this );
  31974. }
  31975. bool operator==( PhysicalDeviceConservativeRasterizationPropertiesEXT const& rhs ) const
  31976. {
  31977. return ( sType == rhs.sType )
  31978. && ( pNext == rhs.pNext )
  31979. && ( primitiveOverestimationSize == rhs.primitiveOverestimationSize )
  31980. && ( maxExtraPrimitiveOverestimationSize == rhs.maxExtraPrimitiveOverestimationSize )
  31981. && ( extraPrimitiveOverestimationSizeGranularity == rhs.extraPrimitiveOverestimationSizeGranularity )
  31982. && ( primitiveUnderestimation == rhs.primitiveUnderestimation )
  31983. && ( conservativePointAndLineRasterization == rhs.conservativePointAndLineRasterization )
  31984. && ( degenerateTrianglesRasterized == rhs.degenerateTrianglesRasterized )
  31985. && ( degenerateLinesRasterized == rhs.degenerateLinesRasterized )
  31986. && ( fullyCoveredFragmentShaderInputVariable == rhs.fullyCoveredFragmentShaderInputVariable )
  31987. && ( conservativeRasterizationPostDepthCoverage == rhs.conservativeRasterizationPostDepthCoverage );
  31988. }
  31989. bool operator!=( PhysicalDeviceConservativeRasterizationPropertiesEXT const& rhs ) const
  31990. {
  31991. return !operator==( rhs );
  31992. }
  31993. private:
  31994. StructureType sType = StructureType::ePhysicalDeviceConservativeRasterizationPropertiesEXT;
  31995. public:
  31996. void* pNext = nullptr;
  31997. float primitiveOverestimationSize;
  31998. float maxExtraPrimitiveOverestimationSize;
  31999. float extraPrimitiveOverestimationSizeGranularity;
  32000. Bool32 primitiveUnderestimation;
  32001. Bool32 conservativePointAndLineRasterization;
  32002. Bool32 degenerateTrianglesRasterized;
  32003. Bool32 degenerateLinesRasterized;
  32004. Bool32 fullyCoveredFragmentShaderInputVariable;
  32005. Bool32 conservativeRasterizationPostDepthCoverage;
  32006. };
  32007. static_assert( sizeof( PhysicalDeviceConservativeRasterizationPropertiesEXT ) == sizeof( VkPhysicalDeviceConservativeRasterizationPropertiesEXT ), "struct and wrapper have different size!" );
  32008. struct PhysicalDeviceCooperativeMatrixFeaturesNV
  32009. {
  32010. PhysicalDeviceCooperativeMatrixFeaturesNV( Bool32 cooperativeMatrix_ = 0,
  32011. Bool32 cooperativeMatrixRobustBufferAccess_ = 0 )
  32012. : cooperativeMatrix( cooperativeMatrix_ )
  32013. , cooperativeMatrixRobustBufferAccess( cooperativeMatrixRobustBufferAccess_ )
  32014. {}
  32015. PhysicalDeviceCooperativeMatrixFeaturesNV( VkPhysicalDeviceCooperativeMatrixFeaturesNV const & rhs )
  32016. {
  32017. *reinterpret_cast<VkPhysicalDeviceCooperativeMatrixFeaturesNV*>(this) = rhs;
  32018. }
  32019. PhysicalDeviceCooperativeMatrixFeaturesNV& operator=( VkPhysicalDeviceCooperativeMatrixFeaturesNV const & rhs )
  32020. {
  32021. *reinterpret_cast<VkPhysicalDeviceCooperativeMatrixFeaturesNV*>(this) = rhs;
  32022. return *this;
  32023. }
  32024. PhysicalDeviceCooperativeMatrixFeaturesNV & setPNext( void* pNext_ )
  32025. {
  32026. pNext = pNext_;
  32027. return *this;
  32028. }
  32029. PhysicalDeviceCooperativeMatrixFeaturesNV & setCooperativeMatrix( Bool32 cooperativeMatrix_ )
  32030. {
  32031. cooperativeMatrix = cooperativeMatrix_;
  32032. return *this;
  32033. }
  32034. PhysicalDeviceCooperativeMatrixFeaturesNV & setCooperativeMatrixRobustBufferAccess( Bool32 cooperativeMatrixRobustBufferAccess_ )
  32035. {
  32036. cooperativeMatrixRobustBufferAccess = cooperativeMatrixRobustBufferAccess_;
  32037. return *this;
  32038. }
  32039. operator VkPhysicalDeviceCooperativeMatrixFeaturesNV const&() const
  32040. {
  32041. return *reinterpret_cast<const VkPhysicalDeviceCooperativeMatrixFeaturesNV*>( this );
  32042. }
  32043. operator VkPhysicalDeviceCooperativeMatrixFeaturesNV &()
  32044. {
  32045. return *reinterpret_cast<VkPhysicalDeviceCooperativeMatrixFeaturesNV*>( this );
  32046. }
  32047. bool operator==( PhysicalDeviceCooperativeMatrixFeaturesNV const& rhs ) const
  32048. {
  32049. return ( sType == rhs.sType )
  32050. && ( pNext == rhs.pNext )
  32051. && ( cooperativeMatrix == rhs.cooperativeMatrix )
  32052. && ( cooperativeMatrixRobustBufferAccess == rhs.cooperativeMatrixRobustBufferAccess );
  32053. }
  32054. bool operator!=( PhysicalDeviceCooperativeMatrixFeaturesNV const& rhs ) const
  32055. {
  32056. return !operator==( rhs );
  32057. }
  32058. private:
  32059. StructureType sType = StructureType::ePhysicalDeviceCooperativeMatrixFeaturesNV;
  32060. public:
  32061. void* pNext = nullptr;
  32062. Bool32 cooperativeMatrix;
  32063. Bool32 cooperativeMatrixRobustBufferAccess;
  32064. };
  32065. static_assert( sizeof( PhysicalDeviceCooperativeMatrixFeaturesNV ) == sizeof( VkPhysicalDeviceCooperativeMatrixFeaturesNV ), "struct and wrapper have different size!" );
  32066. struct PhysicalDeviceCooperativeMatrixPropertiesNV
  32067. {
  32068. operator VkPhysicalDeviceCooperativeMatrixPropertiesNV const&() const
  32069. {
  32070. return *reinterpret_cast<const VkPhysicalDeviceCooperativeMatrixPropertiesNV*>( this );
  32071. }
  32072. operator VkPhysicalDeviceCooperativeMatrixPropertiesNV &()
  32073. {
  32074. return *reinterpret_cast<VkPhysicalDeviceCooperativeMatrixPropertiesNV*>( this );
  32075. }
  32076. bool operator==( PhysicalDeviceCooperativeMatrixPropertiesNV const& rhs ) const
  32077. {
  32078. return ( sType == rhs.sType )
  32079. && ( pNext == rhs.pNext )
  32080. && ( cooperativeMatrixSupportedStages == rhs.cooperativeMatrixSupportedStages );
  32081. }
  32082. bool operator!=( PhysicalDeviceCooperativeMatrixPropertiesNV const& rhs ) const
  32083. {
  32084. return !operator==( rhs );
  32085. }
  32086. private:
  32087. StructureType sType = StructureType::ePhysicalDeviceCooperativeMatrixPropertiesNV;
  32088. public:
  32089. void* pNext = nullptr;
  32090. ShaderStageFlags cooperativeMatrixSupportedStages;
  32091. };
  32092. static_assert( sizeof( PhysicalDeviceCooperativeMatrixPropertiesNV ) == sizeof( VkPhysicalDeviceCooperativeMatrixPropertiesNV ), "struct and wrapper have different size!" );
  32093. struct PhysicalDeviceCornerSampledImageFeaturesNV
  32094. {
  32095. PhysicalDeviceCornerSampledImageFeaturesNV( Bool32 cornerSampledImage_ = 0 )
  32096. : cornerSampledImage( cornerSampledImage_ )
  32097. {}
  32098. PhysicalDeviceCornerSampledImageFeaturesNV( VkPhysicalDeviceCornerSampledImageFeaturesNV const & rhs )
  32099. {
  32100. *reinterpret_cast<VkPhysicalDeviceCornerSampledImageFeaturesNV*>(this) = rhs;
  32101. }
  32102. PhysicalDeviceCornerSampledImageFeaturesNV& operator=( VkPhysicalDeviceCornerSampledImageFeaturesNV const & rhs )
  32103. {
  32104. *reinterpret_cast<VkPhysicalDeviceCornerSampledImageFeaturesNV*>(this) = rhs;
  32105. return *this;
  32106. }
  32107. PhysicalDeviceCornerSampledImageFeaturesNV & setPNext( void* pNext_ )
  32108. {
  32109. pNext = pNext_;
  32110. return *this;
  32111. }
  32112. PhysicalDeviceCornerSampledImageFeaturesNV & setCornerSampledImage( Bool32 cornerSampledImage_ )
  32113. {
  32114. cornerSampledImage = cornerSampledImage_;
  32115. return *this;
  32116. }
  32117. operator VkPhysicalDeviceCornerSampledImageFeaturesNV const&() const
  32118. {
  32119. return *reinterpret_cast<const VkPhysicalDeviceCornerSampledImageFeaturesNV*>( this );
  32120. }
  32121. operator VkPhysicalDeviceCornerSampledImageFeaturesNV &()
  32122. {
  32123. return *reinterpret_cast<VkPhysicalDeviceCornerSampledImageFeaturesNV*>( this );
  32124. }
  32125. bool operator==( PhysicalDeviceCornerSampledImageFeaturesNV const& rhs ) const
  32126. {
  32127. return ( sType == rhs.sType )
  32128. && ( pNext == rhs.pNext )
  32129. && ( cornerSampledImage == rhs.cornerSampledImage );
  32130. }
  32131. bool operator!=( PhysicalDeviceCornerSampledImageFeaturesNV const& rhs ) const
  32132. {
  32133. return !operator==( rhs );
  32134. }
  32135. private:
  32136. StructureType sType = StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV;
  32137. public:
  32138. void* pNext = nullptr;
  32139. Bool32 cornerSampledImage;
  32140. };
  32141. static_assert( sizeof( PhysicalDeviceCornerSampledImageFeaturesNV ) == sizeof( VkPhysicalDeviceCornerSampledImageFeaturesNV ), "struct and wrapper have different size!" );
  32142. struct PhysicalDeviceCoverageReductionModeFeaturesNV
  32143. {
  32144. PhysicalDeviceCoverageReductionModeFeaturesNV( Bool32 coverageReductionMode_ = 0 )
  32145. : coverageReductionMode( coverageReductionMode_ )
  32146. {}
  32147. PhysicalDeviceCoverageReductionModeFeaturesNV( VkPhysicalDeviceCoverageReductionModeFeaturesNV const & rhs )
  32148. {
  32149. *reinterpret_cast<VkPhysicalDeviceCoverageReductionModeFeaturesNV*>(this) = rhs;
  32150. }
  32151. PhysicalDeviceCoverageReductionModeFeaturesNV& operator=( VkPhysicalDeviceCoverageReductionModeFeaturesNV const & rhs )
  32152. {
  32153. *reinterpret_cast<VkPhysicalDeviceCoverageReductionModeFeaturesNV*>(this) = rhs;
  32154. return *this;
  32155. }
  32156. PhysicalDeviceCoverageReductionModeFeaturesNV & setPNext( void* pNext_ )
  32157. {
  32158. pNext = pNext_;
  32159. return *this;
  32160. }
  32161. PhysicalDeviceCoverageReductionModeFeaturesNV & setCoverageReductionMode( Bool32 coverageReductionMode_ )
  32162. {
  32163. coverageReductionMode = coverageReductionMode_;
  32164. return *this;
  32165. }
  32166. operator VkPhysicalDeviceCoverageReductionModeFeaturesNV const&() const
  32167. {
  32168. return *reinterpret_cast<const VkPhysicalDeviceCoverageReductionModeFeaturesNV*>( this );
  32169. }
  32170. operator VkPhysicalDeviceCoverageReductionModeFeaturesNV &()
  32171. {
  32172. return *reinterpret_cast<VkPhysicalDeviceCoverageReductionModeFeaturesNV*>( this );
  32173. }
  32174. bool operator==( PhysicalDeviceCoverageReductionModeFeaturesNV const& rhs ) const
  32175. {
  32176. return ( sType == rhs.sType )
  32177. && ( pNext == rhs.pNext )
  32178. && ( coverageReductionMode == rhs.coverageReductionMode );
  32179. }
  32180. bool operator!=( PhysicalDeviceCoverageReductionModeFeaturesNV const& rhs ) const
  32181. {
  32182. return !operator==( rhs );
  32183. }
  32184. private:
  32185. StructureType sType = StructureType::ePhysicalDeviceCoverageReductionModeFeaturesNV;
  32186. public:
  32187. void* pNext = nullptr;
  32188. Bool32 coverageReductionMode;
  32189. };
  32190. static_assert( sizeof( PhysicalDeviceCoverageReductionModeFeaturesNV ) == sizeof( VkPhysicalDeviceCoverageReductionModeFeaturesNV ), "struct and wrapper have different size!" );
  32191. struct PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV
  32192. {
  32193. PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV( Bool32 dedicatedAllocationImageAliasing_ = 0 )
  32194. : dedicatedAllocationImageAliasing( dedicatedAllocationImageAliasing_ )
  32195. {}
  32196. PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV( VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs )
  32197. {
  32198. *reinterpret_cast<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV*>(this) = rhs;
  32199. }
  32200. PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV& operator=( VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs )
  32201. {
  32202. *reinterpret_cast<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV*>(this) = rhs;
  32203. return *this;
  32204. }
  32205. PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV & setPNext( void* pNext_ )
  32206. {
  32207. pNext = pNext_;
  32208. return *this;
  32209. }
  32210. PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV & setDedicatedAllocationImageAliasing( Bool32 dedicatedAllocationImageAliasing_ )
  32211. {
  32212. dedicatedAllocationImageAliasing = dedicatedAllocationImageAliasing_;
  32213. return *this;
  32214. }
  32215. operator VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const&() const
  32216. {
  32217. return *reinterpret_cast<const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV*>( this );
  32218. }
  32219. operator VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV &()
  32220. {
  32221. return *reinterpret_cast<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV*>( this );
  32222. }
  32223. bool operator==( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const& rhs ) const
  32224. {
  32225. return ( sType == rhs.sType )
  32226. && ( pNext == rhs.pNext )
  32227. && ( dedicatedAllocationImageAliasing == rhs.dedicatedAllocationImageAliasing );
  32228. }
  32229. bool operator!=( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const& rhs ) const
  32230. {
  32231. return !operator==( rhs );
  32232. }
  32233. private:
  32234. StructureType sType = StructureType::ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
  32235. public:
  32236. void* pNext = nullptr;
  32237. Bool32 dedicatedAllocationImageAliasing;
  32238. };
  32239. static_assert( sizeof( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV ) == sizeof( VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV ), "struct and wrapper have different size!" );
  32240. struct PhysicalDeviceDepthClipEnableFeaturesEXT
  32241. {
  32242. PhysicalDeviceDepthClipEnableFeaturesEXT( Bool32 depthClipEnable_ = 0 )
  32243. : depthClipEnable( depthClipEnable_ )
  32244. {}
  32245. PhysicalDeviceDepthClipEnableFeaturesEXT( VkPhysicalDeviceDepthClipEnableFeaturesEXT const & rhs )
  32246. {
  32247. *reinterpret_cast<VkPhysicalDeviceDepthClipEnableFeaturesEXT*>(this) = rhs;
  32248. }
  32249. PhysicalDeviceDepthClipEnableFeaturesEXT& operator=( VkPhysicalDeviceDepthClipEnableFeaturesEXT const & rhs )
  32250. {
  32251. *reinterpret_cast<VkPhysicalDeviceDepthClipEnableFeaturesEXT*>(this) = rhs;
  32252. return *this;
  32253. }
  32254. PhysicalDeviceDepthClipEnableFeaturesEXT & setPNext( void* pNext_ )
  32255. {
  32256. pNext = pNext_;
  32257. return *this;
  32258. }
  32259. PhysicalDeviceDepthClipEnableFeaturesEXT & setDepthClipEnable( Bool32 depthClipEnable_ )
  32260. {
  32261. depthClipEnable = depthClipEnable_;
  32262. return *this;
  32263. }
  32264. operator VkPhysicalDeviceDepthClipEnableFeaturesEXT const&() const
  32265. {
  32266. return *reinterpret_cast<const VkPhysicalDeviceDepthClipEnableFeaturesEXT*>( this );
  32267. }
  32268. operator VkPhysicalDeviceDepthClipEnableFeaturesEXT &()
  32269. {
  32270. return *reinterpret_cast<VkPhysicalDeviceDepthClipEnableFeaturesEXT*>( this );
  32271. }
  32272. bool operator==( PhysicalDeviceDepthClipEnableFeaturesEXT const& rhs ) const
  32273. {
  32274. return ( sType == rhs.sType )
  32275. && ( pNext == rhs.pNext )
  32276. && ( depthClipEnable == rhs.depthClipEnable );
  32277. }
  32278. bool operator!=( PhysicalDeviceDepthClipEnableFeaturesEXT const& rhs ) const
  32279. {
  32280. return !operator==( rhs );
  32281. }
  32282. private:
  32283. StructureType sType = StructureType::ePhysicalDeviceDepthClipEnableFeaturesEXT;
  32284. public:
  32285. void* pNext = nullptr;
  32286. Bool32 depthClipEnable;
  32287. };
  32288. static_assert( sizeof( PhysicalDeviceDepthClipEnableFeaturesEXT ) == sizeof( VkPhysicalDeviceDepthClipEnableFeaturesEXT ), "struct and wrapper have different size!" );
  32289. struct PhysicalDeviceDepthStencilResolvePropertiesKHR
  32290. {
  32291. operator VkPhysicalDeviceDepthStencilResolvePropertiesKHR const&() const
  32292. {
  32293. return *reinterpret_cast<const VkPhysicalDeviceDepthStencilResolvePropertiesKHR*>( this );
  32294. }
  32295. operator VkPhysicalDeviceDepthStencilResolvePropertiesKHR &()
  32296. {
  32297. return *reinterpret_cast<VkPhysicalDeviceDepthStencilResolvePropertiesKHR*>( this );
  32298. }
  32299. bool operator==( PhysicalDeviceDepthStencilResolvePropertiesKHR const& rhs ) const
  32300. {
  32301. return ( sType == rhs.sType )
  32302. && ( pNext == rhs.pNext )
  32303. && ( supportedDepthResolveModes == rhs.supportedDepthResolveModes )
  32304. && ( supportedStencilResolveModes == rhs.supportedStencilResolveModes )
  32305. && ( independentResolveNone == rhs.independentResolveNone )
  32306. && ( independentResolve == rhs.independentResolve );
  32307. }
  32308. bool operator!=( PhysicalDeviceDepthStencilResolvePropertiesKHR const& rhs ) const
  32309. {
  32310. return !operator==( rhs );
  32311. }
  32312. private:
  32313. StructureType sType = StructureType::ePhysicalDeviceDepthStencilResolvePropertiesKHR;
  32314. public:
  32315. void* pNext = nullptr;
  32316. ResolveModeFlagsKHR supportedDepthResolveModes;
  32317. ResolveModeFlagsKHR supportedStencilResolveModes;
  32318. Bool32 independentResolveNone;
  32319. Bool32 independentResolve;
  32320. };
  32321. static_assert( sizeof( PhysicalDeviceDepthStencilResolvePropertiesKHR ) == sizeof( VkPhysicalDeviceDepthStencilResolvePropertiesKHR ), "struct and wrapper have different size!" );
  32322. struct PhysicalDeviceDescriptorIndexingFeaturesEXT
  32323. {
  32324. PhysicalDeviceDescriptorIndexingFeaturesEXT( Bool32 shaderInputAttachmentArrayDynamicIndexing_ = 0,
  32325. Bool32 shaderUniformTexelBufferArrayDynamicIndexing_ = 0,
  32326. Bool32 shaderStorageTexelBufferArrayDynamicIndexing_ = 0,
  32327. Bool32 shaderUniformBufferArrayNonUniformIndexing_ = 0,
  32328. Bool32 shaderSampledImageArrayNonUniformIndexing_ = 0,
  32329. Bool32 shaderStorageBufferArrayNonUniformIndexing_ = 0,
  32330. Bool32 shaderStorageImageArrayNonUniformIndexing_ = 0,
  32331. Bool32 shaderInputAttachmentArrayNonUniformIndexing_ = 0,
  32332. Bool32 shaderUniformTexelBufferArrayNonUniformIndexing_ = 0,
  32333. Bool32 shaderStorageTexelBufferArrayNonUniformIndexing_ = 0,
  32334. Bool32 descriptorBindingUniformBufferUpdateAfterBind_ = 0,
  32335. Bool32 descriptorBindingSampledImageUpdateAfterBind_ = 0,
  32336. Bool32 descriptorBindingStorageImageUpdateAfterBind_ = 0,
  32337. Bool32 descriptorBindingStorageBufferUpdateAfterBind_ = 0,
  32338. Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind_ = 0,
  32339. Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind_ = 0,
  32340. Bool32 descriptorBindingUpdateUnusedWhilePending_ = 0,
  32341. Bool32 descriptorBindingPartiallyBound_ = 0,
  32342. Bool32 descriptorBindingVariableDescriptorCount_ = 0,
  32343. Bool32 runtimeDescriptorArray_ = 0 )
  32344. : shaderInputAttachmentArrayDynamicIndexing( shaderInputAttachmentArrayDynamicIndexing_ )
  32345. , shaderUniformTexelBufferArrayDynamicIndexing( shaderUniformTexelBufferArrayDynamicIndexing_ )
  32346. , shaderStorageTexelBufferArrayDynamicIndexing( shaderStorageTexelBufferArrayDynamicIndexing_ )
  32347. , shaderUniformBufferArrayNonUniformIndexing( shaderUniformBufferArrayNonUniformIndexing_ )
  32348. , shaderSampledImageArrayNonUniformIndexing( shaderSampledImageArrayNonUniformIndexing_ )
  32349. , shaderStorageBufferArrayNonUniformIndexing( shaderStorageBufferArrayNonUniformIndexing_ )
  32350. , shaderStorageImageArrayNonUniformIndexing( shaderStorageImageArrayNonUniformIndexing_ )
  32351. , shaderInputAttachmentArrayNonUniformIndexing( shaderInputAttachmentArrayNonUniformIndexing_ )
  32352. , shaderUniformTexelBufferArrayNonUniformIndexing( shaderUniformTexelBufferArrayNonUniformIndexing_ )
  32353. , shaderStorageTexelBufferArrayNonUniformIndexing( shaderStorageTexelBufferArrayNonUniformIndexing_ )
  32354. , descriptorBindingUniformBufferUpdateAfterBind( descriptorBindingUniformBufferUpdateAfterBind_ )
  32355. , descriptorBindingSampledImageUpdateAfterBind( descriptorBindingSampledImageUpdateAfterBind_ )
  32356. , descriptorBindingStorageImageUpdateAfterBind( descriptorBindingStorageImageUpdateAfterBind_ )
  32357. , descriptorBindingStorageBufferUpdateAfterBind( descriptorBindingStorageBufferUpdateAfterBind_ )
  32358. , descriptorBindingUniformTexelBufferUpdateAfterBind( descriptorBindingUniformTexelBufferUpdateAfterBind_ )
  32359. , descriptorBindingStorageTexelBufferUpdateAfterBind( descriptorBindingStorageTexelBufferUpdateAfterBind_ )
  32360. , descriptorBindingUpdateUnusedWhilePending( descriptorBindingUpdateUnusedWhilePending_ )
  32361. , descriptorBindingPartiallyBound( descriptorBindingPartiallyBound_ )
  32362. , descriptorBindingVariableDescriptorCount( descriptorBindingVariableDescriptorCount_ )
  32363. , runtimeDescriptorArray( runtimeDescriptorArray_ )
  32364. {}
  32365. PhysicalDeviceDescriptorIndexingFeaturesEXT( VkPhysicalDeviceDescriptorIndexingFeaturesEXT const & rhs )
  32366. {
  32367. *reinterpret_cast<VkPhysicalDeviceDescriptorIndexingFeaturesEXT*>(this) = rhs;
  32368. }
  32369. PhysicalDeviceDescriptorIndexingFeaturesEXT& operator=( VkPhysicalDeviceDescriptorIndexingFeaturesEXT const & rhs )
  32370. {
  32371. *reinterpret_cast<VkPhysicalDeviceDescriptorIndexingFeaturesEXT*>(this) = rhs;
  32372. return *this;
  32373. }
  32374. PhysicalDeviceDescriptorIndexingFeaturesEXT & setPNext( void* pNext_ )
  32375. {
  32376. pNext = pNext_;
  32377. return *this;
  32378. }
  32379. PhysicalDeviceDescriptorIndexingFeaturesEXT & setShaderInputAttachmentArrayDynamicIndexing( Bool32 shaderInputAttachmentArrayDynamicIndexing_ )
  32380. {
  32381. shaderInputAttachmentArrayDynamicIndexing = shaderInputAttachmentArrayDynamicIndexing_;
  32382. return *this;
  32383. }
  32384. PhysicalDeviceDescriptorIndexingFeaturesEXT & setShaderUniformTexelBufferArrayDynamicIndexing( Bool32 shaderUniformTexelBufferArrayDynamicIndexing_ )
  32385. {
  32386. shaderUniformTexelBufferArrayDynamicIndexing = shaderUniformTexelBufferArrayDynamicIndexing_;
  32387. return *this;
  32388. }
  32389. PhysicalDeviceDescriptorIndexingFeaturesEXT & setShaderStorageTexelBufferArrayDynamicIndexing( Bool32 shaderStorageTexelBufferArrayDynamicIndexing_ )
  32390. {
  32391. shaderStorageTexelBufferArrayDynamicIndexing = shaderStorageTexelBufferArrayDynamicIndexing_;
  32392. return *this;
  32393. }
  32394. PhysicalDeviceDescriptorIndexingFeaturesEXT & setShaderUniformBufferArrayNonUniformIndexing( Bool32 shaderUniformBufferArrayNonUniformIndexing_ )
  32395. {
  32396. shaderUniformBufferArrayNonUniformIndexing = shaderUniformBufferArrayNonUniformIndexing_;
  32397. return *this;
  32398. }
  32399. PhysicalDeviceDescriptorIndexingFeaturesEXT & setShaderSampledImageArrayNonUniformIndexing( Bool32 shaderSampledImageArrayNonUniformIndexing_ )
  32400. {
  32401. shaderSampledImageArrayNonUniformIndexing = shaderSampledImageArrayNonUniformIndexing_;
  32402. return *this;
  32403. }
  32404. PhysicalDeviceDescriptorIndexingFeaturesEXT & setShaderStorageBufferArrayNonUniformIndexing( Bool32 shaderStorageBufferArrayNonUniformIndexing_ )
  32405. {
  32406. shaderStorageBufferArrayNonUniformIndexing = shaderStorageBufferArrayNonUniformIndexing_;
  32407. return *this;
  32408. }
  32409. PhysicalDeviceDescriptorIndexingFeaturesEXT & setShaderStorageImageArrayNonUniformIndexing( Bool32 shaderStorageImageArrayNonUniformIndexing_ )
  32410. {
  32411. shaderStorageImageArrayNonUniformIndexing = shaderStorageImageArrayNonUniformIndexing_;
  32412. return *this;
  32413. }
  32414. PhysicalDeviceDescriptorIndexingFeaturesEXT & setShaderInputAttachmentArrayNonUniformIndexing( Bool32 shaderInputAttachmentArrayNonUniformIndexing_ )
  32415. {
  32416. shaderInputAttachmentArrayNonUniformIndexing = shaderInputAttachmentArrayNonUniformIndexing_;
  32417. return *this;
  32418. }
  32419. PhysicalDeviceDescriptorIndexingFeaturesEXT & setShaderUniformTexelBufferArrayNonUniformIndexing( Bool32 shaderUniformTexelBufferArrayNonUniformIndexing_ )
  32420. {
  32421. shaderUniformTexelBufferArrayNonUniformIndexing = shaderUniformTexelBufferArrayNonUniformIndexing_;
  32422. return *this;
  32423. }
  32424. PhysicalDeviceDescriptorIndexingFeaturesEXT & setShaderStorageTexelBufferArrayNonUniformIndexing( Bool32 shaderStorageTexelBufferArrayNonUniformIndexing_ )
  32425. {
  32426. shaderStorageTexelBufferArrayNonUniformIndexing = shaderStorageTexelBufferArrayNonUniformIndexing_;
  32427. return *this;
  32428. }
  32429. PhysicalDeviceDescriptorIndexingFeaturesEXT & setDescriptorBindingUniformBufferUpdateAfterBind( Bool32 descriptorBindingUniformBufferUpdateAfterBind_ )
  32430. {
  32431. descriptorBindingUniformBufferUpdateAfterBind = descriptorBindingUniformBufferUpdateAfterBind_;
  32432. return *this;
  32433. }
  32434. PhysicalDeviceDescriptorIndexingFeaturesEXT & setDescriptorBindingSampledImageUpdateAfterBind( Bool32 descriptorBindingSampledImageUpdateAfterBind_ )
  32435. {
  32436. descriptorBindingSampledImageUpdateAfterBind = descriptorBindingSampledImageUpdateAfterBind_;
  32437. return *this;
  32438. }
  32439. PhysicalDeviceDescriptorIndexingFeaturesEXT & setDescriptorBindingStorageImageUpdateAfterBind( Bool32 descriptorBindingStorageImageUpdateAfterBind_ )
  32440. {
  32441. descriptorBindingStorageImageUpdateAfterBind = descriptorBindingStorageImageUpdateAfterBind_;
  32442. return *this;
  32443. }
  32444. PhysicalDeviceDescriptorIndexingFeaturesEXT & setDescriptorBindingStorageBufferUpdateAfterBind( Bool32 descriptorBindingStorageBufferUpdateAfterBind_ )
  32445. {
  32446. descriptorBindingStorageBufferUpdateAfterBind = descriptorBindingStorageBufferUpdateAfterBind_;
  32447. return *this;
  32448. }
  32449. PhysicalDeviceDescriptorIndexingFeaturesEXT & setDescriptorBindingUniformTexelBufferUpdateAfterBind( Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind_ )
  32450. {
  32451. descriptorBindingUniformTexelBufferUpdateAfterBind = descriptorBindingUniformTexelBufferUpdateAfterBind_;
  32452. return *this;
  32453. }
  32454. PhysicalDeviceDescriptorIndexingFeaturesEXT & setDescriptorBindingStorageTexelBufferUpdateAfterBind( Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind_ )
  32455. {
  32456. descriptorBindingStorageTexelBufferUpdateAfterBind = descriptorBindingStorageTexelBufferUpdateAfterBind_;
  32457. return *this;
  32458. }
  32459. PhysicalDeviceDescriptorIndexingFeaturesEXT & setDescriptorBindingUpdateUnusedWhilePending( Bool32 descriptorBindingUpdateUnusedWhilePending_ )
  32460. {
  32461. descriptorBindingUpdateUnusedWhilePending = descriptorBindingUpdateUnusedWhilePending_;
  32462. return *this;
  32463. }
  32464. PhysicalDeviceDescriptorIndexingFeaturesEXT & setDescriptorBindingPartiallyBound( Bool32 descriptorBindingPartiallyBound_ )
  32465. {
  32466. descriptorBindingPartiallyBound = descriptorBindingPartiallyBound_;
  32467. return *this;
  32468. }
  32469. PhysicalDeviceDescriptorIndexingFeaturesEXT & setDescriptorBindingVariableDescriptorCount( Bool32 descriptorBindingVariableDescriptorCount_ )
  32470. {
  32471. descriptorBindingVariableDescriptorCount = descriptorBindingVariableDescriptorCount_;
  32472. return *this;
  32473. }
  32474. PhysicalDeviceDescriptorIndexingFeaturesEXT & setRuntimeDescriptorArray( Bool32 runtimeDescriptorArray_ )
  32475. {
  32476. runtimeDescriptorArray = runtimeDescriptorArray_;
  32477. return *this;
  32478. }
  32479. operator VkPhysicalDeviceDescriptorIndexingFeaturesEXT const&() const
  32480. {
  32481. return *reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingFeaturesEXT*>( this );
  32482. }
  32483. operator VkPhysicalDeviceDescriptorIndexingFeaturesEXT &()
  32484. {
  32485. return *reinterpret_cast<VkPhysicalDeviceDescriptorIndexingFeaturesEXT*>( this );
  32486. }
  32487. bool operator==( PhysicalDeviceDescriptorIndexingFeaturesEXT const& rhs ) const
  32488. {
  32489. return ( sType == rhs.sType )
  32490. && ( pNext == rhs.pNext )
  32491. && ( shaderInputAttachmentArrayDynamicIndexing == rhs.shaderInputAttachmentArrayDynamicIndexing )
  32492. && ( shaderUniformTexelBufferArrayDynamicIndexing == rhs.shaderUniformTexelBufferArrayDynamicIndexing )
  32493. && ( shaderStorageTexelBufferArrayDynamicIndexing == rhs.shaderStorageTexelBufferArrayDynamicIndexing )
  32494. && ( shaderUniformBufferArrayNonUniformIndexing == rhs.shaderUniformBufferArrayNonUniformIndexing )
  32495. && ( shaderSampledImageArrayNonUniformIndexing == rhs.shaderSampledImageArrayNonUniformIndexing )
  32496. && ( shaderStorageBufferArrayNonUniformIndexing == rhs.shaderStorageBufferArrayNonUniformIndexing )
  32497. && ( shaderStorageImageArrayNonUniformIndexing == rhs.shaderStorageImageArrayNonUniformIndexing )
  32498. && ( shaderInputAttachmentArrayNonUniformIndexing == rhs.shaderInputAttachmentArrayNonUniformIndexing )
  32499. && ( shaderUniformTexelBufferArrayNonUniformIndexing == rhs.shaderUniformTexelBufferArrayNonUniformIndexing )
  32500. && ( shaderStorageTexelBufferArrayNonUniformIndexing == rhs.shaderStorageTexelBufferArrayNonUniformIndexing )
  32501. && ( descriptorBindingUniformBufferUpdateAfterBind == rhs.descriptorBindingUniformBufferUpdateAfterBind )
  32502. && ( descriptorBindingSampledImageUpdateAfterBind == rhs.descriptorBindingSampledImageUpdateAfterBind )
  32503. && ( descriptorBindingStorageImageUpdateAfterBind == rhs.descriptorBindingStorageImageUpdateAfterBind )
  32504. && ( descriptorBindingStorageBufferUpdateAfterBind == rhs.descriptorBindingStorageBufferUpdateAfterBind )
  32505. && ( descriptorBindingUniformTexelBufferUpdateAfterBind == rhs.descriptorBindingUniformTexelBufferUpdateAfterBind )
  32506. && ( descriptorBindingStorageTexelBufferUpdateAfterBind == rhs.descriptorBindingStorageTexelBufferUpdateAfterBind )
  32507. && ( descriptorBindingUpdateUnusedWhilePending == rhs.descriptorBindingUpdateUnusedWhilePending )
  32508. && ( descriptorBindingPartiallyBound == rhs.descriptorBindingPartiallyBound )
  32509. && ( descriptorBindingVariableDescriptorCount == rhs.descriptorBindingVariableDescriptorCount )
  32510. && ( runtimeDescriptorArray == rhs.runtimeDescriptorArray );
  32511. }
  32512. bool operator!=( PhysicalDeviceDescriptorIndexingFeaturesEXT const& rhs ) const
  32513. {
  32514. return !operator==( rhs );
  32515. }
  32516. private:
  32517. StructureType sType = StructureType::ePhysicalDeviceDescriptorIndexingFeaturesEXT;
  32518. public:
  32519. void* pNext = nullptr;
  32520. Bool32 shaderInputAttachmentArrayDynamicIndexing;
  32521. Bool32 shaderUniformTexelBufferArrayDynamicIndexing;
  32522. Bool32 shaderStorageTexelBufferArrayDynamicIndexing;
  32523. Bool32 shaderUniformBufferArrayNonUniformIndexing;
  32524. Bool32 shaderSampledImageArrayNonUniformIndexing;
  32525. Bool32 shaderStorageBufferArrayNonUniformIndexing;
  32526. Bool32 shaderStorageImageArrayNonUniformIndexing;
  32527. Bool32 shaderInputAttachmentArrayNonUniformIndexing;
  32528. Bool32 shaderUniformTexelBufferArrayNonUniformIndexing;
  32529. Bool32 shaderStorageTexelBufferArrayNonUniformIndexing;
  32530. Bool32 descriptorBindingUniformBufferUpdateAfterBind;
  32531. Bool32 descriptorBindingSampledImageUpdateAfterBind;
  32532. Bool32 descriptorBindingStorageImageUpdateAfterBind;
  32533. Bool32 descriptorBindingStorageBufferUpdateAfterBind;
  32534. Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind;
  32535. Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind;
  32536. Bool32 descriptorBindingUpdateUnusedWhilePending;
  32537. Bool32 descriptorBindingPartiallyBound;
  32538. Bool32 descriptorBindingVariableDescriptorCount;
  32539. Bool32 runtimeDescriptorArray;
  32540. };
  32541. static_assert( sizeof( PhysicalDeviceDescriptorIndexingFeaturesEXT ) == sizeof( VkPhysicalDeviceDescriptorIndexingFeaturesEXT ), "struct and wrapper have different size!" );
  32542. struct PhysicalDeviceDescriptorIndexingPropertiesEXT
  32543. {
  32544. operator VkPhysicalDeviceDescriptorIndexingPropertiesEXT const&() const
  32545. {
  32546. return *reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingPropertiesEXT*>( this );
  32547. }
  32548. operator VkPhysicalDeviceDescriptorIndexingPropertiesEXT &()
  32549. {
  32550. return *reinterpret_cast<VkPhysicalDeviceDescriptorIndexingPropertiesEXT*>( this );
  32551. }
  32552. bool operator==( PhysicalDeviceDescriptorIndexingPropertiesEXT const& rhs ) const
  32553. {
  32554. return ( sType == rhs.sType )
  32555. && ( pNext == rhs.pNext )
  32556. && ( maxUpdateAfterBindDescriptorsInAllPools == rhs.maxUpdateAfterBindDescriptorsInAllPools )
  32557. && ( shaderUniformBufferArrayNonUniformIndexingNative == rhs.shaderUniformBufferArrayNonUniformIndexingNative )
  32558. && ( shaderSampledImageArrayNonUniformIndexingNative == rhs.shaderSampledImageArrayNonUniformIndexingNative )
  32559. && ( shaderStorageBufferArrayNonUniformIndexingNative == rhs.shaderStorageBufferArrayNonUniformIndexingNative )
  32560. && ( shaderStorageImageArrayNonUniformIndexingNative == rhs.shaderStorageImageArrayNonUniformIndexingNative )
  32561. && ( shaderInputAttachmentArrayNonUniformIndexingNative == rhs.shaderInputAttachmentArrayNonUniformIndexingNative )
  32562. && ( robustBufferAccessUpdateAfterBind == rhs.robustBufferAccessUpdateAfterBind )
  32563. && ( quadDivergentImplicitLod == rhs.quadDivergentImplicitLod )
  32564. && ( maxPerStageDescriptorUpdateAfterBindSamplers == rhs.maxPerStageDescriptorUpdateAfterBindSamplers )
  32565. && ( maxPerStageDescriptorUpdateAfterBindUniformBuffers == rhs.maxPerStageDescriptorUpdateAfterBindUniformBuffers )
  32566. && ( maxPerStageDescriptorUpdateAfterBindStorageBuffers == rhs.maxPerStageDescriptorUpdateAfterBindStorageBuffers )
  32567. && ( maxPerStageDescriptorUpdateAfterBindSampledImages == rhs.maxPerStageDescriptorUpdateAfterBindSampledImages )
  32568. && ( maxPerStageDescriptorUpdateAfterBindStorageImages == rhs.maxPerStageDescriptorUpdateAfterBindStorageImages )
  32569. && ( maxPerStageDescriptorUpdateAfterBindInputAttachments == rhs.maxPerStageDescriptorUpdateAfterBindInputAttachments )
  32570. && ( maxPerStageUpdateAfterBindResources == rhs.maxPerStageUpdateAfterBindResources )
  32571. && ( maxDescriptorSetUpdateAfterBindSamplers == rhs.maxDescriptorSetUpdateAfterBindSamplers )
  32572. && ( maxDescriptorSetUpdateAfterBindUniformBuffers == rhs.maxDescriptorSetUpdateAfterBindUniformBuffers )
  32573. && ( maxDescriptorSetUpdateAfterBindUniformBuffersDynamic == rhs.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic )
  32574. && ( maxDescriptorSetUpdateAfterBindStorageBuffers == rhs.maxDescriptorSetUpdateAfterBindStorageBuffers )
  32575. && ( maxDescriptorSetUpdateAfterBindStorageBuffersDynamic == rhs.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic )
  32576. && ( maxDescriptorSetUpdateAfterBindSampledImages == rhs.maxDescriptorSetUpdateAfterBindSampledImages )
  32577. && ( maxDescriptorSetUpdateAfterBindStorageImages == rhs.maxDescriptorSetUpdateAfterBindStorageImages )
  32578. && ( maxDescriptorSetUpdateAfterBindInputAttachments == rhs.maxDescriptorSetUpdateAfterBindInputAttachments );
  32579. }
  32580. bool operator!=( PhysicalDeviceDescriptorIndexingPropertiesEXT const& rhs ) const
  32581. {
  32582. return !operator==( rhs );
  32583. }
  32584. private:
  32585. StructureType sType = StructureType::ePhysicalDeviceDescriptorIndexingPropertiesEXT;
  32586. public:
  32587. void* pNext = nullptr;
  32588. uint32_t maxUpdateAfterBindDescriptorsInAllPools;
  32589. Bool32 shaderUniformBufferArrayNonUniformIndexingNative;
  32590. Bool32 shaderSampledImageArrayNonUniformIndexingNative;
  32591. Bool32 shaderStorageBufferArrayNonUniformIndexingNative;
  32592. Bool32 shaderStorageImageArrayNonUniformIndexingNative;
  32593. Bool32 shaderInputAttachmentArrayNonUniformIndexingNative;
  32594. Bool32 robustBufferAccessUpdateAfterBind;
  32595. Bool32 quadDivergentImplicitLod;
  32596. uint32_t maxPerStageDescriptorUpdateAfterBindSamplers;
  32597. uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers;
  32598. uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers;
  32599. uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages;
  32600. uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages;
  32601. uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments;
  32602. uint32_t maxPerStageUpdateAfterBindResources;
  32603. uint32_t maxDescriptorSetUpdateAfterBindSamplers;
  32604. uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers;
  32605. uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
  32606. uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers;
  32607. uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
  32608. uint32_t maxDescriptorSetUpdateAfterBindSampledImages;
  32609. uint32_t maxDescriptorSetUpdateAfterBindStorageImages;
  32610. uint32_t maxDescriptorSetUpdateAfterBindInputAttachments;
  32611. };
  32612. static_assert( sizeof( PhysicalDeviceDescriptorIndexingPropertiesEXT ) == sizeof( VkPhysicalDeviceDescriptorIndexingPropertiesEXT ), "struct and wrapper have different size!" );
  32613. struct PhysicalDeviceDiscardRectanglePropertiesEXT
  32614. {
  32615. operator VkPhysicalDeviceDiscardRectanglePropertiesEXT const&() const
  32616. {
  32617. return *reinterpret_cast<const VkPhysicalDeviceDiscardRectanglePropertiesEXT*>( this );
  32618. }
  32619. operator VkPhysicalDeviceDiscardRectanglePropertiesEXT &()
  32620. {
  32621. return *reinterpret_cast<VkPhysicalDeviceDiscardRectanglePropertiesEXT*>( this );
  32622. }
  32623. bool operator==( PhysicalDeviceDiscardRectanglePropertiesEXT const& rhs ) const
  32624. {
  32625. return ( sType == rhs.sType )
  32626. && ( pNext == rhs.pNext )
  32627. && ( maxDiscardRectangles == rhs.maxDiscardRectangles );
  32628. }
  32629. bool operator!=( PhysicalDeviceDiscardRectanglePropertiesEXT const& rhs ) const
  32630. {
  32631. return !operator==( rhs );
  32632. }
  32633. private:
  32634. StructureType sType = StructureType::ePhysicalDeviceDiscardRectanglePropertiesEXT;
  32635. public:
  32636. void* pNext = nullptr;
  32637. uint32_t maxDiscardRectangles;
  32638. };
  32639. static_assert( sizeof( PhysicalDeviceDiscardRectanglePropertiesEXT ) == sizeof( VkPhysicalDeviceDiscardRectanglePropertiesEXT ), "struct and wrapper have different size!" );
  32640. struct PhysicalDeviceDriverPropertiesKHR
  32641. {
  32642. operator VkPhysicalDeviceDriverPropertiesKHR const&() const
  32643. {
  32644. return *reinterpret_cast<const VkPhysicalDeviceDriverPropertiesKHR*>( this );
  32645. }
  32646. operator VkPhysicalDeviceDriverPropertiesKHR &()
  32647. {
  32648. return *reinterpret_cast<VkPhysicalDeviceDriverPropertiesKHR*>( this );
  32649. }
  32650. bool operator==( PhysicalDeviceDriverPropertiesKHR const& rhs ) const
  32651. {
  32652. return ( sType == rhs.sType )
  32653. && ( pNext == rhs.pNext )
  32654. && ( driverID == rhs.driverID )
  32655. && ( memcmp( driverName, rhs.driverName, VK_MAX_DRIVER_NAME_SIZE_KHR * sizeof( char ) ) == 0 )
  32656. && ( memcmp( driverInfo, rhs.driverInfo, VK_MAX_DRIVER_INFO_SIZE_KHR * sizeof( char ) ) == 0 )
  32657. && ( conformanceVersion == rhs.conformanceVersion );
  32658. }
  32659. bool operator!=( PhysicalDeviceDriverPropertiesKHR const& rhs ) const
  32660. {
  32661. return !operator==( rhs );
  32662. }
  32663. private:
  32664. StructureType sType = StructureType::ePhysicalDeviceDriverPropertiesKHR;
  32665. public:
  32666. void* pNext = nullptr;
  32667. DriverIdKHR driverID;
  32668. char driverName[VK_MAX_DRIVER_NAME_SIZE_KHR];
  32669. char driverInfo[VK_MAX_DRIVER_INFO_SIZE_KHR];
  32670. ConformanceVersionKHR conformanceVersion;
  32671. };
  32672. static_assert( sizeof( PhysicalDeviceDriverPropertiesKHR ) == sizeof( VkPhysicalDeviceDriverPropertiesKHR ), "struct and wrapper have different size!" );
  32673. struct PhysicalDeviceExclusiveScissorFeaturesNV
  32674. {
  32675. PhysicalDeviceExclusiveScissorFeaturesNV( Bool32 exclusiveScissor_ = 0 )
  32676. : exclusiveScissor( exclusiveScissor_ )
  32677. {}
  32678. PhysicalDeviceExclusiveScissorFeaturesNV( VkPhysicalDeviceExclusiveScissorFeaturesNV const & rhs )
  32679. {
  32680. *reinterpret_cast<VkPhysicalDeviceExclusiveScissorFeaturesNV*>(this) = rhs;
  32681. }
  32682. PhysicalDeviceExclusiveScissorFeaturesNV& operator=( VkPhysicalDeviceExclusiveScissorFeaturesNV const & rhs )
  32683. {
  32684. *reinterpret_cast<VkPhysicalDeviceExclusiveScissorFeaturesNV*>(this) = rhs;
  32685. return *this;
  32686. }
  32687. PhysicalDeviceExclusiveScissorFeaturesNV & setPNext( void* pNext_ )
  32688. {
  32689. pNext = pNext_;
  32690. return *this;
  32691. }
  32692. PhysicalDeviceExclusiveScissorFeaturesNV & setExclusiveScissor( Bool32 exclusiveScissor_ )
  32693. {
  32694. exclusiveScissor = exclusiveScissor_;
  32695. return *this;
  32696. }
  32697. operator VkPhysicalDeviceExclusiveScissorFeaturesNV const&() const
  32698. {
  32699. return *reinterpret_cast<const VkPhysicalDeviceExclusiveScissorFeaturesNV*>( this );
  32700. }
  32701. operator VkPhysicalDeviceExclusiveScissorFeaturesNV &()
  32702. {
  32703. return *reinterpret_cast<VkPhysicalDeviceExclusiveScissorFeaturesNV*>( this );
  32704. }
  32705. bool operator==( PhysicalDeviceExclusiveScissorFeaturesNV const& rhs ) const
  32706. {
  32707. return ( sType == rhs.sType )
  32708. && ( pNext == rhs.pNext )
  32709. && ( exclusiveScissor == rhs.exclusiveScissor );
  32710. }
  32711. bool operator!=( PhysicalDeviceExclusiveScissorFeaturesNV const& rhs ) const
  32712. {
  32713. return !operator==( rhs );
  32714. }
  32715. private:
  32716. StructureType sType = StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV;
  32717. public:
  32718. void* pNext = nullptr;
  32719. Bool32 exclusiveScissor;
  32720. };
  32721. static_assert( sizeof( PhysicalDeviceExclusiveScissorFeaturesNV ) == sizeof( VkPhysicalDeviceExclusiveScissorFeaturesNV ), "struct and wrapper have different size!" );
  32722. struct PhysicalDeviceExternalBufferInfo
  32723. {
  32724. PhysicalDeviceExternalBufferInfo( BufferCreateFlags flags_ = BufferCreateFlags(),
  32725. BufferUsageFlags usage_ = BufferUsageFlags(),
  32726. ExternalMemoryHandleTypeFlagBits handleType_ = ExternalMemoryHandleTypeFlagBits::eOpaqueFd )
  32727. : flags( flags_ )
  32728. , usage( usage_ )
  32729. , handleType( handleType_ )
  32730. {}
  32731. PhysicalDeviceExternalBufferInfo( VkPhysicalDeviceExternalBufferInfo const & rhs )
  32732. {
  32733. *reinterpret_cast<VkPhysicalDeviceExternalBufferInfo*>(this) = rhs;
  32734. }
  32735. PhysicalDeviceExternalBufferInfo& operator=( VkPhysicalDeviceExternalBufferInfo const & rhs )
  32736. {
  32737. *reinterpret_cast<VkPhysicalDeviceExternalBufferInfo*>(this) = rhs;
  32738. return *this;
  32739. }
  32740. PhysicalDeviceExternalBufferInfo & setPNext( const void* pNext_ )
  32741. {
  32742. pNext = pNext_;
  32743. return *this;
  32744. }
  32745. PhysicalDeviceExternalBufferInfo & setFlags( BufferCreateFlags flags_ )
  32746. {
  32747. flags = flags_;
  32748. return *this;
  32749. }
  32750. PhysicalDeviceExternalBufferInfo & setUsage( BufferUsageFlags usage_ )
  32751. {
  32752. usage = usage_;
  32753. return *this;
  32754. }
  32755. PhysicalDeviceExternalBufferInfo & setHandleType( ExternalMemoryHandleTypeFlagBits handleType_ )
  32756. {
  32757. handleType = handleType_;
  32758. return *this;
  32759. }
  32760. operator VkPhysicalDeviceExternalBufferInfo const&() const
  32761. {
  32762. return *reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo*>( this );
  32763. }
  32764. operator VkPhysicalDeviceExternalBufferInfo &()
  32765. {
  32766. return *reinterpret_cast<VkPhysicalDeviceExternalBufferInfo*>( this );
  32767. }
  32768. bool operator==( PhysicalDeviceExternalBufferInfo const& rhs ) const
  32769. {
  32770. return ( sType == rhs.sType )
  32771. && ( pNext == rhs.pNext )
  32772. && ( flags == rhs.flags )
  32773. && ( usage == rhs.usage )
  32774. && ( handleType == rhs.handleType );
  32775. }
  32776. bool operator!=( PhysicalDeviceExternalBufferInfo const& rhs ) const
  32777. {
  32778. return !operator==( rhs );
  32779. }
  32780. private:
  32781. StructureType sType = StructureType::ePhysicalDeviceExternalBufferInfo;
  32782. public:
  32783. const void* pNext = nullptr;
  32784. BufferCreateFlags flags;
  32785. BufferUsageFlags usage;
  32786. ExternalMemoryHandleTypeFlagBits handleType;
  32787. };
  32788. static_assert( sizeof( PhysicalDeviceExternalBufferInfo ) == sizeof( VkPhysicalDeviceExternalBufferInfo ), "struct and wrapper have different size!" );
  32789. struct PhysicalDeviceExternalFenceInfo
  32790. {
  32791. PhysicalDeviceExternalFenceInfo( ExternalFenceHandleTypeFlagBits handleType_ = ExternalFenceHandleTypeFlagBits::eOpaqueFd )
  32792. : handleType( handleType_ )
  32793. {}
  32794. PhysicalDeviceExternalFenceInfo( VkPhysicalDeviceExternalFenceInfo const & rhs )
  32795. {
  32796. *reinterpret_cast<VkPhysicalDeviceExternalFenceInfo*>(this) = rhs;
  32797. }
  32798. PhysicalDeviceExternalFenceInfo& operator=( VkPhysicalDeviceExternalFenceInfo const & rhs )
  32799. {
  32800. *reinterpret_cast<VkPhysicalDeviceExternalFenceInfo*>(this) = rhs;
  32801. return *this;
  32802. }
  32803. PhysicalDeviceExternalFenceInfo & setPNext( const void* pNext_ )
  32804. {
  32805. pNext = pNext_;
  32806. return *this;
  32807. }
  32808. PhysicalDeviceExternalFenceInfo & setHandleType( ExternalFenceHandleTypeFlagBits handleType_ )
  32809. {
  32810. handleType = handleType_;
  32811. return *this;
  32812. }
  32813. operator VkPhysicalDeviceExternalFenceInfo const&() const
  32814. {
  32815. return *reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo*>( this );
  32816. }
  32817. operator VkPhysicalDeviceExternalFenceInfo &()
  32818. {
  32819. return *reinterpret_cast<VkPhysicalDeviceExternalFenceInfo*>( this );
  32820. }
  32821. bool operator==( PhysicalDeviceExternalFenceInfo const& rhs ) const
  32822. {
  32823. return ( sType == rhs.sType )
  32824. && ( pNext == rhs.pNext )
  32825. && ( handleType == rhs.handleType );
  32826. }
  32827. bool operator!=( PhysicalDeviceExternalFenceInfo const& rhs ) const
  32828. {
  32829. return !operator==( rhs );
  32830. }
  32831. private:
  32832. StructureType sType = StructureType::ePhysicalDeviceExternalFenceInfo;
  32833. public:
  32834. const void* pNext = nullptr;
  32835. ExternalFenceHandleTypeFlagBits handleType;
  32836. };
  32837. static_assert( sizeof( PhysicalDeviceExternalFenceInfo ) == sizeof( VkPhysicalDeviceExternalFenceInfo ), "struct and wrapper have different size!" );
  32838. struct PhysicalDeviceExternalImageFormatInfo
  32839. {
  32840. PhysicalDeviceExternalImageFormatInfo( ExternalMemoryHandleTypeFlagBits handleType_ = ExternalMemoryHandleTypeFlagBits::eOpaqueFd )
  32841. : handleType( handleType_ )
  32842. {}
  32843. PhysicalDeviceExternalImageFormatInfo( VkPhysicalDeviceExternalImageFormatInfo const & rhs )
  32844. {
  32845. *reinterpret_cast<VkPhysicalDeviceExternalImageFormatInfo*>(this) = rhs;
  32846. }
  32847. PhysicalDeviceExternalImageFormatInfo& operator=( VkPhysicalDeviceExternalImageFormatInfo const & rhs )
  32848. {
  32849. *reinterpret_cast<VkPhysicalDeviceExternalImageFormatInfo*>(this) = rhs;
  32850. return *this;
  32851. }
  32852. PhysicalDeviceExternalImageFormatInfo & setPNext( const void* pNext_ )
  32853. {
  32854. pNext = pNext_;
  32855. return *this;
  32856. }
  32857. PhysicalDeviceExternalImageFormatInfo & setHandleType( ExternalMemoryHandleTypeFlagBits handleType_ )
  32858. {
  32859. handleType = handleType_;
  32860. return *this;
  32861. }
  32862. operator VkPhysicalDeviceExternalImageFormatInfo const&() const
  32863. {
  32864. return *reinterpret_cast<const VkPhysicalDeviceExternalImageFormatInfo*>( this );
  32865. }
  32866. operator VkPhysicalDeviceExternalImageFormatInfo &()
  32867. {
  32868. return *reinterpret_cast<VkPhysicalDeviceExternalImageFormatInfo*>( this );
  32869. }
  32870. bool operator==( PhysicalDeviceExternalImageFormatInfo const& rhs ) const
  32871. {
  32872. return ( sType == rhs.sType )
  32873. && ( pNext == rhs.pNext )
  32874. && ( handleType == rhs.handleType );
  32875. }
  32876. bool operator!=( PhysicalDeviceExternalImageFormatInfo const& rhs ) const
  32877. {
  32878. return !operator==( rhs );
  32879. }
  32880. private:
  32881. StructureType sType = StructureType::ePhysicalDeviceExternalImageFormatInfo;
  32882. public:
  32883. const void* pNext = nullptr;
  32884. ExternalMemoryHandleTypeFlagBits handleType;
  32885. };
  32886. static_assert( sizeof( PhysicalDeviceExternalImageFormatInfo ) == sizeof( VkPhysicalDeviceExternalImageFormatInfo ), "struct and wrapper have different size!" );
  32887. struct PhysicalDeviceExternalMemoryHostPropertiesEXT
  32888. {
  32889. operator VkPhysicalDeviceExternalMemoryHostPropertiesEXT const&() const
  32890. {
  32891. return *reinterpret_cast<const VkPhysicalDeviceExternalMemoryHostPropertiesEXT*>( this );
  32892. }
  32893. operator VkPhysicalDeviceExternalMemoryHostPropertiesEXT &()
  32894. {
  32895. return *reinterpret_cast<VkPhysicalDeviceExternalMemoryHostPropertiesEXT*>( this );
  32896. }
  32897. bool operator==( PhysicalDeviceExternalMemoryHostPropertiesEXT const& rhs ) const
  32898. {
  32899. return ( sType == rhs.sType )
  32900. && ( pNext == rhs.pNext )
  32901. && ( minImportedHostPointerAlignment == rhs.minImportedHostPointerAlignment );
  32902. }
  32903. bool operator!=( PhysicalDeviceExternalMemoryHostPropertiesEXT const& rhs ) const
  32904. {
  32905. return !operator==( rhs );
  32906. }
  32907. private:
  32908. StructureType sType = StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT;
  32909. public:
  32910. void* pNext = nullptr;
  32911. DeviceSize minImportedHostPointerAlignment;
  32912. };
  32913. static_assert( sizeof( PhysicalDeviceExternalMemoryHostPropertiesEXT ) == sizeof( VkPhysicalDeviceExternalMemoryHostPropertiesEXT ), "struct and wrapper have different size!" );
  32914. struct PhysicalDeviceExternalSemaphoreInfo
  32915. {
  32916. PhysicalDeviceExternalSemaphoreInfo( ExternalSemaphoreHandleTypeFlagBits handleType_ = ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd )
  32917. : handleType( handleType_ )
  32918. {}
  32919. PhysicalDeviceExternalSemaphoreInfo( VkPhysicalDeviceExternalSemaphoreInfo const & rhs )
  32920. {
  32921. *reinterpret_cast<VkPhysicalDeviceExternalSemaphoreInfo*>(this) = rhs;
  32922. }
  32923. PhysicalDeviceExternalSemaphoreInfo& operator=( VkPhysicalDeviceExternalSemaphoreInfo const & rhs )
  32924. {
  32925. *reinterpret_cast<VkPhysicalDeviceExternalSemaphoreInfo*>(this) = rhs;
  32926. return *this;
  32927. }
  32928. PhysicalDeviceExternalSemaphoreInfo & setPNext( const void* pNext_ )
  32929. {
  32930. pNext = pNext_;
  32931. return *this;
  32932. }
  32933. PhysicalDeviceExternalSemaphoreInfo & setHandleType( ExternalSemaphoreHandleTypeFlagBits handleType_ )
  32934. {
  32935. handleType = handleType_;
  32936. return *this;
  32937. }
  32938. operator VkPhysicalDeviceExternalSemaphoreInfo const&() const
  32939. {
  32940. return *reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo*>( this );
  32941. }
  32942. operator VkPhysicalDeviceExternalSemaphoreInfo &()
  32943. {
  32944. return *reinterpret_cast<VkPhysicalDeviceExternalSemaphoreInfo*>( this );
  32945. }
  32946. bool operator==( PhysicalDeviceExternalSemaphoreInfo const& rhs ) const
  32947. {
  32948. return ( sType == rhs.sType )
  32949. && ( pNext == rhs.pNext )
  32950. && ( handleType == rhs.handleType );
  32951. }
  32952. bool operator!=( PhysicalDeviceExternalSemaphoreInfo const& rhs ) const
  32953. {
  32954. return !operator==( rhs );
  32955. }
  32956. private:
  32957. StructureType sType = StructureType::ePhysicalDeviceExternalSemaphoreInfo;
  32958. public:
  32959. const void* pNext = nullptr;
  32960. ExternalSemaphoreHandleTypeFlagBits handleType;
  32961. };
  32962. static_assert( sizeof( PhysicalDeviceExternalSemaphoreInfo ) == sizeof( VkPhysicalDeviceExternalSemaphoreInfo ), "struct and wrapper have different size!" );
  32963. struct PhysicalDeviceFeatures2
  32964. {
  32965. PhysicalDeviceFeatures2( PhysicalDeviceFeatures features_ = PhysicalDeviceFeatures() )
  32966. : features( features_ )
  32967. {}
  32968. PhysicalDeviceFeatures2( VkPhysicalDeviceFeatures2 const & rhs )
  32969. {
  32970. *reinterpret_cast<VkPhysicalDeviceFeatures2*>(this) = rhs;
  32971. }
  32972. PhysicalDeviceFeatures2& operator=( VkPhysicalDeviceFeatures2 const & rhs )
  32973. {
  32974. *reinterpret_cast<VkPhysicalDeviceFeatures2*>(this) = rhs;
  32975. return *this;
  32976. }
  32977. PhysicalDeviceFeatures2 & setPNext( void* pNext_ )
  32978. {
  32979. pNext = pNext_;
  32980. return *this;
  32981. }
  32982. PhysicalDeviceFeatures2 & setFeatures( PhysicalDeviceFeatures features_ )
  32983. {
  32984. features = features_;
  32985. return *this;
  32986. }
  32987. operator VkPhysicalDeviceFeatures2 const&() const
  32988. {
  32989. return *reinterpret_cast<const VkPhysicalDeviceFeatures2*>( this );
  32990. }
  32991. operator VkPhysicalDeviceFeatures2 &()
  32992. {
  32993. return *reinterpret_cast<VkPhysicalDeviceFeatures2*>( this );
  32994. }
  32995. bool operator==( PhysicalDeviceFeatures2 const& rhs ) const
  32996. {
  32997. return ( sType == rhs.sType )
  32998. && ( pNext == rhs.pNext )
  32999. && ( features == rhs.features );
  33000. }
  33001. bool operator!=( PhysicalDeviceFeatures2 const& rhs ) const
  33002. {
  33003. return !operator==( rhs );
  33004. }
  33005. private:
  33006. StructureType sType = StructureType::ePhysicalDeviceFeatures2;
  33007. public:
  33008. void* pNext = nullptr;
  33009. PhysicalDeviceFeatures features;
  33010. };
  33011. static_assert( sizeof( PhysicalDeviceFeatures2 ) == sizeof( VkPhysicalDeviceFeatures2 ), "struct and wrapper have different size!" );
  33012. struct PhysicalDeviceFloat16Int8FeaturesKHR
  33013. {
  33014. PhysicalDeviceFloat16Int8FeaturesKHR( Bool32 shaderFloat16_ = 0,
  33015. Bool32 shaderInt8_ = 0 )
  33016. : shaderFloat16( shaderFloat16_ )
  33017. , shaderInt8( shaderInt8_ )
  33018. {}
  33019. PhysicalDeviceFloat16Int8FeaturesKHR( VkPhysicalDeviceFloat16Int8FeaturesKHR const & rhs )
  33020. {
  33021. *reinterpret_cast<VkPhysicalDeviceFloat16Int8FeaturesKHR*>(this) = rhs;
  33022. }
  33023. PhysicalDeviceFloat16Int8FeaturesKHR& operator=( VkPhysicalDeviceFloat16Int8FeaturesKHR const & rhs )
  33024. {
  33025. *reinterpret_cast<VkPhysicalDeviceFloat16Int8FeaturesKHR*>(this) = rhs;
  33026. return *this;
  33027. }
  33028. PhysicalDeviceFloat16Int8FeaturesKHR & setPNext( void* pNext_ )
  33029. {
  33030. pNext = pNext_;
  33031. return *this;
  33032. }
  33033. PhysicalDeviceFloat16Int8FeaturesKHR & setShaderFloat16( Bool32 shaderFloat16_ )
  33034. {
  33035. shaderFloat16 = shaderFloat16_;
  33036. return *this;
  33037. }
  33038. PhysicalDeviceFloat16Int8FeaturesKHR & setShaderInt8( Bool32 shaderInt8_ )
  33039. {
  33040. shaderInt8 = shaderInt8_;
  33041. return *this;
  33042. }
  33043. operator VkPhysicalDeviceFloat16Int8FeaturesKHR const&() const
  33044. {
  33045. return *reinterpret_cast<const VkPhysicalDeviceFloat16Int8FeaturesKHR*>( this );
  33046. }
  33047. operator VkPhysicalDeviceFloat16Int8FeaturesKHR &()
  33048. {
  33049. return *reinterpret_cast<VkPhysicalDeviceFloat16Int8FeaturesKHR*>( this );
  33050. }
  33051. bool operator==( PhysicalDeviceFloat16Int8FeaturesKHR const& rhs ) const
  33052. {
  33053. return ( sType == rhs.sType )
  33054. && ( pNext == rhs.pNext )
  33055. && ( shaderFloat16 == rhs.shaderFloat16 )
  33056. && ( shaderInt8 == rhs.shaderInt8 );
  33057. }
  33058. bool operator!=( PhysicalDeviceFloat16Int8FeaturesKHR const& rhs ) const
  33059. {
  33060. return !operator==( rhs );
  33061. }
  33062. private:
  33063. StructureType sType = StructureType::ePhysicalDeviceFloat16Int8FeaturesKHR;
  33064. public:
  33065. void* pNext = nullptr;
  33066. Bool32 shaderFloat16;
  33067. Bool32 shaderInt8;
  33068. };
  33069. static_assert( sizeof( PhysicalDeviceFloat16Int8FeaturesKHR ) == sizeof( VkPhysicalDeviceFloat16Int8FeaturesKHR ), "struct and wrapper have different size!" );
  33070. struct PhysicalDeviceFloatControlsPropertiesKHR
  33071. {
  33072. operator VkPhysicalDeviceFloatControlsPropertiesKHR const&() const
  33073. {
  33074. return *reinterpret_cast<const VkPhysicalDeviceFloatControlsPropertiesKHR*>( this );
  33075. }
  33076. operator VkPhysicalDeviceFloatControlsPropertiesKHR &()
  33077. {
  33078. return *reinterpret_cast<VkPhysicalDeviceFloatControlsPropertiesKHR*>( this );
  33079. }
  33080. bool operator==( PhysicalDeviceFloatControlsPropertiesKHR const& rhs ) const
  33081. {
  33082. return ( sType == rhs.sType )
  33083. && ( pNext == rhs.pNext )
  33084. && ( separateDenormSettings == rhs.separateDenormSettings )
  33085. && ( separateRoundingModeSettings == rhs.separateRoundingModeSettings )
  33086. && ( shaderSignedZeroInfNanPreserveFloat16 == rhs.shaderSignedZeroInfNanPreserveFloat16 )
  33087. && ( shaderSignedZeroInfNanPreserveFloat32 == rhs.shaderSignedZeroInfNanPreserveFloat32 )
  33088. && ( shaderSignedZeroInfNanPreserveFloat64 == rhs.shaderSignedZeroInfNanPreserveFloat64 )
  33089. && ( shaderDenormPreserveFloat16 == rhs.shaderDenormPreserveFloat16 )
  33090. && ( shaderDenormPreserveFloat32 == rhs.shaderDenormPreserveFloat32 )
  33091. && ( shaderDenormPreserveFloat64 == rhs.shaderDenormPreserveFloat64 )
  33092. && ( shaderDenormFlushToZeroFloat16 == rhs.shaderDenormFlushToZeroFloat16 )
  33093. && ( shaderDenormFlushToZeroFloat32 == rhs.shaderDenormFlushToZeroFloat32 )
  33094. && ( shaderDenormFlushToZeroFloat64 == rhs.shaderDenormFlushToZeroFloat64 )
  33095. && ( shaderRoundingModeRTEFloat16 == rhs.shaderRoundingModeRTEFloat16 )
  33096. && ( shaderRoundingModeRTEFloat32 == rhs.shaderRoundingModeRTEFloat32 )
  33097. && ( shaderRoundingModeRTEFloat64 == rhs.shaderRoundingModeRTEFloat64 )
  33098. && ( shaderRoundingModeRTZFloat16 == rhs.shaderRoundingModeRTZFloat16 )
  33099. && ( shaderRoundingModeRTZFloat32 == rhs.shaderRoundingModeRTZFloat32 )
  33100. && ( shaderRoundingModeRTZFloat64 == rhs.shaderRoundingModeRTZFloat64 );
  33101. }
  33102. bool operator!=( PhysicalDeviceFloatControlsPropertiesKHR const& rhs ) const
  33103. {
  33104. return !operator==( rhs );
  33105. }
  33106. private:
  33107. StructureType sType = StructureType::ePhysicalDeviceFloatControlsPropertiesKHR;
  33108. public:
  33109. void* pNext = nullptr;
  33110. Bool32 separateDenormSettings;
  33111. Bool32 separateRoundingModeSettings;
  33112. Bool32 shaderSignedZeroInfNanPreserveFloat16;
  33113. Bool32 shaderSignedZeroInfNanPreserveFloat32;
  33114. Bool32 shaderSignedZeroInfNanPreserveFloat64;
  33115. Bool32 shaderDenormPreserveFloat16;
  33116. Bool32 shaderDenormPreserveFloat32;
  33117. Bool32 shaderDenormPreserveFloat64;
  33118. Bool32 shaderDenormFlushToZeroFloat16;
  33119. Bool32 shaderDenormFlushToZeroFloat32;
  33120. Bool32 shaderDenormFlushToZeroFloat64;
  33121. Bool32 shaderRoundingModeRTEFloat16;
  33122. Bool32 shaderRoundingModeRTEFloat32;
  33123. Bool32 shaderRoundingModeRTEFloat64;
  33124. Bool32 shaderRoundingModeRTZFloat16;
  33125. Bool32 shaderRoundingModeRTZFloat32;
  33126. Bool32 shaderRoundingModeRTZFloat64;
  33127. };
  33128. static_assert( sizeof( PhysicalDeviceFloatControlsPropertiesKHR ) == sizeof( VkPhysicalDeviceFloatControlsPropertiesKHR ), "struct and wrapper have different size!" );
  33129. struct PhysicalDeviceFragmentDensityMapFeaturesEXT
  33130. {
  33131. operator VkPhysicalDeviceFragmentDensityMapFeaturesEXT const&() const
  33132. {
  33133. return *reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>( this );
  33134. }
  33135. operator VkPhysicalDeviceFragmentDensityMapFeaturesEXT &()
  33136. {
  33137. return *reinterpret_cast<VkPhysicalDeviceFragmentDensityMapFeaturesEXT*>( this );
  33138. }
  33139. bool operator==( PhysicalDeviceFragmentDensityMapFeaturesEXT const& rhs ) const
  33140. {
  33141. return ( sType == rhs.sType )
  33142. && ( pNext == rhs.pNext )
  33143. && ( fragmentDensityMap == rhs.fragmentDensityMap )
  33144. && ( fragmentDensityMapDynamic == rhs.fragmentDensityMapDynamic )
  33145. && ( fragmentDensityMapNonSubsampledImages == rhs.fragmentDensityMapNonSubsampledImages );
  33146. }
  33147. bool operator!=( PhysicalDeviceFragmentDensityMapFeaturesEXT const& rhs ) const
  33148. {
  33149. return !operator==( rhs );
  33150. }
  33151. private:
  33152. StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMapFeaturesEXT;
  33153. public:
  33154. void* pNext = nullptr;
  33155. Bool32 fragmentDensityMap;
  33156. Bool32 fragmentDensityMapDynamic;
  33157. Bool32 fragmentDensityMapNonSubsampledImages;
  33158. };
  33159. static_assert( sizeof( PhysicalDeviceFragmentDensityMapFeaturesEXT ) == sizeof( VkPhysicalDeviceFragmentDensityMapFeaturesEXT ), "struct and wrapper have different size!" );
  33160. struct PhysicalDeviceFragmentDensityMapPropertiesEXT
  33161. {
  33162. operator VkPhysicalDeviceFragmentDensityMapPropertiesEXT const&() const
  33163. {
  33164. return *reinterpret_cast<const VkPhysicalDeviceFragmentDensityMapPropertiesEXT*>( this );
  33165. }
  33166. operator VkPhysicalDeviceFragmentDensityMapPropertiesEXT &()
  33167. {
  33168. return *reinterpret_cast<VkPhysicalDeviceFragmentDensityMapPropertiesEXT*>( this );
  33169. }
  33170. bool operator==( PhysicalDeviceFragmentDensityMapPropertiesEXT const& rhs ) const
  33171. {
  33172. return ( sType == rhs.sType )
  33173. && ( pNext == rhs.pNext )
  33174. && ( minFragmentDensityTexelSize == rhs.minFragmentDensityTexelSize )
  33175. && ( maxFragmentDensityTexelSize == rhs.maxFragmentDensityTexelSize )
  33176. && ( fragmentDensityInvocations == rhs.fragmentDensityInvocations );
  33177. }
  33178. bool operator!=( PhysicalDeviceFragmentDensityMapPropertiesEXT const& rhs ) const
  33179. {
  33180. return !operator==( rhs );
  33181. }
  33182. private:
  33183. StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMapPropertiesEXT;
  33184. public:
  33185. void* pNext = nullptr;
  33186. Extent2D minFragmentDensityTexelSize;
  33187. Extent2D maxFragmentDensityTexelSize;
  33188. Bool32 fragmentDensityInvocations;
  33189. };
  33190. static_assert( sizeof( PhysicalDeviceFragmentDensityMapPropertiesEXT ) == sizeof( VkPhysicalDeviceFragmentDensityMapPropertiesEXT ), "struct and wrapper have different size!" );
  33191. struct PhysicalDeviceFragmentShaderBarycentricFeaturesNV
  33192. {
  33193. PhysicalDeviceFragmentShaderBarycentricFeaturesNV( Bool32 fragmentShaderBarycentric_ = 0 )
  33194. : fragmentShaderBarycentric( fragmentShaderBarycentric_ )
  33195. {}
  33196. PhysicalDeviceFragmentShaderBarycentricFeaturesNV( VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV const & rhs )
  33197. {
  33198. *reinterpret_cast<VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV*>(this) = rhs;
  33199. }
  33200. PhysicalDeviceFragmentShaderBarycentricFeaturesNV& operator=( VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV const & rhs )
  33201. {
  33202. *reinterpret_cast<VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV*>(this) = rhs;
  33203. return *this;
  33204. }
  33205. PhysicalDeviceFragmentShaderBarycentricFeaturesNV & setPNext( void* pNext_ )
  33206. {
  33207. pNext = pNext_;
  33208. return *this;
  33209. }
  33210. PhysicalDeviceFragmentShaderBarycentricFeaturesNV & setFragmentShaderBarycentric( Bool32 fragmentShaderBarycentric_ )
  33211. {
  33212. fragmentShaderBarycentric = fragmentShaderBarycentric_;
  33213. return *this;
  33214. }
  33215. operator VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV const&() const
  33216. {
  33217. return *reinterpret_cast<const VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV*>( this );
  33218. }
  33219. operator VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV &()
  33220. {
  33221. return *reinterpret_cast<VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV*>( this );
  33222. }
  33223. bool operator==( PhysicalDeviceFragmentShaderBarycentricFeaturesNV const& rhs ) const
  33224. {
  33225. return ( sType == rhs.sType )
  33226. && ( pNext == rhs.pNext )
  33227. && ( fragmentShaderBarycentric == rhs.fragmentShaderBarycentric );
  33228. }
  33229. bool operator!=( PhysicalDeviceFragmentShaderBarycentricFeaturesNV const& rhs ) const
  33230. {
  33231. return !operator==( rhs );
  33232. }
  33233. private:
  33234. StructureType sType = StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesNV;
  33235. public:
  33236. void* pNext = nullptr;
  33237. Bool32 fragmentShaderBarycentric;
  33238. };
  33239. static_assert( sizeof( PhysicalDeviceFragmentShaderBarycentricFeaturesNV ) == sizeof( VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV ), "struct and wrapper have different size!" );
  33240. struct PhysicalDeviceFragmentShaderInterlockFeaturesEXT
  33241. {
  33242. PhysicalDeviceFragmentShaderInterlockFeaturesEXT( Bool32 fragmentShaderSampleInterlock_ = 0,
  33243. Bool32 fragmentShaderPixelInterlock_ = 0,
  33244. Bool32 fragmentShaderShadingRateInterlock_ = 0 )
  33245. : fragmentShaderSampleInterlock( fragmentShaderSampleInterlock_ )
  33246. , fragmentShaderPixelInterlock( fragmentShaderPixelInterlock_ )
  33247. , fragmentShaderShadingRateInterlock( fragmentShaderShadingRateInterlock_ )
  33248. {}
  33249. PhysicalDeviceFragmentShaderInterlockFeaturesEXT( VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs )
  33250. {
  33251. *reinterpret_cast<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT*>(this) = rhs;
  33252. }
  33253. PhysicalDeviceFragmentShaderInterlockFeaturesEXT& operator=( VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs )
  33254. {
  33255. *reinterpret_cast<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT*>(this) = rhs;
  33256. return *this;
  33257. }
  33258. PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setPNext( void* pNext_ )
  33259. {
  33260. pNext = pNext_;
  33261. return *this;
  33262. }
  33263. PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setFragmentShaderSampleInterlock( Bool32 fragmentShaderSampleInterlock_ )
  33264. {
  33265. fragmentShaderSampleInterlock = fragmentShaderSampleInterlock_;
  33266. return *this;
  33267. }
  33268. PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setFragmentShaderPixelInterlock( Bool32 fragmentShaderPixelInterlock_ )
  33269. {
  33270. fragmentShaderPixelInterlock = fragmentShaderPixelInterlock_;
  33271. return *this;
  33272. }
  33273. PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setFragmentShaderShadingRateInterlock( Bool32 fragmentShaderShadingRateInterlock_ )
  33274. {
  33275. fragmentShaderShadingRateInterlock = fragmentShaderShadingRateInterlock_;
  33276. return *this;
  33277. }
  33278. operator VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const&() const
  33279. {
  33280. return *reinterpret_cast<const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT*>( this );
  33281. }
  33282. operator VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT &()
  33283. {
  33284. return *reinterpret_cast<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT*>( this );
  33285. }
  33286. bool operator==( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const& rhs ) const
  33287. {
  33288. return ( sType == rhs.sType )
  33289. && ( pNext == rhs.pNext )
  33290. && ( fragmentShaderSampleInterlock == rhs.fragmentShaderSampleInterlock )
  33291. && ( fragmentShaderPixelInterlock == rhs.fragmentShaderPixelInterlock )
  33292. && ( fragmentShaderShadingRateInterlock == rhs.fragmentShaderShadingRateInterlock );
  33293. }
  33294. bool operator!=( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const& rhs ) const
  33295. {
  33296. return !operator==( rhs );
  33297. }
  33298. private:
  33299. StructureType sType = StructureType::ePhysicalDeviceFragmentShaderInterlockFeaturesEXT;
  33300. public:
  33301. void* pNext = nullptr;
  33302. Bool32 fragmentShaderSampleInterlock;
  33303. Bool32 fragmentShaderPixelInterlock;
  33304. Bool32 fragmentShaderShadingRateInterlock;
  33305. };
  33306. static_assert( sizeof( PhysicalDeviceFragmentShaderInterlockFeaturesEXT ) == sizeof( VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT ), "struct and wrapper have different size!" );
  33307. struct PhysicalDeviceGroupProperties
  33308. {
  33309. operator VkPhysicalDeviceGroupProperties const&() const
  33310. {
  33311. return *reinterpret_cast<const VkPhysicalDeviceGroupProperties*>( this );
  33312. }
  33313. operator VkPhysicalDeviceGroupProperties &()
  33314. {
  33315. return *reinterpret_cast<VkPhysicalDeviceGroupProperties*>( this );
  33316. }
  33317. bool operator==( PhysicalDeviceGroupProperties const& rhs ) const
  33318. {
  33319. return ( sType == rhs.sType )
  33320. && ( pNext == rhs.pNext )
  33321. && ( physicalDeviceCount == rhs.physicalDeviceCount )
  33322. && ( memcmp( physicalDevices, rhs.physicalDevices, VK_MAX_DEVICE_GROUP_SIZE * sizeof( PhysicalDevice ) ) == 0 )
  33323. && ( subsetAllocation == rhs.subsetAllocation );
  33324. }
  33325. bool operator!=( PhysicalDeviceGroupProperties const& rhs ) const
  33326. {
  33327. return !operator==( rhs );
  33328. }
  33329. private:
  33330. StructureType sType = StructureType::ePhysicalDeviceGroupProperties;
  33331. public:
  33332. void* pNext = nullptr;
  33333. uint32_t physicalDeviceCount;
  33334. PhysicalDevice physicalDevices[VK_MAX_DEVICE_GROUP_SIZE];
  33335. Bool32 subsetAllocation;
  33336. };
  33337. static_assert( sizeof( PhysicalDeviceGroupProperties ) == sizeof( VkPhysicalDeviceGroupProperties ), "struct and wrapper have different size!" );
  33338. struct PhysicalDeviceHostQueryResetFeaturesEXT
  33339. {
  33340. PhysicalDeviceHostQueryResetFeaturesEXT( Bool32 hostQueryReset_ = 0 )
  33341. : hostQueryReset( hostQueryReset_ )
  33342. {}
  33343. PhysicalDeviceHostQueryResetFeaturesEXT( VkPhysicalDeviceHostQueryResetFeaturesEXT const & rhs )
  33344. {
  33345. *reinterpret_cast<VkPhysicalDeviceHostQueryResetFeaturesEXT*>(this) = rhs;
  33346. }
  33347. PhysicalDeviceHostQueryResetFeaturesEXT& operator=( VkPhysicalDeviceHostQueryResetFeaturesEXT const & rhs )
  33348. {
  33349. *reinterpret_cast<VkPhysicalDeviceHostQueryResetFeaturesEXT*>(this) = rhs;
  33350. return *this;
  33351. }
  33352. PhysicalDeviceHostQueryResetFeaturesEXT & setPNext( void* pNext_ )
  33353. {
  33354. pNext = pNext_;
  33355. return *this;
  33356. }
  33357. PhysicalDeviceHostQueryResetFeaturesEXT & setHostQueryReset( Bool32 hostQueryReset_ )
  33358. {
  33359. hostQueryReset = hostQueryReset_;
  33360. return *this;
  33361. }
  33362. operator VkPhysicalDeviceHostQueryResetFeaturesEXT const&() const
  33363. {
  33364. return *reinterpret_cast<const VkPhysicalDeviceHostQueryResetFeaturesEXT*>( this );
  33365. }
  33366. operator VkPhysicalDeviceHostQueryResetFeaturesEXT &()
  33367. {
  33368. return *reinterpret_cast<VkPhysicalDeviceHostQueryResetFeaturesEXT*>( this );
  33369. }
  33370. bool operator==( PhysicalDeviceHostQueryResetFeaturesEXT const& rhs ) const
  33371. {
  33372. return ( sType == rhs.sType )
  33373. && ( pNext == rhs.pNext )
  33374. && ( hostQueryReset == rhs.hostQueryReset );
  33375. }
  33376. bool operator!=( PhysicalDeviceHostQueryResetFeaturesEXT const& rhs ) const
  33377. {
  33378. return !operator==( rhs );
  33379. }
  33380. private:
  33381. StructureType sType = StructureType::ePhysicalDeviceHostQueryResetFeaturesEXT;
  33382. public:
  33383. void* pNext = nullptr;
  33384. Bool32 hostQueryReset;
  33385. };
  33386. static_assert( sizeof( PhysicalDeviceHostQueryResetFeaturesEXT ) == sizeof( VkPhysicalDeviceHostQueryResetFeaturesEXT ), "struct and wrapper have different size!" );
  33387. struct PhysicalDeviceIDProperties
  33388. {
  33389. operator VkPhysicalDeviceIDProperties const&() const
  33390. {
  33391. return *reinterpret_cast<const VkPhysicalDeviceIDProperties*>( this );
  33392. }
  33393. operator VkPhysicalDeviceIDProperties &()
  33394. {
  33395. return *reinterpret_cast<VkPhysicalDeviceIDProperties*>( this );
  33396. }
  33397. bool operator==( PhysicalDeviceIDProperties const& rhs ) const
  33398. {
  33399. return ( sType == rhs.sType )
  33400. && ( pNext == rhs.pNext )
  33401. && ( memcmp( deviceUUID, rhs.deviceUUID, VK_UUID_SIZE * sizeof( uint8_t ) ) == 0 )
  33402. && ( memcmp( driverUUID, rhs.driverUUID, VK_UUID_SIZE * sizeof( uint8_t ) ) == 0 )
  33403. && ( memcmp( deviceLUID, rhs.deviceLUID, VK_LUID_SIZE * sizeof( uint8_t ) ) == 0 )
  33404. && ( deviceNodeMask == rhs.deviceNodeMask )
  33405. && ( deviceLUIDValid == rhs.deviceLUIDValid );
  33406. }
  33407. bool operator!=( PhysicalDeviceIDProperties const& rhs ) const
  33408. {
  33409. return !operator==( rhs );
  33410. }
  33411. private:
  33412. StructureType sType = StructureType::ePhysicalDeviceIdProperties;
  33413. public:
  33414. void* pNext = nullptr;
  33415. uint8_t deviceUUID[VK_UUID_SIZE];
  33416. uint8_t driverUUID[VK_UUID_SIZE];
  33417. uint8_t deviceLUID[VK_LUID_SIZE];
  33418. uint32_t deviceNodeMask;
  33419. Bool32 deviceLUIDValid;
  33420. };
  33421. static_assert( sizeof( PhysicalDeviceIDProperties ) == sizeof( VkPhysicalDeviceIDProperties ), "struct and wrapper have different size!" );
  33422. struct PhysicalDeviceImageDrmFormatModifierInfoEXT
  33423. {
  33424. PhysicalDeviceImageDrmFormatModifierInfoEXT( uint64_t drmFormatModifier_ = 0,
  33425. SharingMode sharingMode_ = SharingMode::eExclusive,
  33426. uint32_t queueFamilyIndexCount_ = 0,
  33427. const uint32_t* pQueueFamilyIndices_ = nullptr )
  33428. : drmFormatModifier( drmFormatModifier_ )
  33429. , sharingMode( sharingMode_ )
  33430. , queueFamilyIndexCount( queueFamilyIndexCount_ )
  33431. , pQueueFamilyIndices( pQueueFamilyIndices_ )
  33432. {}
  33433. PhysicalDeviceImageDrmFormatModifierInfoEXT( VkPhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs )
  33434. {
  33435. *reinterpret_cast<VkPhysicalDeviceImageDrmFormatModifierInfoEXT*>(this) = rhs;
  33436. }
  33437. PhysicalDeviceImageDrmFormatModifierInfoEXT& operator=( VkPhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs )
  33438. {
  33439. *reinterpret_cast<VkPhysicalDeviceImageDrmFormatModifierInfoEXT*>(this) = rhs;
  33440. return *this;
  33441. }
  33442. PhysicalDeviceImageDrmFormatModifierInfoEXT & setPNext( const void* pNext_ )
  33443. {
  33444. pNext = pNext_;
  33445. return *this;
  33446. }
  33447. PhysicalDeviceImageDrmFormatModifierInfoEXT & setDrmFormatModifier( uint64_t drmFormatModifier_ )
  33448. {
  33449. drmFormatModifier = drmFormatModifier_;
  33450. return *this;
  33451. }
  33452. PhysicalDeviceImageDrmFormatModifierInfoEXT & setSharingMode( SharingMode sharingMode_ )
  33453. {
  33454. sharingMode = sharingMode_;
  33455. return *this;
  33456. }
  33457. PhysicalDeviceImageDrmFormatModifierInfoEXT & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ )
  33458. {
  33459. queueFamilyIndexCount = queueFamilyIndexCount_;
  33460. return *this;
  33461. }
  33462. PhysicalDeviceImageDrmFormatModifierInfoEXT & setPQueueFamilyIndices( const uint32_t* pQueueFamilyIndices_ )
  33463. {
  33464. pQueueFamilyIndices = pQueueFamilyIndices_;
  33465. return *this;
  33466. }
  33467. operator VkPhysicalDeviceImageDrmFormatModifierInfoEXT const&() const
  33468. {
  33469. return *reinterpret_cast<const VkPhysicalDeviceImageDrmFormatModifierInfoEXT*>( this );
  33470. }
  33471. operator VkPhysicalDeviceImageDrmFormatModifierInfoEXT &()
  33472. {
  33473. return *reinterpret_cast<VkPhysicalDeviceImageDrmFormatModifierInfoEXT*>( this );
  33474. }
  33475. bool operator==( PhysicalDeviceImageDrmFormatModifierInfoEXT const& rhs ) const
  33476. {
  33477. return ( sType == rhs.sType )
  33478. && ( pNext == rhs.pNext )
  33479. && ( drmFormatModifier == rhs.drmFormatModifier )
  33480. && ( sharingMode == rhs.sharingMode )
  33481. && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount )
  33482. && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices );
  33483. }
  33484. bool operator!=( PhysicalDeviceImageDrmFormatModifierInfoEXT const& rhs ) const
  33485. {
  33486. return !operator==( rhs );
  33487. }
  33488. private:
  33489. StructureType sType = StructureType::ePhysicalDeviceImageDrmFormatModifierInfoEXT;
  33490. public:
  33491. const void* pNext = nullptr;
  33492. uint64_t drmFormatModifier;
  33493. SharingMode sharingMode;
  33494. uint32_t queueFamilyIndexCount;
  33495. const uint32_t* pQueueFamilyIndices;
  33496. };
  33497. static_assert( sizeof( PhysicalDeviceImageDrmFormatModifierInfoEXT ) == sizeof( VkPhysicalDeviceImageDrmFormatModifierInfoEXT ), "struct and wrapper have different size!" );
  33498. struct PhysicalDeviceImageFormatInfo2
  33499. {
  33500. PhysicalDeviceImageFormatInfo2( Format format_ = Format::eUndefined,
  33501. ImageType type_ = ImageType::e1D,
  33502. ImageTiling tiling_ = ImageTiling::eOptimal,
  33503. ImageUsageFlags usage_ = ImageUsageFlags(),
  33504. ImageCreateFlags flags_ = ImageCreateFlags() )
  33505. : format( format_ )
  33506. , type( type_ )
  33507. , tiling( tiling_ )
  33508. , usage( usage_ )
  33509. , flags( flags_ )
  33510. {}
  33511. PhysicalDeviceImageFormatInfo2( VkPhysicalDeviceImageFormatInfo2 const & rhs )
  33512. {
  33513. *reinterpret_cast<VkPhysicalDeviceImageFormatInfo2*>(this) = rhs;
  33514. }
  33515. PhysicalDeviceImageFormatInfo2& operator=( VkPhysicalDeviceImageFormatInfo2 const & rhs )
  33516. {
  33517. *reinterpret_cast<VkPhysicalDeviceImageFormatInfo2*>(this) = rhs;
  33518. return *this;
  33519. }
  33520. PhysicalDeviceImageFormatInfo2 & setPNext( const void* pNext_ )
  33521. {
  33522. pNext = pNext_;
  33523. return *this;
  33524. }
  33525. PhysicalDeviceImageFormatInfo2 & setFormat( Format format_ )
  33526. {
  33527. format = format_;
  33528. return *this;
  33529. }
  33530. PhysicalDeviceImageFormatInfo2 & setType( ImageType type_ )
  33531. {
  33532. type = type_;
  33533. return *this;
  33534. }
  33535. PhysicalDeviceImageFormatInfo2 & setTiling( ImageTiling tiling_ )
  33536. {
  33537. tiling = tiling_;
  33538. return *this;
  33539. }
  33540. PhysicalDeviceImageFormatInfo2 & setUsage( ImageUsageFlags usage_ )
  33541. {
  33542. usage = usage_;
  33543. return *this;
  33544. }
  33545. PhysicalDeviceImageFormatInfo2 & setFlags( ImageCreateFlags flags_ )
  33546. {
  33547. flags = flags_;
  33548. return *this;
  33549. }
  33550. operator VkPhysicalDeviceImageFormatInfo2 const&() const
  33551. {
  33552. return *reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2*>( this );
  33553. }
  33554. operator VkPhysicalDeviceImageFormatInfo2 &()
  33555. {
  33556. return *reinterpret_cast<VkPhysicalDeviceImageFormatInfo2*>( this );
  33557. }
  33558. bool operator==( PhysicalDeviceImageFormatInfo2 const& rhs ) const
  33559. {
  33560. return ( sType == rhs.sType )
  33561. && ( pNext == rhs.pNext )
  33562. && ( format == rhs.format )
  33563. && ( type == rhs.type )
  33564. && ( tiling == rhs.tiling )
  33565. && ( usage == rhs.usage )
  33566. && ( flags == rhs.flags );
  33567. }
  33568. bool operator!=( PhysicalDeviceImageFormatInfo2 const& rhs ) const
  33569. {
  33570. return !operator==( rhs );
  33571. }
  33572. private:
  33573. StructureType sType = StructureType::ePhysicalDeviceImageFormatInfo2;
  33574. public:
  33575. const void* pNext = nullptr;
  33576. Format format;
  33577. ImageType type;
  33578. ImageTiling tiling;
  33579. ImageUsageFlags usage;
  33580. ImageCreateFlags flags;
  33581. };
  33582. static_assert( sizeof( PhysicalDeviceImageFormatInfo2 ) == sizeof( VkPhysicalDeviceImageFormatInfo2 ), "struct and wrapper have different size!" );
  33583. struct PhysicalDeviceImageViewImageFormatInfoEXT
  33584. {
  33585. PhysicalDeviceImageViewImageFormatInfoEXT( ImageViewType imageViewType_ = ImageViewType::e1D )
  33586. : imageViewType( imageViewType_ )
  33587. {}
  33588. PhysicalDeviceImageViewImageFormatInfoEXT( VkPhysicalDeviceImageViewImageFormatInfoEXT const & rhs )
  33589. {
  33590. *reinterpret_cast<VkPhysicalDeviceImageViewImageFormatInfoEXT*>(this) = rhs;
  33591. }
  33592. PhysicalDeviceImageViewImageFormatInfoEXT& operator=( VkPhysicalDeviceImageViewImageFormatInfoEXT const & rhs )
  33593. {
  33594. *reinterpret_cast<VkPhysicalDeviceImageViewImageFormatInfoEXT*>(this) = rhs;
  33595. return *this;
  33596. }
  33597. PhysicalDeviceImageViewImageFormatInfoEXT & setPNext( void* pNext_ )
  33598. {
  33599. pNext = pNext_;
  33600. return *this;
  33601. }
  33602. PhysicalDeviceImageViewImageFormatInfoEXT & setImageViewType( ImageViewType imageViewType_ )
  33603. {
  33604. imageViewType = imageViewType_;
  33605. return *this;
  33606. }
  33607. operator VkPhysicalDeviceImageViewImageFormatInfoEXT const&() const
  33608. {
  33609. return *reinterpret_cast<const VkPhysicalDeviceImageViewImageFormatInfoEXT*>( this );
  33610. }
  33611. operator VkPhysicalDeviceImageViewImageFormatInfoEXT &()
  33612. {
  33613. return *reinterpret_cast<VkPhysicalDeviceImageViewImageFormatInfoEXT*>( this );
  33614. }
  33615. bool operator==( PhysicalDeviceImageViewImageFormatInfoEXT const& rhs ) const
  33616. {
  33617. return ( sType == rhs.sType )
  33618. && ( pNext == rhs.pNext )
  33619. && ( imageViewType == rhs.imageViewType );
  33620. }
  33621. bool operator!=( PhysicalDeviceImageViewImageFormatInfoEXT const& rhs ) const
  33622. {
  33623. return !operator==( rhs );
  33624. }
  33625. private:
  33626. StructureType sType = StructureType::ePhysicalDeviceImageViewImageFormatInfoEXT;
  33627. public:
  33628. void* pNext = nullptr;
  33629. ImageViewType imageViewType;
  33630. };
  33631. static_assert( sizeof( PhysicalDeviceImageViewImageFormatInfoEXT ) == sizeof( VkPhysicalDeviceImageViewImageFormatInfoEXT ), "struct and wrapper have different size!" );
  33632. struct PhysicalDeviceImagelessFramebufferFeaturesKHR
  33633. {
  33634. PhysicalDeviceImagelessFramebufferFeaturesKHR( Bool32 imagelessFramebuffer_ = 0 )
  33635. : imagelessFramebuffer( imagelessFramebuffer_ )
  33636. {}
  33637. PhysicalDeviceImagelessFramebufferFeaturesKHR( VkPhysicalDeviceImagelessFramebufferFeaturesKHR const & rhs )
  33638. {
  33639. *reinterpret_cast<VkPhysicalDeviceImagelessFramebufferFeaturesKHR*>(this) = rhs;
  33640. }
  33641. PhysicalDeviceImagelessFramebufferFeaturesKHR& operator=( VkPhysicalDeviceImagelessFramebufferFeaturesKHR const & rhs )
  33642. {
  33643. *reinterpret_cast<VkPhysicalDeviceImagelessFramebufferFeaturesKHR*>(this) = rhs;
  33644. return *this;
  33645. }
  33646. PhysicalDeviceImagelessFramebufferFeaturesKHR & setPNext( void* pNext_ )
  33647. {
  33648. pNext = pNext_;
  33649. return *this;
  33650. }
  33651. PhysicalDeviceImagelessFramebufferFeaturesKHR & setImagelessFramebuffer( Bool32 imagelessFramebuffer_ )
  33652. {
  33653. imagelessFramebuffer = imagelessFramebuffer_;
  33654. return *this;
  33655. }
  33656. operator VkPhysicalDeviceImagelessFramebufferFeaturesKHR const&() const
  33657. {
  33658. return *reinterpret_cast<const VkPhysicalDeviceImagelessFramebufferFeaturesKHR*>( this );
  33659. }
  33660. operator VkPhysicalDeviceImagelessFramebufferFeaturesKHR &()
  33661. {
  33662. return *reinterpret_cast<VkPhysicalDeviceImagelessFramebufferFeaturesKHR*>( this );
  33663. }
  33664. bool operator==( PhysicalDeviceImagelessFramebufferFeaturesKHR const& rhs ) const
  33665. {
  33666. return ( sType == rhs.sType )
  33667. && ( pNext == rhs.pNext )
  33668. && ( imagelessFramebuffer == rhs.imagelessFramebuffer );
  33669. }
  33670. bool operator!=( PhysicalDeviceImagelessFramebufferFeaturesKHR const& rhs ) const
  33671. {
  33672. return !operator==( rhs );
  33673. }
  33674. private:
  33675. StructureType sType = StructureType::ePhysicalDeviceImagelessFramebufferFeaturesKHR;
  33676. public:
  33677. void* pNext = nullptr;
  33678. Bool32 imagelessFramebuffer;
  33679. };
  33680. static_assert( sizeof( PhysicalDeviceImagelessFramebufferFeaturesKHR ) == sizeof( VkPhysicalDeviceImagelessFramebufferFeaturesKHR ), "struct and wrapper have different size!" );
  33681. struct PhysicalDeviceInlineUniformBlockFeaturesEXT
  33682. {
  33683. PhysicalDeviceInlineUniformBlockFeaturesEXT( Bool32 inlineUniformBlock_ = 0,
  33684. Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind_ = 0 )
  33685. : inlineUniformBlock( inlineUniformBlock_ )
  33686. , descriptorBindingInlineUniformBlockUpdateAfterBind( descriptorBindingInlineUniformBlockUpdateAfterBind_ )
  33687. {}
  33688. PhysicalDeviceInlineUniformBlockFeaturesEXT( VkPhysicalDeviceInlineUniformBlockFeaturesEXT const & rhs )
  33689. {
  33690. *reinterpret_cast<VkPhysicalDeviceInlineUniformBlockFeaturesEXT*>(this) = rhs;
  33691. }
  33692. PhysicalDeviceInlineUniformBlockFeaturesEXT& operator=( VkPhysicalDeviceInlineUniformBlockFeaturesEXT const & rhs )
  33693. {
  33694. *reinterpret_cast<VkPhysicalDeviceInlineUniformBlockFeaturesEXT*>(this) = rhs;
  33695. return *this;
  33696. }
  33697. PhysicalDeviceInlineUniformBlockFeaturesEXT & setPNext( void* pNext_ )
  33698. {
  33699. pNext = pNext_;
  33700. return *this;
  33701. }
  33702. PhysicalDeviceInlineUniformBlockFeaturesEXT & setInlineUniformBlock( Bool32 inlineUniformBlock_ )
  33703. {
  33704. inlineUniformBlock = inlineUniformBlock_;
  33705. return *this;
  33706. }
  33707. PhysicalDeviceInlineUniformBlockFeaturesEXT & setDescriptorBindingInlineUniformBlockUpdateAfterBind( Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind_ )
  33708. {
  33709. descriptorBindingInlineUniformBlockUpdateAfterBind = descriptorBindingInlineUniformBlockUpdateAfterBind_;
  33710. return *this;
  33711. }
  33712. operator VkPhysicalDeviceInlineUniformBlockFeaturesEXT const&() const
  33713. {
  33714. return *reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockFeaturesEXT*>( this );
  33715. }
  33716. operator VkPhysicalDeviceInlineUniformBlockFeaturesEXT &()
  33717. {
  33718. return *reinterpret_cast<VkPhysicalDeviceInlineUniformBlockFeaturesEXT*>( this );
  33719. }
  33720. bool operator==( PhysicalDeviceInlineUniformBlockFeaturesEXT const& rhs ) const
  33721. {
  33722. return ( sType == rhs.sType )
  33723. && ( pNext == rhs.pNext )
  33724. && ( inlineUniformBlock == rhs.inlineUniformBlock )
  33725. && ( descriptorBindingInlineUniformBlockUpdateAfterBind == rhs.descriptorBindingInlineUniformBlockUpdateAfterBind );
  33726. }
  33727. bool operator!=( PhysicalDeviceInlineUniformBlockFeaturesEXT const& rhs ) const
  33728. {
  33729. return !operator==( rhs );
  33730. }
  33731. private:
  33732. StructureType sType = StructureType::ePhysicalDeviceInlineUniformBlockFeaturesEXT;
  33733. public:
  33734. void* pNext = nullptr;
  33735. Bool32 inlineUniformBlock;
  33736. Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind;
  33737. };
  33738. static_assert( sizeof( PhysicalDeviceInlineUniformBlockFeaturesEXT ) == sizeof( VkPhysicalDeviceInlineUniformBlockFeaturesEXT ), "struct and wrapper have different size!" );
  33739. struct PhysicalDeviceInlineUniformBlockPropertiesEXT
  33740. {
  33741. operator VkPhysicalDeviceInlineUniformBlockPropertiesEXT const&() const
  33742. {
  33743. return *reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockPropertiesEXT*>( this );
  33744. }
  33745. operator VkPhysicalDeviceInlineUniformBlockPropertiesEXT &()
  33746. {
  33747. return *reinterpret_cast<VkPhysicalDeviceInlineUniformBlockPropertiesEXT*>( this );
  33748. }
  33749. bool operator==( PhysicalDeviceInlineUniformBlockPropertiesEXT const& rhs ) const
  33750. {
  33751. return ( sType == rhs.sType )
  33752. && ( pNext == rhs.pNext )
  33753. && ( maxInlineUniformBlockSize == rhs.maxInlineUniformBlockSize )
  33754. && ( maxPerStageDescriptorInlineUniformBlocks == rhs.maxPerStageDescriptorInlineUniformBlocks )
  33755. && ( maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks == rhs.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks )
  33756. && ( maxDescriptorSetInlineUniformBlocks == rhs.maxDescriptorSetInlineUniformBlocks )
  33757. && ( maxDescriptorSetUpdateAfterBindInlineUniformBlocks == rhs.maxDescriptorSetUpdateAfterBindInlineUniformBlocks );
  33758. }
  33759. bool operator!=( PhysicalDeviceInlineUniformBlockPropertiesEXT const& rhs ) const
  33760. {
  33761. return !operator==( rhs );
  33762. }
  33763. private:
  33764. StructureType sType = StructureType::ePhysicalDeviceInlineUniformBlockPropertiesEXT;
  33765. public:
  33766. void* pNext = nullptr;
  33767. uint32_t maxInlineUniformBlockSize;
  33768. uint32_t maxPerStageDescriptorInlineUniformBlocks;
  33769. uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
  33770. uint32_t maxDescriptorSetInlineUniformBlocks;
  33771. uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
  33772. };
  33773. static_assert( sizeof( PhysicalDeviceInlineUniformBlockPropertiesEXT ) == sizeof( VkPhysicalDeviceInlineUniformBlockPropertiesEXT ), "struct and wrapper have different size!" );
  33774. struct PhysicalDeviceLimits
  33775. {
  33776. operator VkPhysicalDeviceLimits const&() const
  33777. {
  33778. return *reinterpret_cast<const VkPhysicalDeviceLimits*>( this );
  33779. }
  33780. operator VkPhysicalDeviceLimits &()
  33781. {
  33782. return *reinterpret_cast<VkPhysicalDeviceLimits*>( this );
  33783. }
  33784. bool operator==( PhysicalDeviceLimits const& rhs ) const
  33785. {
  33786. return ( maxImageDimension1D == rhs.maxImageDimension1D )
  33787. && ( maxImageDimension2D == rhs.maxImageDimension2D )
  33788. && ( maxImageDimension3D == rhs.maxImageDimension3D )
  33789. && ( maxImageDimensionCube == rhs.maxImageDimensionCube )
  33790. && ( maxImageArrayLayers == rhs.maxImageArrayLayers )
  33791. && ( maxTexelBufferElements == rhs.maxTexelBufferElements )
  33792. && ( maxUniformBufferRange == rhs.maxUniformBufferRange )
  33793. && ( maxStorageBufferRange == rhs.maxStorageBufferRange )
  33794. && ( maxPushConstantsSize == rhs.maxPushConstantsSize )
  33795. && ( maxMemoryAllocationCount == rhs.maxMemoryAllocationCount )
  33796. && ( maxSamplerAllocationCount == rhs.maxSamplerAllocationCount )
  33797. && ( bufferImageGranularity == rhs.bufferImageGranularity )
  33798. && ( sparseAddressSpaceSize == rhs.sparseAddressSpaceSize )
  33799. && ( maxBoundDescriptorSets == rhs.maxBoundDescriptorSets )
  33800. && ( maxPerStageDescriptorSamplers == rhs.maxPerStageDescriptorSamplers )
  33801. && ( maxPerStageDescriptorUniformBuffers == rhs.maxPerStageDescriptorUniformBuffers )
  33802. && ( maxPerStageDescriptorStorageBuffers == rhs.maxPerStageDescriptorStorageBuffers )
  33803. && ( maxPerStageDescriptorSampledImages == rhs.maxPerStageDescriptorSampledImages )
  33804. && ( maxPerStageDescriptorStorageImages == rhs.maxPerStageDescriptorStorageImages )
  33805. && ( maxPerStageDescriptorInputAttachments == rhs.maxPerStageDescriptorInputAttachments )
  33806. && ( maxPerStageResources == rhs.maxPerStageResources )
  33807. && ( maxDescriptorSetSamplers == rhs.maxDescriptorSetSamplers )
  33808. && ( maxDescriptorSetUniformBuffers == rhs.maxDescriptorSetUniformBuffers )
  33809. && ( maxDescriptorSetUniformBuffersDynamic == rhs.maxDescriptorSetUniformBuffersDynamic )
  33810. && ( maxDescriptorSetStorageBuffers == rhs.maxDescriptorSetStorageBuffers )
  33811. && ( maxDescriptorSetStorageBuffersDynamic == rhs.maxDescriptorSetStorageBuffersDynamic )
  33812. && ( maxDescriptorSetSampledImages == rhs.maxDescriptorSetSampledImages )
  33813. && ( maxDescriptorSetStorageImages == rhs.maxDescriptorSetStorageImages )
  33814. && ( maxDescriptorSetInputAttachments == rhs.maxDescriptorSetInputAttachments )
  33815. && ( maxVertexInputAttributes == rhs.maxVertexInputAttributes )
  33816. && ( maxVertexInputBindings == rhs.maxVertexInputBindings )
  33817. && ( maxVertexInputAttributeOffset == rhs.maxVertexInputAttributeOffset )
  33818. && ( maxVertexInputBindingStride == rhs.maxVertexInputBindingStride )
  33819. && ( maxVertexOutputComponents == rhs.maxVertexOutputComponents )
  33820. && ( maxTessellationGenerationLevel == rhs.maxTessellationGenerationLevel )
  33821. && ( maxTessellationPatchSize == rhs.maxTessellationPatchSize )
  33822. && ( maxTessellationControlPerVertexInputComponents == rhs.maxTessellationControlPerVertexInputComponents )
  33823. && ( maxTessellationControlPerVertexOutputComponents == rhs.maxTessellationControlPerVertexOutputComponents )
  33824. && ( maxTessellationControlPerPatchOutputComponents == rhs.maxTessellationControlPerPatchOutputComponents )
  33825. && ( maxTessellationControlTotalOutputComponents == rhs.maxTessellationControlTotalOutputComponents )
  33826. && ( maxTessellationEvaluationInputComponents == rhs.maxTessellationEvaluationInputComponents )
  33827. && ( maxTessellationEvaluationOutputComponents == rhs.maxTessellationEvaluationOutputComponents )
  33828. && ( maxGeometryShaderInvocations == rhs.maxGeometryShaderInvocations )
  33829. && ( maxGeometryInputComponents == rhs.maxGeometryInputComponents )
  33830. && ( maxGeometryOutputComponents == rhs.maxGeometryOutputComponents )
  33831. && ( maxGeometryOutputVertices == rhs.maxGeometryOutputVertices )
  33832. && ( maxGeometryTotalOutputComponents == rhs.maxGeometryTotalOutputComponents )
  33833. && ( maxFragmentInputComponents == rhs.maxFragmentInputComponents )
  33834. && ( maxFragmentOutputAttachments == rhs.maxFragmentOutputAttachments )
  33835. && ( maxFragmentDualSrcAttachments == rhs.maxFragmentDualSrcAttachments )
  33836. && ( maxFragmentCombinedOutputResources == rhs.maxFragmentCombinedOutputResources )
  33837. && ( maxComputeSharedMemorySize == rhs.maxComputeSharedMemorySize )
  33838. && ( memcmp( maxComputeWorkGroupCount, rhs.maxComputeWorkGroupCount, 3 * sizeof( uint32_t ) ) == 0 )
  33839. && ( maxComputeWorkGroupInvocations == rhs.maxComputeWorkGroupInvocations )
  33840. && ( memcmp( maxComputeWorkGroupSize, rhs.maxComputeWorkGroupSize, 3 * sizeof( uint32_t ) ) == 0 )
  33841. && ( subPixelPrecisionBits == rhs.subPixelPrecisionBits )
  33842. && ( subTexelPrecisionBits == rhs.subTexelPrecisionBits )
  33843. && ( mipmapPrecisionBits == rhs.mipmapPrecisionBits )
  33844. && ( maxDrawIndexedIndexValue == rhs.maxDrawIndexedIndexValue )
  33845. && ( maxDrawIndirectCount == rhs.maxDrawIndirectCount )
  33846. && ( maxSamplerLodBias == rhs.maxSamplerLodBias )
  33847. && ( maxSamplerAnisotropy == rhs.maxSamplerAnisotropy )
  33848. && ( maxViewports == rhs.maxViewports )
  33849. && ( memcmp( maxViewportDimensions, rhs.maxViewportDimensions, 2 * sizeof( uint32_t ) ) == 0 )
  33850. && ( memcmp( viewportBoundsRange, rhs.viewportBoundsRange, 2 * sizeof( float ) ) == 0 )
  33851. && ( viewportSubPixelBits == rhs.viewportSubPixelBits )
  33852. && ( minMemoryMapAlignment == rhs.minMemoryMapAlignment )
  33853. && ( minTexelBufferOffsetAlignment == rhs.minTexelBufferOffsetAlignment )
  33854. && ( minUniformBufferOffsetAlignment == rhs.minUniformBufferOffsetAlignment )
  33855. && ( minStorageBufferOffsetAlignment == rhs.minStorageBufferOffsetAlignment )
  33856. && ( minTexelOffset == rhs.minTexelOffset )
  33857. && ( maxTexelOffset == rhs.maxTexelOffset )
  33858. && ( minTexelGatherOffset == rhs.minTexelGatherOffset )
  33859. && ( maxTexelGatherOffset == rhs.maxTexelGatherOffset )
  33860. && ( minInterpolationOffset == rhs.minInterpolationOffset )
  33861. && ( maxInterpolationOffset == rhs.maxInterpolationOffset )
  33862. && ( subPixelInterpolationOffsetBits == rhs.subPixelInterpolationOffsetBits )
  33863. && ( maxFramebufferWidth == rhs.maxFramebufferWidth )
  33864. && ( maxFramebufferHeight == rhs.maxFramebufferHeight )
  33865. && ( maxFramebufferLayers == rhs.maxFramebufferLayers )
  33866. && ( framebufferColorSampleCounts == rhs.framebufferColorSampleCounts )
  33867. && ( framebufferDepthSampleCounts == rhs.framebufferDepthSampleCounts )
  33868. && ( framebufferStencilSampleCounts == rhs.framebufferStencilSampleCounts )
  33869. && ( framebufferNoAttachmentsSampleCounts == rhs.framebufferNoAttachmentsSampleCounts )
  33870. && ( maxColorAttachments == rhs.maxColorAttachments )
  33871. && ( sampledImageColorSampleCounts == rhs.sampledImageColorSampleCounts )
  33872. && ( sampledImageIntegerSampleCounts == rhs.sampledImageIntegerSampleCounts )
  33873. && ( sampledImageDepthSampleCounts == rhs.sampledImageDepthSampleCounts )
  33874. && ( sampledImageStencilSampleCounts == rhs.sampledImageStencilSampleCounts )
  33875. && ( storageImageSampleCounts == rhs.storageImageSampleCounts )
  33876. && ( maxSampleMaskWords == rhs.maxSampleMaskWords )
  33877. && ( timestampComputeAndGraphics == rhs.timestampComputeAndGraphics )
  33878. && ( timestampPeriod == rhs.timestampPeriod )
  33879. && ( maxClipDistances == rhs.maxClipDistances )
  33880. && ( maxCullDistances == rhs.maxCullDistances )
  33881. && ( maxCombinedClipAndCullDistances == rhs.maxCombinedClipAndCullDistances )
  33882. && ( discreteQueuePriorities == rhs.discreteQueuePriorities )
  33883. && ( memcmp( pointSizeRange, rhs.pointSizeRange, 2 * sizeof( float ) ) == 0 )
  33884. && ( memcmp( lineWidthRange, rhs.lineWidthRange, 2 * sizeof( float ) ) == 0 )
  33885. && ( pointSizeGranularity == rhs.pointSizeGranularity )
  33886. && ( lineWidthGranularity == rhs.lineWidthGranularity )
  33887. && ( strictLines == rhs.strictLines )
  33888. && ( standardSampleLocations == rhs.standardSampleLocations )
  33889. && ( optimalBufferCopyOffsetAlignment == rhs.optimalBufferCopyOffsetAlignment )
  33890. && ( optimalBufferCopyRowPitchAlignment == rhs.optimalBufferCopyRowPitchAlignment )
  33891. && ( nonCoherentAtomSize == rhs.nonCoherentAtomSize );
  33892. }
  33893. bool operator!=( PhysicalDeviceLimits const& rhs ) const
  33894. {
  33895. return !operator==( rhs );
  33896. }
  33897. uint32_t maxImageDimension1D;
  33898. uint32_t maxImageDimension2D;
  33899. uint32_t maxImageDimension3D;
  33900. uint32_t maxImageDimensionCube;
  33901. uint32_t maxImageArrayLayers;
  33902. uint32_t maxTexelBufferElements;
  33903. uint32_t maxUniformBufferRange;
  33904. uint32_t maxStorageBufferRange;
  33905. uint32_t maxPushConstantsSize;
  33906. uint32_t maxMemoryAllocationCount;
  33907. uint32_t maxSamplerAllocationCount;
  33908. DeviceSize bufferImageGranularity;
  33909. DeviceSize sparseAddressSpaceSize;
  33910. uint32_t maxBoundDescriptorSets;
  33911. uint32_t maxPerStageDescriptorSamplers;
  33912. uint32_t maxPerStageDescriptorUniformBuffers;
  33913. uint32_t maxPerStageDescriptorStorageBuffers;
  33914. uint32_t maxPerStageDescriptorSampledImages;
  33915. uint32_t maxPerStageDescriptorStorageImages;
  33916. uint32_t maxPerStageDescriptorInputAttachments;
  33917. uint32_t maxPerStageResources;
  33918. uint32_t maxDescriptorSetSamplers;
  33919. uint32_t maxDescriptorSetUniformBuffers;
  33920. uint32_t maxDescriptorSetUniformBuffersDynamic;
  33921. uint32_t maxDescriptorSetStorageBuffers;
  33922. uint32_t maxDescriptorSetStorageBuffersDynamic;
  33923. uint32_t maxDescriptorSetSampledImages;
  33924. uint32_t maxDescriptorSetStorageImages;
  33925. uint32_t maxDescriptorSetInputAttachments;
  33926. uint32_t maxVertexInputAttributes;
  33927. uint32_t maxVertexInputBindings;
  33928. uint32_t maxVertexInputAttributeOffset;
  33929. uint32_t maxVertexInputBindingStride;
  33930. uint32_t maxVertexOutputComponents;
  33931. uint32_t maxTessellationGenerationLevel;
  33932. uint32_t maxTessellationPatchSize;
  33933. uint32_t maxTessellationControlPerVertexInputComponents;
  33934. uint32_t maxTessellationControlPerVertexOutputComponents;
  33935. uint32_t maxTessellationControlPerPatchOutputComponents;
  33936. uint32_t maxTessellationControlTotalOutputComponents;
  33937. uint32_t maxTessellationEvaluationInputComponents;
  33938. uint32_t maxTessellationEvaluationOutputComponents;
  33939. uint32_t maxGeometryShaderInvocations;
  33940. uint32_t maxGeometryInputComponents;
  33941. uint32_t maxGeometryOutputComponents;
  33942. uint32_t maxGeometryOutputVertices;
  33943. uint32_t maxGeometryTotalOutputComponents;
  33944. uint32_t maxFragmentInputComponents;
  33945. uint32_t maxFragmentOutputAttachments;
  33946. uint32_t maxFragmentDualSrcAttachments;
  33947. uint32_t maxFragmentCombinedOutputResources;
  33948. uint32_t maxComputeSharedMemorySize;
  33949. uint32_t maxComputeWorkGroupCount[3];
  33950. uint32_t maxComputeWorkGroupInvocations;
  33951. uint32_t maxComputeWorkGroupSize[3];
  33952. uint32_t subPixelPrecisionBits;
  33953. uint32_t subTexelPrecisionBits;
  33954. uint32_t mipmapPrecisionBits;
  33955. uint32_t maxDrawIndexedIndexValue;
  33956. uint32_t maxDrawIndirectCount;
  33957. float maxSamplerLodBias;
  33958. float maxSamplerAnisotropy;
  33959. uint32_t maxViewports;
  33960. uint32_t maxViewportDimensions[2];
  33961. float viewportBoundsRange[2];
  33962. uint32_t viewportSubPixelBits;
  33963. size_t minMemoryMapAlignment;
  33964. DeviceSize minTexelBufferOffsetAlignment;
  33965. DeviceSize minUniformBufferOffsetAlignment;
  33966. DeviceSize minStorageBufferOffsetAlignment;
  33967. int32_t minTexelOffset;
  33968. uint32_t maxTexelOffset;
  33969. int32_t minTexelGatherOffset;
  33970. uint32_t maxTexelGatherOffset;
  33971. float minInterpolationOffset;
  33972. float maxInterpolationOffset;
  33973. uint32_t subPixelInterpolationOffsetBits;
  33974. uint32_t maxFramebufferWidth;
  33975. uint32_t maxFramebufferHeight;
  33976. uint32_t maxFramebufferLayers;
  33977. SampleCountFlags framebufferColorSampleCounts;
  33978. SampleCountFlags framebufferDepthSampleCounts;
  33979. SampleCountFlags framebufferStencilSampleCounts;
  33980. SampleCountFlags framebufferNoAttachmentsSampleCounts;
  33981. uint32_t maxColorAttachments;
  33982. SampleCountFlags sampledImageColorSampleCounts;
  33983. SampleCountFlags sampledImageIntegerSampleCounts;
  33984. SampleCountFlags sampledImageDepthSampleCounts;
  33985. SampleCountFlags sampledImageStencilSampleCounts;
  33986. SampleCountFlags storageImageSampleCounts;
  33987. uint32_t maxSampleMaskWords;
  33988. Bool32 timestampComputeAndGraphics;
  33989. float timestampPeriod;
  33990. uint32_t maxClipDistances;
  33991. uint32_t maxCullDistances;
  33992. uint32_t maxCombinedClipAndCullDistances;
  33993. uint32_t discreteQueuePriorities;
  33994. float pointSizeRange[2];
  33995. float lineWidthRange[2];
  33996. float pointSizeGranularity;
  33997. float lineWidthGranularity;
  33998. Bool32 strictLines;
  33999. Bool32 standardSampleLocations;
  34000. DeviceSize optimalBufferCopyOffsetAlignment;
  34001. DeviceSize optimalBufferCopyRowPitchAlignment;
  34002. DeviceSize nonCoherentAtomSize;
  34003. };
  34004. static_assert( sizeof( PhysicalDeviceLimits ) == sizeof( VkPhysicalDeviceLimits ), "struct and wrapper have different size!" );
  34005. struct PhysicalDeviceMaintenance3Properties
  34006. {
  34007. operator VkPhysicalDeviceMaintenance3Properties const&() const
  34008. {
  34009. return *reinterpret_cast<const VkPhysicalDeviceMaintenance3Properties*>( this );
  34010. }
  34011. operator VkPhysicalDeviceMaintenance3Properties &()
  34012. {
  34013. return *reinterpret_cast<VkPhysicalDeviceMaintenance3Properties*>( this );
  34014. }
  34015. bool operator==( PhysicalDeviceMaintenance3Properties const& rhs ) const
  34016. {
  34017. return ( sType == rhs.sType )
  34018. && ( pNext == rhs.pNext )
  34019. && ( maxPerSetDescriptors == rhs.maxPerSetDescriptors )
  34020. && ( maxMemoryAllocationSize == rhs.maxMemoryAllocationSize );
  34021. }
  34022. bool operator!=( PhysicalDeviceMaintenance3Properties const& rhs ) const
  34023. {
  34024. return !operator==( rhs );
  34025. }
  34026. private:
  34027. StructureType sType = StructureType::ePhysicalDeviceMaintenance3Properties;
  34028. public:
  34029. void* pNext = nullptr;
  34030. uint32_t maxPerSetDescriptors;
  34031. DeviceSize maxMemoryAllocationSize;
  34032. };
  34033. static_assert( sizeof( PhysicalDeviceMaintenance3Properties ) == sizeof( VkPhysicalDeviceMaintenance3Properties ), "struct and wrapper have different size!" );
  34034. struct PhysicalDeviceMemoryBudgetPropertiesEXT
  34035. {
  34036. operator VkPhysicalDeviceMemoryBudgetPropertiesEXT const&() const
  34037. {
  34038. return *reinterpret_cast<const VkPhysicalDeviceMemoryBudgetPropertiesEXT*>( this );
  34039. }
  34040. operator VkPhysicalDeviceMemoryBudgetPropertiesEXT &()
  34041. {
  34042. return *reinterpret_cast<VkPhysicalDeviceMemoryBudgetPropertiesEXT*>( this );
  34043. }
  34044. bool operator==( PhysicalDeviceMemoryBudgetPropertiesEXT const& rhs ) const
  34045. {
  34046. return ( sType == rhs.sType )
  34047. && ( pNext == rhs.pNext )
  34048. && ( memcmp( heapBudget, rhs.heapBudget, VK_MAX_MEMORY_HEAPS * sizeof( DeviceSize ) ) == 0 )
  34049. && ( memcmp( heapUsage, rhs.heapUsage, VK_MAX_MEMORY_HEAPS * sizeof( DeviceSize ) ) == 0 );
  34050. }
  34051. bool operator!=( PhysicalDeviceMemoryBudgetPropertiesEXT const& rhs ) const
  34052. {
  34053. return !operator==( rhs );
  34054. }
  34055. private:
  34056. StructureType sType = StructureType::ePhysicalDeviceMemoryBudgetPropertiesEXT;
  34057. public:
  34058. void* pNext = nullptr;
  34059. DeviceSize heapBudget[VK_MAX_MEMORY_HEAPS];
  34060. DeviceSize heapUsage[VK_MAX_MEMORY_HEAPS];
  34061. };
  34062. static_assert( sizeof( PhysicalDeviceMemoryBudgetPropertiesEXT ) == sizeof( VkPhysicalDeviceMemoryBudgetPropertiesEXT ), "struct and wrapper have different size!" );
  34063. struct PhysicalDeviceMemoryPriorityFeaturesEXT
  34064. {
  34065. PhysicalDeviceMemoryPriorityFeaturesEXT( Bool32 memoryPriority_ = 0 )
  34066. : memoryPriority( memoryPriority_ )
  34067. {}
  34068. PhysicalDeviceMemoryPriorityFeaturesEXT( VkPhysicalDeviceMemoryPriorityFeaturesEXT const & rhs )
  34069. {
  34070. *reinterpret_cast<VkPhysicalDeviceMemoryPriorityFeaturesEXT*>(this) = rhs;
  34071. }
  34072. PhysicalDeviceMemoryPriorityFeaturesEXT& operator=( VkPhysicalDeviceMemoryPriorityFeaturesEXT const & rhs )
  34073. {
  34074. *reinterpret_cast<VkPhysicalDeviceMemoryPriorityFeaturesEXT*>(this) = rhs;
  34075. return *this;
  34076. }
  34077. PhysicalDeviceMemoryPriorityFeaturesEXT & setPNext( void* pNext_ )
  34078. {
  34079. pNext = pNext_;
  34080. return *this;
  34081. }
  34082. PhysicalDeviceMemoryPriorityFeaturesEXT & setMemoryPriority( Bool32 memoryPriority_ )
  34083. {
  34084. memoryPriority = memoryPriority_;
  34085. return *this;
  34086. }
  34087. operator VkPhysicalDeviceMemoryPriorityFeaturesEXT const&() const
  34088. {
  34089. return *reinterpret_cast<const VkPhysicalDeviceMemoryPriorityFeaturesEXT*>( this );
  34090. }
  34091. operator VkPhysicalDeviceMemoryPriorityFeaturesEXT &()
  34092. {
  34093. return *reinterpret_cast<VkPhysicalDeviceMemoryPriorityFeaturesEXT*>( this );
  34094. }
  34095. bool operator==( PhysicalDeviceMemoryPriorityFeaturesEXT const& rhs ) const
  34096. {
  34097. return ( sType == rhs.sType )
  34098. && ( pNext == rhs.pNext )
  34099. && ( memoryPriority == rhs.memoryPriority );
  34100. }
  34101. bool operator!=( PhysicalDeviceMemoryPriorityFeaturesEXT const& rhs ) const
  34102. {
  34103. return !operator==( rhs );
  34104. }
  34105. private:
  34106. StructureType sType = StructureType::ePhysicalDeviceMemoryPriorityFeaturesEXT;
  34107. public:
  34108. void* pNext = nullptr;
  34109. Bool32 memoryPriority;
  34110. };
  34111. static_assert( sizeof( PhysicalDeviceMemoryPriorityFeaturesEXT ) == sizeof( VkPhysicalDeviceMemoryPriorityFeaturesEXT ), "struct and wrapper have different size!" );
  34112. struct PhysicalDeviceMemoryProperties
  34113. {
  34114. operator VkPhysicalDeviceMemoryProperties const&() const
  34115. {
  34116. return *reinterpret_cast<const VkPhysicalDeviceMemoryProperties*>( this );
  34117. }
  34118. operator VkPhysicalDeviceMemoryProperties &()
  34119. {
  34120. return *reinterpret_cast<VkPhysicalDeviceMemoryProperties*>( this );
  34121. }
  34122. bool operator==( PhysicalDeviceMemoryProperties const& rhs ) const
  34123. {
  34124. return ( memoryTypeCount == rhs.memoryTypeCount )
  34125. && ( memcmp( memoryTypes, rhs.memoryTypes, VK_MAX_MEMORY_TYPES * sizeof( MemoryType ) ) == 0 )
  34126. && ( memoryHeapCount == rhs.memoryHeapCount )
  34127. && ( memcmp( memoryHeaps, rhs.memoryHeaps, VK_MAX_MEMORY_HEAPS * sizeof( MemoryHeap ) ) == 0 );
  34128. }
  34129. bool operator!=( PhysicalDeviceMemoryProperties const& rhs ) const
  34130. {
  34131. return !operator==( rhs );
  34132. }
  34133. uint32_t memoryTypeCount;
  34134. MemoryType memoryTypes[VK_MAX_MEMORY_TYPES];
  34135. uint32_t memoryHeapCount;
  34136. MemoryHeap memoryHeaps[VK_MAX_MEMORY_HEAPS];
  34137. };
  34138. static_assert( sizeof( PhysicalDeviceMemoryProperties ) == sizeof( VkPhysicalDeviceMemoryProperties ), "struct and wrapper have different size!" );
  34139. struct PhysicalDeviceMemoryProperties2
  34140. {
  34141. operator VkPhysicalDeviceMemoryProperties2 const&() const
  34142. {
  34143. return *reinterpret_cast<const VkPhysicalDeviceMemoryProperties2*>( this );
  34144. }
  34145. operator VkPhysicalDeviceMemoryProperties2 &()
  34146. {
  34147. return *reinterpret_cast<VkPhysicalDeviceMemoryProperties2*>( this );
  34148. }
  34149. bool operator==( PhysicalDeviceMemoryProperties2 const& rhs ) const
  34150. {
  34151. return ( sType == rhs.sType )
  34152. && ( pNext == rhs.pNext )
  34153. && ( memoryProperties == rhs.memoryProperties );
  34154. }
  34155. bool operator!=( PhysicalDeviceMemoryProperties2 const& rhs ) const
  34156. {
  34157. return !operator==( rhs );
  34158. }
  34159. private:
  34160. StructureType sType = StructureType::ePhysicalDeviceMemoryProperties2;
  34161. public:
  34162. void* pNext = nullptr;
  34163. PhysicalDeviceMemoryProperties memoryProperties;
  34164. };
  34165. static_assert( sizeof( PhysicalDeviceMemoryProperties2 ) == sizeof( VkPhysicalDeviceMemoryProperties2 ), "struct and wrapper have different size!" );
  34166. struct PhysicalDeviceMeshShaderFeaturesNV
  34167. {
  34168. PhysicalDeviceMeshShaderFeaturesNV( Bool32 taskShader_ = 0,
  34169. Bool32 meshShader_ = 0 )
  34170. : taskShader( taskShader_ )
  34171. , meshShader( meshShader_ )
  34172. {}
  34173. PhysicalDeviceMeshShaderFeaturesNV( VkPhysicalDeviceMeshShaderFeaturesNV const & rhs )
  34174. {
  34175. *reinterpret_cast<VkPhysicalDeviceMeshShaderFeaturesNV*>(this) = rhs;
  34176. }
  34177. PhysicalDeviceMeshShaderFeaturesNV& operator=( VkPhysicalDeviceMeshShaderFeaturesNV const & rhs )
  34178. {
  34179. *reinterpret_cast<VkPhysicalDeviceMeshShaderFeaturesNV*>(this) = rhs;
  34180. return *this;
  34181. }
  34182. PhysicalDeviceMeshShaderFeaturesNV & setPNext( void* pNext_ )
  34183. {
  34184. pNext = pNext_;
  34185. return *this;
  34186. }
  34187. PhysicalDeviceMeshShaderFeaturesNV & setTaskShader( Bool32 taskShader_ )
  34188. {
  34189. taskShader = taskShader_;
  34190. return *this;
  34191. }
  34192. PhysicalDeviceMeshShaderFeaturesNV & setMeshShader( Bool32 meshShader_ )
  34193. {
  34194. meshShader = meshShader_;
  34195. return *this;
  34196. }
  34197. operator VkPhysicalDeviceMeshShaderFeaturesNV const&() const
  34198. {
  34199. return *reinterpret_cast<const VkPhysicalDeviceMeshShaderFeaturesNV*>( this );
  34200. }
  34201. operator VkPhysicalDeviceMeshShaderFeaturesNV &()
  34202. {
  34203. return *reinterpret_cast<VkPhysicalDeviceMeshShaderFeaturesNV*>( this );
  34204. }
  34205. bool operator==( PhysicalDeviceMeshShaderFeaturesNV const& rhs ) const
  34206. {
  34207. return ( sType == rhs.sType )
  34208. && ( pNext == rhs.pNext )
  34209. && ( taskShader == rhs.taskShader )
  34210. && ( meshShader == rhs.meshShader );
  34211. }
  34212. bool operator!=( PhysicalDeviceMeshShaderFeaturesNV const& rhs ) const
  34213. {
  34214. return !operator==( rhs );
  34215. }
  34216. private:
  34217. StructureType sType = StructureType::ePhysicalDeviceMeshShaderFeaturesNV;
  34218. public:
  34219. void* pNext = nullptr;
  34220. Bool32 taskShader;
  34221. Bool32 meshShader;
  34222. };
  34223. static_assert( sizeof( PhysicalDeviceMeshShaderFeaturesNV ) == sizeof( VkPhysicalDeviceMeshShaderFeaturesNV ), "struct and wrapper have different size!" );
  34224. struct PhysicalDeviceMeshShaderPropertiesNV
  34225. {
  34226. operator VkPhysicalDeviceMeshShaderPropertiesNV const&() const
  34227. {
  34228. return *reinterpret_cast<const VkPhysicalDeviceMeshShaderPropertiesNV*>( this );
  34229. }
  34230. operator VkPhysicalDeviceMeshShaderPropertiesNV &()
  34231. {
  34232. return *reinterpret_cast<VkPhysicalDeviceMeshShaderPropertiesNV*>( this );
  34233. }
  34234. bool operator==( PhysicalDeviceMeshShaderPropertiesNV const& rhs ) const
  34235. {
  34236. return ( sType == rhs.sType )
  34237. && ( pNext == rhs.pNext )
  34238. && ( maxDrawMeshTasksCount == rhs.maxDrawMeshTasksCount )
  34239. && ( maxTaskWorkGroupInvocations == rhs.maxTaskWorkGroupInvocations )
  34240. && ( memcmp( maxTaskWorkGroupSize, rhs.maxTaskWorkGroupSize, 3 * sizeof( uint32_t ) ) == 0 )
  34241. && ( maxTaskTotalMemorySize == rhs.maxTaskTotalMemorySize )
  34242. && ( maxTaskOutputCount == rhs.maxTaskOutputCount )
  34243. && ( maxMeshWorkGroupInvocations == rhs.maxMeshWorkGroupInvocations )
  34244. && ( memcmp( maxMeshWorkGroupSize, rhs.maxMeshWorkGroupSize, 3 * sizeof( uint32_t ) ) == 0 )
  34245. && ( maxMeshTotalMemorySize == rhs.maxMeshTotalMemorySize )
  34246. && ( maxMeshOutputVertices == rhs.maxMeshOutputVertices )
  34247. && ( maxMeshOutputPrimitives == rhs.maxMeshOutputPrimitives )
  34248. && ( maxMeshMultiviewViewCount == rhs.maxMeshMultiviewViewCount )
  34249. && ( meshOutputPerVertexGranularity == rhs.meshOutputPerVertexGranularity )
  34250. && ( meshOutputPerPrimitiveGranularity == rhs.meshOutputPerPrimitiveGranularity );
  34251. }
  34252. bool operator!=( PhysicalDeviceMeshShaderPropertiesNV const& rhs ) const
  34253. {
  34254. return !operator==( rhs );
  34255. }
  34256. private:
  34257. StructureType sType = StructureType::ePhysicalDeviceMeshShaderPropertiesNV;
  34258. public:
  34259. void* pNext = nullptr;
  34260. uint32_t maxDrawMeshTasksCount;
  34261. uint32_t maxTaskWorkGroupInvocations;
  34262. uint32_t maxTaskWorkGroupSize[3];
  34263. uint32_t maxTaskTotalMemorySize;
  34264. uint32_t maxTaskOutputCount;
  34265. uint32_t maxMeshWorkGroupInvocations;
  34266. uint32_t maxMeshWorkGroupSize[3];
  34267. uint32_t maxMeshTotalMemorySize;
  34268. uint32_t maxMeshOutputVertices;
  34269. uint32_t maxMeshOutputPrimitives;
  34270. uint32_t maxMeshMultiviewViewCount;
  34271. uint32_t meshOutputPerVertexGranularity;
  34272. uint32_t meshOutputPerPrimitiveGranularity;
  34273. };
  34274. static_assert( sizeof( PhysicalDeviceMeshShaderPropertiesNV ) == sizeof( VkPhysicalDeviceMeshShaderPropertiesNV ), "struct and wrapper have different size!" );
  34275. struct PhysicalDeviceMultiviewFeatures
  34276. {
  34277. PhysicalDeviceMultiviewFeatures( Bool32 multiview_ = 0,
  34278. Bool32 multiviewGeometryShader_ = 0,
  34279. Bool32 multiviewTessellationShader_ = 0 )
  34280. : multiview( multiview_ )
  34281. , multiviewGeometryShader( multiviewGeometryShader_ )
  34282. , multiviewTessellationShader( multiviewTessellationShader_ )
  34283. {}
  34284. PhysicalDeviceMultiviewFeatures( VkPhysicalDeviceMultiviewFeatures const & rhs )
  34285. {
  34286. *reinterpret_cast<VkPhysicalDeviceMultiviewFeatures*>(this) = rhs;
  34287. }
  34288. PhysicalDeviceMultiviewFeatures& operator=( VkPhysicalDeviceMultiviewFeatures const & rhs )
  34289. {
  34290. *reinterpret_cast<VkPhysicalDeviceMultiviewFeatures*>(this) = rhs;
  34291. return *this;
  34292. }
  34293. PhysicalDeviceMultiviewFeatures & setPNext( void* pNext_ )
  34294. {
  34295. pNext = pNext_;
  34296. return *this;
  34297. }
  34298. PhysicalDeviceMultiviewFeatures & setMultiview( Bool32 multiview_ )
  34299. {
  34300. multiview = multiview_;
  34301. return *this;
  34302. }
  34303. PhysicalDeviceMultiviewFeatures & setMultiviewGeometryShader( Bool32 multiviewGeometryShader_ )
  34304. {
  34305. multiviewGeometryShader = multiviewGeometryShader_;
  34306. return *this;
  34307. }
  34308. PhysicalDeviceMultiviewFeatures & setMultiviewTessellationShader( Bool32 multiviewTessellationShader_ )
  34309. {
  34310. multiviewTessellationShader = multiviewTessellationShader_;
  34311. return *this;
  34312. }
  34313. operator VkPhysicalDeviceMultiviewFeatures const&() const
  34314. {
  34315. return *reinterpret_cast<const VkPhysicalDeviceMultiviewFeatures*>( this );
  34316. }
  34317. operator VkPhysicalDeviceMultiviewFeatures &()
  34318. {
  34319. return *reinterpret_cast<VkPhysicalDeviceMultiviewFeatures*>( this );
  34320. }
  34321. bool operator==( PhysicalDeviceMultiviewFeatures const& rhs ) const
  34322. {
  34323. return ( sType == rhs.sType )
  34324. && ( pNext == rhs.pNext )
  34325. && ( multiview == rhs.multiview )
  34326. && ( multiviewGeometryShader == rhs.multiviewGeometryShader )
  34327. && ( multiviewTessellationShader == rhs.multiviewTessellationShader );
  34328. }
  34329. bool operator!=( PhysicalDeviceMultiviewFeatures const& rhs ) const
  34330. {
  34331. return !operator==( rhs );
  34332. }
  34333. private:
  34334. StructureType sType = StructureType::ePhysicalDeviceMultiviewFeatures;
  34335. public:
  34336. void* pNext = nullptr;
  34337. Bool32 multiview;
  34338. Bool32 multiviewGeometryShader;
  34339. Bool32 multiviewTessellationShader;
  34340. };
  34341. static_assert( sizeof( PhysicalDeviceMultiviewFeatures ) == sizeof( VkPhysicalDeviceMultiviewFeatures ), "struct and wrapper have different size!" );
  34342. struct PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
  34343. {
  34344. operator VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const&() const
  34345. {
  34346. return *reinterpret_cast<const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX*>( this );
  34347. }
  34348. operator VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX &()
  34349. {
  34350. return *reinterpret_cast<VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX*>( this );
  34351. }
  34352. bool operator==( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const& rhs ) const
  34353. {
  34354. return ( sType == rhs.sType )
  34355. && ( pNext == rhs.pNext )
  34356. && ( perViewPositionAllComponents == rhs.perViewPositionAllComponents );
  34357. }
  34358. bool operator!=( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const& rhs ) const
  34359. {
  34360. return !operator==( rhs );
  34361. }
  34362. private:
  34363. StructureType sType = StructureType::ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
  34364. public:
  34365. void* pNext = nullptr;
  34366. Bool32 perViewPositionAllComponents;
  34367. };
  34368. static_assert( sizeof( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX ) == sizeof( VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX ), "struct and wrapper have different size!" );
  34369. struct PhysicalDeviceMultiviewProperties
  34370. {
  34371. operator VkPhysicalDeviceMultiviewProperties const&() const
  34372. {
  34373. return *reinterpret_cast<const VkPhysicalDeviceMultiviewProperties*>( this );
  34374. }
  34375. operator VkPhysicalDeviceMultiviewProperties &()
  34376. {
  34377. return *reinterpret_cast<VkPhysicalDeviceMultiviewProperties*>( this );
  34378. }
  34379. bool operator==( PhysicalDeviceMultiviewProperties const& rhs ) const
  34380. {
  34381. return ( sType == rhs.sType )
  34382. && ( pNext == rhs.pNext )
  34383. && ( maxMultiviewViewCount == rhs.maxMultiviewViewCount )
  34384. && ( maxMultiviewInstanceIndex == rhs.maxMultiviewInstanceIndex );
  34385. }
  34386. bool operator!=( PhysicalDeviceMultiviewProperties const& rhs ) const
  34387. {
  34388. return !operator==( rhs );
  34389. }
  34390. private:
  34391. StructureType sType = StructureType::ePhysicalDeviceMultiviewProperties;
  34392. public:
  34393. void* pNext = nullptr;
  34394. uint32_t maxMultiviewViewCount;
  34395. uint32_t maxMultiviewInstanceIndex;
  34396. };
  34397. static_assert( sizeof( PhysicalDeviceMultiviewProperties ) == sizeof( VkPhysicalDeviceMultiviewProperties ), "struct and wrapper have different size!" );
  34398. struct PhysicalDevicePCIBusInfoPropertiesEXT
  34399. {
  34400. operator VkPhysicalDevicePCIBusInfoPropertiesEXT const&() const
  34401. {
  34402. return *reinterpret_cast<const VkPhysicalDevicePCIBusInfoPropertiesEXT*>( this );
  34403. }
  34404. operator VkPhysicalDevicePCIBusInfoPropertiesEXT &()
  34405. {
  34406. return *reinterpret_cast<VkPhysicalDevicePCIBusInfoPropertiesEXT*>( this );
  34407. }
  34408. bool operator==( PhysicalDevicePCIBusInfoPropertiesEXT const& rhs ) const
  34409. {
  34410. return ( sType == rhs.sType )
  34411. && ( pNext == rhs.pNext )
  34412. && ( pciDomain == rhs.pciDomain )
  34413. && ( pciBus == rhs.pciBus )
  34414. && ( pciDevice == rhs.pciDevice )
  34415. && ( pciFunction == rhs.pciFunction );
  34416. }
  34417. bool operator!=( PhysicalDevicePCIBusInfoPropertiesEXT const& rhs ) const
  34418. {
  34419. return !operator==( rhs );
  34420. }
  34421. private:
  34422. StructureType sType = StructureType::ePhysicalDevicePciBusInfoPropertiesEXT;
  34423. public:
  34424. void* pNext = nullptr;
  34425. uint32_t pciDomain;
  34426. uint32_t pciBus;
  34427. uint32_t pciDevice;
  34428. uint32_t pciFunction;
  34429. };
  34430. static_assert( sizeof( PhysicalDevicePCIBusInfoPropertiesEXT ) == sizeof( VkPhysicalDevicePCIBusInfoPropertiesEXT ), "struct and wrapper have different size!" );
  34431. struct PhysicalDevicePointClippingProperties
  34432. {
  34433. operator VkPhysicalDevicePointClippingProperties const&() const
  34434. {
  34435. return *reinterpret_cast<const VkPhysicalDevicePointClippingProperties*>( this );
  34436. }
  34437. operator VkPhysicalDevicePointClippingProperties &()
  34438. {
  34439. return *reinterpret_cast<VkPhysicalDevicePointClippingProperties*>( this );
  34440. }
  34441. bool operator==( PhysicalDevicePointClippingProperties const& rhs ) const
  34442. {
  34443. return ( sType == rhs.sType )
  34444. && ( pNext == rhs.pNext )
  34445. && ( pointClippingBehavior == rhs.pointClippingBehavior );
  34446. }
  34447. bool operator!=( PhysicalDevicePointClippingProperties const& rhs ) const
  34448. {
  34449. return !operator==( rhs );
  34450. }
  34451. private:
  34452. StructureType sType = StructureType::ePhysicalDevicePointClippingProperties;
  34453. public:
  34454. void* pNext = nullptr;
  34455. PointClippingBehavior pointClippingBehavior;
  34456. };
  34457. static_assert( sizeof( PhysicalDevicePointClippingProperties ) == sizeof( VkPhysicalDevicePointClippingProperties ), "struct and wrapper have different size!" );
  34458. struct PhysicalDeviceSparseProperties
  34459. {
  34460. operator VkPhysicalDeviceSparseProperties const&() const
  34461. {
  34462. return *reinterpret_cast<const VkPhysicalDeviceSparseProperties*>( this );
  34463. }
  34464. operator VkPhysicalDeviceSparseProperties &()
  34465. {
  34466. return *reinterpret_cast<VkPhysicalDeviceSparseProperties*>( this );
  34467. }
  34468. bool operator==( PhysicalDeviceSparseProperties const& rhs ) const
  34469. {
  34470. return ( residencyStandard2DBlockShape == rhs.residencyStandard2DBlockShape )
  34471. && ( residencyStandard2DMultisampleBlockShape == rhs.residencyStandard2DMultisampleBlockShape )
  34472. && ( residencyStandard3DBlockShape == rhs.residencyStandard3DBlockShape )
  34473. && ( residencyAlignedMipSize == rhs.residencyAlignedMipSize )
  34474. && ( residencyNonResidentStrict == rhs.residencyNonResidentStrict );
  34475. }
  34476. bool operator!=( PhysicalDeviceSparseProperties const& rhs ) const
  34477. {
  34478. return !operator==( rhs );
  34479. }
  34480. Bool32 residencyStandard2DBlockShape;
  34481. Bool32 residencyStandard2DMultisampleBlockShape;
  34482. Bool32 residencyStandard3DBlockShape;
  34483. Bool32 residencyAlignedMipSize;
  34484. Bool32 residencyNonResidentStrict;
  34485. };
  34486. static_assert( sizeof( PhysicalDeviceSparseProperties ) == sizeof( VkPhysicalDeviceSparseProperties ), "struct and wrapper have different size!" );
  34487. struct PhysicalDeviceProperties
  34488. {
  34489. operator VkPhysicalDeviceProperties const&() const
  34490. {
  34491. return *reinterpret_cast<const VkPhysicalDeviceProperties*>( this );
  34492. }
  34493. operator VkPhysicalDeviceProperties &()
  34494. {
  34495. return *reinterpret_cast<VkPhysicalDeviceProperties*>( this );
  34496. }
  34497. bool operator==( PhysicalDeviceProperties const& rhs ) const
  34498. {
  34499. return ( apiVersion == rhs.apiVersion )
  34500. && ( driverVersion == rhs.driverVersion )
  34501. && ( vendorID == rhs.vendorID )
  34502. && ( deviceID == rhs.deviceID )
  34503. && ( deviceType == rhs.deviceType )
  34504. && ( memcmp( deviceName, rhs.deviceName, VK_MAX_PHYSICAL_DEVICE_NAME_SIZE * sizeof( char ) ) == 0 )
  34505. && ( memcmp( pipelineCacheUUID, rhs.pipelineCacheUUID, VK_UUID_SIZE * sizeof( uint8_t ) ) == 0 )
  34506. && ( limits == rhs.limits )
  34507. && ( sparseProperties == rhs.sparseProperties );
  34508. }
  34509. bool operator!=( PhysicalDeviceProperties const& rhs ) const
  34510. {
  34511. return !operator==( rhs );
  34512. }
  34513. uint32_t apiVersion;
  34514. uint32_t driverVersion;
  34515. uint32_t vendorID;
  34516. uint32_t deviceID;
  34517. PhysicalDeviceType deviceType;
  34518. char deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
  34519. uint8_t pipelineCacheUUID[VK_UUID_SIZE];
  34520. PhysicalDeviceLimits limits;
  34521. PhysicalDeviceSparseProperties sparseProperties;
  34522. };
  34523. static_assert( sizeof( PhysicalDeviceProperties ) == sizeof( VkPhysicalDeviceProperties ), "struct and wrapper have different size!" );
  34524. struct PhysicalDeviceProperties2
  34525. {
  34526. operator VkPhysicalDeviceProperties2 const&() const
  34527. {
  34528. return *reinterpret_cast<const VkPhysicalDeviceProperties2*>( this );
  34529. }
  34530. operator VkPhysicalDeviceProperties2 &()
  34531. {
  34532. return *reinterpret_cast<VkPhysicalDeviceProperties2*>( this );
  34533. }
  34534. bool operator==( PhysicalDeviceProperties2 const& rhs ) const
  34535. {
  34536. return ( sType == rhs.sType )
  34537. && ( pNext == rhs.pNext )
  34538. && ( properties == rhs.properties );
  34539. }
  34540. bool operator!=( PhysicalDeviceProperties2 const& rhs ) const
  34541. {
  34542. return !operator==( rhs );
  34543. }
  34544. private:
  34545. StructureType sType = StructureType::ePhysicalDeviceProperties2;
  34546. public:
  34547. void* pNext = nullptr;
  34548. PhysicalDeviceProperties properties;
  34549. };
  34550. static_assert( sizeof( PhysicalDeviceProperties2 ) == sizeof( VkPhysicalDeviceProperties2 ), "struct and wrapper have different size!" );
  34551. struct PhysicalDeviceProtectedMemoryFeatures
  34552. {
  34553. PhysicalDeviceProtectedMemoryFeatures( Bool32 protectedMemory_ = 0 )
  34554. : protectedMemory( protectedMemory_ )
  34555. {}
  34556. PhysicalDeviceProtectedMemoryFeatures( VkPhysicalDeviceProtectedMemoryFeatures const & rhs )
  34557. {
  34558. *reinterpret_cast<VkPhysicalDeviceProtectedMemoryFeatures*>(this) = rhs;
  34559. }
  34560. PhysicalDeviceProtectedMemoryFeatures& operator=( VkPhysicalDeviceProtectedMemoryFeatures const & rhs )
  34561. {
  34562. *reinterpret_cast<VkPhysicalDeviceProtectedMemoryFeatures*>(this) = rhs;
  34563. return *this;
  34564. }
  34565. PhysicalDeviceProtectedMemoryFeatures & setPNext( void* pNext_ )
  34566. {
  34567. pNext = pNext_;
  34568. return *this;
  34569. }
  34570. PhysicalDeviceProtectedMemoryFeatures & setProtectedMemory( Bool32 protectedMemory_ )
  34571. {
  34572. protectedMemory = protectedMemory_;
  34573. return *this;
  34574. }
  34575. operator VkPhysicalDeviceProtectedMemoryFeatures const&() const
  34576. {
  34577. return *reinterpret_cast<const VkPhysicalDeviceProtectedMemoryFeatures*>( this );
  34578. }
  34579. operator VkPhysicalDeviceProtectedMemoryFeatures &()
  34580. {
  34581. return *reinterpret_cast<VkPhysicalDeviceProtectedMemoryFeatures*>( this );
  34582. }
  34583. bool operator==( PhysicalDeviceProtectedMemoryFeatures const& rhs ) const
  34584. {
  34585. return ( sType == rhs.sType )
  34586. && ( pNext == rhs.pNext )
  34587. && ( protectedMemory == rhs.protectedMemory );
  34588. }
  34589. bool operator!=( PhysicalDeviceProtectedMemoryFeatures const& rhs ) const
  34590. {
  34591. return !operator==( rhs );
  34592. }
  34593. private:
  34594. StructureType sType = StructureType::ePhysicalDeviceProtectedMemoryFeatures;
  34595. public:
  34596. void* pNext = nullptr;
  34597. Bool32 protectedMemory;
  34598. };
  34599. static_assert( sizeof( PhysicalDeviceProtectedMemoryFeatures ) == sizeof( VkPhysicalDeviceProtectedMemoryFeatures ), "struct and wrapper have different size!" );
  34600. struct PhysicalDeviceProtectedMemoryProperties
  34601. {
  34602. operator VkPhysicalDeviceProtectedMemoryProperties const&() const
  34603. {
  34604. return *reinterpret_cast<const VkPhysicalDeviceProtectedMemoryProperties*>( this );
  34605. }
  34606. operator VkPhysicalDeviceProtectedMemoryProperties &()
  34607. {
  34608. return *reinterpret_cast<VkPhysicalDeviceProtectedMemoryProperties*>( this );
  34609. }
  34610. bool operator==( PhysicalDeviceProtectedMemoryProperties const& rhs ) const
  34611. {
  34612. return ( sType == rhs.sType )
  34613. && ( pNext == rhs.pNext )
  34614. && ( protectedNoFault == rhs.protectedNoFault );
  34615. }
  34616. bool operator!=( PhysicalDeviceProtectedMemoryProperties const& rhs ) const
  34617. {
  34618. return !operator==( rhs );
  34619. }
  34620. private:
  34621. StructureType sType = StructureType::ePhysicalDeviceProtectedMemoryProperties;
  34622. public:
  34623. void* pNext = nullptr;
  34624. Bool32 protectedNoFault;
  34625. };
  34626. static_assert( sizeof( PhysicalDeviceProtectedMemoryProperties ) == sizeof( VkPhysicalDeviceProtectedMemoryProperties ), "struct and wrapper have different size!" );
  34627. struct PhysicalDevicePushDescriptorPropertiesKHR
  34628. {
  34629. operator VkPhysicalDevicePushDescriptorPropertiesKHR const&() const
  34630. {
  34631. return *reinterpret_cast<const VkPhysicalDevicePushDescriptorPropertiesKHR*>( this );
  34632. }
  34633. operator VkPhysicalDevicePushDescriptorPropertiesKHR &()
  34634. {
  34635. return *reinterpret_cast<VkPhysicalDevicePushDescriptorPropertiesKHR*>( this );
  34636. }
  34637. bool operator==( PhysicalDevicePushDescriptorPropertiesKHR const& rhs ) const
  34638. {
  34639. return ( sType == rhs.sType )
  34640. && ( pNext == rhs.pNext )
  34641. && ( maxPushDescriptors == rhs.maxPushDescriptors );
  34642. }
  34643. bool operator!=( PhysicalDevicePushDescriptorPropertiesKHR const& rhs ) const
  34644. {
  34645. return !operator==( rhs );
  34646. }
  34647. private:
  34648. StructureType sType = StructureType::ePhysicalDevicePushDescriptorPropertiesKHR;
  34649. public:
  34650. void* pNext = nullptr;
  34651. uint32_t maxPushDescriptors;
  34652. };
  34653. static_assert( sizeof( PhysicalDevicePushDescriptorPropertiesKHR ) == sizeof( VkPhysicalDevicePushDescriptorPropertiesKHR ), "struct and wrapper have different size!" );
  34654. struct PhysicalDeviceRayTracingPropertiesNV
  34655. {
  34656. operator VkPhysicalDeviceRayTracingPropertiesNV const&() const
  34657. {
  34658. return *reinterpret_cast<const VkPhysicalDeviceRayTracingPropertiesNV*>( this );
  34659. }
  34660. operator VkPhysicalDeviceRayTracingPropertiesNV &()
  34661. {
  34662. return *reinterpret_cast<VkPhysicalDeviceRayTracingPropertiesNV*>( this );
  34663. }
  34664. bool operator==( PhysicalDeviceRayTracingPropertiesNV const& rhs ) const
  34665. {
  34666. return ( sType == rhs.sType )
  34667. && ( pNext == rhs.pNext )
  34668. && ( shaderGroupHandleSize == rhs.shaderGroupHandleSize )
  34669. && ( maxRecursionDepth == rhs.maxRecursionDepth )
  34670. && ( maxShaderGroupStride == rhs.maxShaderGroupStride )
  34671. && ( shaderGroupBaseAlignment == rhs.shaderGroupBaseAlignment )
  34672. && ( maxGeometryCount == rhs.maxGeometryCount )
  34673. && ( maxInstanceCount == rhs.maxInstanceCount )
  34674. && ( maxTriangleCount == rhs.maxTriangleCount )
  34675. && ( maxDescriptorSetAccelerationStructures == rhs.maxDescriptorSetAccelerationStructures );
  34676. }
  34677. bool operator!=( PhysicalDeviceRayTracingPropertiesNV const& rhs ) const
  34678. {
  34679. return !operator==( rhs );
  34680. }
  34681. private:
  34682. StructureType sType = StructureType::ePhysicalDeviceRayTracingPropertiesNV;
  34683. public:
  34684. void* pNext = nullptr;
  34685. uint32_t shaderGroupHandleSize;
  34686. uint32_t maxRecursionDepth;
  34687. uint32_t maxShaderGroupStride;
  34688. uint32_t shaderGroupBaseAlignment;
  34689. uint64_t maxGeometryCount;
  34690. uint64_t maxInstanceCount;
  34691. uint64_t maxTriangleCount;
  34692. uint32_t maxDescriptorSetAccelerationStructures;
  34693. };
  34694. static_assert( sizeof( PhysicalDeviceRayTracingPropertiesNV ) == sizeof( VkPhysicalDeviceRayTracingPropertiesNV ), "struct and wrapper have different size!" );
  34695. struct PhysicalDeviceRepresentativeFragmentTestFeaturesNV
  34696. {
  34697. PhysicalDeviceRepresentativeFragmentTestFeaturesNV( Bool32 representativeFragmentTest_ = 0 )
  34698. : representativeFragmentTest( representativeFragmentTest_ )
  34699. {}
  34700. PhysicalDeviceRepresentativeFragmentTestFeaturesNV( VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs )
  34701. {
  34702. *reinterpret_cast<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV*>(this) = rhs;
  34703. }
  34704. PhysicalDeviceRepresentativeFragmentTestFeaturesNV& operator=( VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs )
  34705. {
  34706. *reinterpret_cast<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV*>(this) = rhs;
  34707. return *this;
  34708. }
  34709. PhysicalDeviceRepresentativeFragmentTestFeaturesNV & setPNext( void* pNext_ )
  34710. {
  34711. pNext = pNext_;
  34712. return *this;
  34713. }
  34714. PhysicalDeviceRepresentativeFragmentTestFeaturesNV & setRepresentativeFragmentTest( Bool32 representativeFragmentTest_ )
  34715. {
  34716. representativeFragmentTest = representativeFragmentTest_;
  34717. return *this;
  34718. }
  34719. operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const&() const
  34720. {
  34721. return *reinterpret_cast<const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV*>( this );
  34722. }
  34723. operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV &()
  34724. {
  34725. return *reinterpret_cast<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV*>( this );
  34726. }
  34727. bool operator==( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const& rhs ) const
  34728. {
  34729. return ( sType == rhs.sType )
  34730. && ( pNext == rhs.pNext )
  34731. && ( representativeFragmentTest == rhs.representativeFragmentTest );
  34732. }
  34733. bool operator!=( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const& rhs ) const
  34734. {
  34735. return !operator==( rhs );
  34736. }
  34737. private:
  34738. StructureType sType = StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV;
  34739. public:
  34740. void* pNext = nullptr;
  34741. Bool32 representativeFragmentTest;
  34742. };
  34743. static_assert( sizeof( PhysicalDeviceRepresentativeFragmentTestFeaturesNV ) == sizeof( VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV ), "struct and wrapper have different size!" );
  34744. struct PhysicalDeviceSampleLocationsPropertiesEXT
  34745. {
  34746. operator VkPhysicalDeviceSampleLocationsPropertiesEXT const&() const
  34747. {
  34748. return *reinterpret_cast<const VkPhysicalDeviceSampleLocationsPropertiesEXT*>( this );
  34749. }
  34750. operator VkPhysicalDeviceSampleLocationsPropertiesEXT &()
  34751. {
  34752. return *reinterpret_cast<VkPhysicalDeviceSampleLocationsPropertiesEXT*>( this );
  34753. }
  34754. bool operator==( PhysicalDeviceSampleLocationsPropertiesEXT const& rhs ) const
  34755. {
  34756. return ( sType == rhs.sType )
  34757. && ( pNext == rhs.pNext )
  34758. && ( sampleLocationSampleCounts == rhs.sampleLocationSampleCounts )
  34759. && ( maxSampleLocationGridSize == rhs.maxSampleLocationGridSize )
  34760. && ( memcmp( sampleLocationCoordinateRange, rhs.sampleLocationCoordinateRange, 2 * sizeof( float ) ) == 0 )
  34761. && ( sampleLocationSubPixelBits == rhs.sampleLocationSubPixelBits )
  34762. && ( variableSampleLocations == rhs.variableSampleLocations );
  34763. }
  34764. bool operator!=( PhysicalDeviceSampleLocationsPropertiesEXT const& rhs ) const
  34765. {
  34766. return !operator==( rhs );
  34767. }
  34768. private:
  34769. StructureType sType = StructureType::ePhysicalDeviceSampleLocationsPropertiesEXT;
  34770. public:
  34771. void* pNext = nullptr;
  34772. SampleCountFlags sampleLocationSampleCounts;
  34773. Extent2D maxSampleLocationGridSize;
  34774. float sampleLocationCoordinateRange[2];
  34775. uint32_t sampleLocationSubPixelBits;
  34776. Bool32 variableSampleLocations;
  34777. };
  34778. static_assert( sizeof( PhysicalDeviceSampleLocationsPropertiesEXT ) == sizeof( VkPhysicalDeviceSampleLocationsPropertiesEXT ), "struct and wrapper have different size!" );
  34779. struct PhysicalDeviceSamplerFilterMinmaxPropertiesEXT
  34780. {
  34781. operator VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT const&() const
  34782. {
  34783. return *reinterpret_cast<const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT*>( this );
  34784. }
  34785. operator VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT &()
  34786. {
  34787. return *reinterpret_cast<VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT*>( this );
  34788. }
  34789. bool operator==( PhysicalDeviceSamplerFilterMinmaxPropertiesEXT const& rhs ) const
  34790. {
  34791. return ( sType == rhs.sType )
  34792. && ( pNext == rhs.pNext )
  34793. && ( filterMinmaxSingleComponentFormats == rhs.filterMinmaxSingleComponentFormats )
  34794. && ( filterMinmaxImageComponentMapping == rhs.filterMinmaxImageComponentMapping );
  34795. }
  34796. bool operator!=( PhysicalDeviceSamplerFilterMinmaxPropertiesEXT const& rhs ) const
  34797. {
  34798. return !operator==( rhs );
  34799. }
  34800. private:
  34801. StructureType sType = StructureType::ePhysicalDeviceSamplerFilterMinmaxPropertiesEXT;
  34802. public:
  34803. void* pNext = nullptr;
  34804. Bool32 filterMinmaxSingleComponentFormats;
  34805. Bool32 filterMinmaxImageComponentMapping;
  34806. };
  34807. static_assert( sizeof( PhysicalDeviceSamplerFilterMinmaxPropertiesEXT ) == sizeof( VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT ), "struct and wrapper have different size!" );
  34808. struct PhysicalDeviceSamplerYcbcrConversionFeatures
  34809. {
  34810. PhysicalDeviceSamplerYcbcrConversionFeatures( Bool32 samplerYcbcrConversion_ = 0 )
  34811. : samplerYcbcrConversion( samplerYcbcrConversion_ )
  34812. {}
  34813. PhysicalDeviceSamplerYcbcrConversionFeatures( VkPhysicalDeviceSamplerYcbcrConversionFeatures const & rhs )
  34814. {
  34815. *reinterpret_cast<VkPhysicalDeviceSamplerYcbcrConversionFeatures*>(this) = rhs;
  34816. }
  34817. PhysicalDeviceSamplerYcbcrConversionFeatures& operator=( VkPhysicalDeviceSamplerYcbcrConversionFeatures const & rhs )
  34818. {
  34819. *reinterpret_cast<VkPhysicalDeviceSamplerYcbcrConversionFeatures*>(this) = rhs;
  34820. return *this;
  34821. }
  34822. PhysicalDeviceSamplerYcbcrConversionFeatures & setPNext( void* pNext_ )
  34823. {
  34824. pNext = pNext_;
  34825. return *this;
  34826. }
  34827. PhysicalDeviceSamplerYcbcrConversionFeatures & setSamplerYcbcrConversion( Bool32 samplerYcbcrConversion_ )
  34828. {
  34829. samplerYcbcrConversion = samplerYcbcrConversion_;
  34830. return *this;
  34831. }
  34832. operator VkPhysicalDeviceSamplerYcbcrConversionFeatures const&() const
  34833. {
  34834. return *reinterpret_cast<const VkPhysicalDeviceSamplerYcbcrConversionFeatures*>( this );
  34835. }
  34836. operator VkPhysicalDeviceSamplerYcbcrConversionFeatures &()
  34837. {
  34838. return *reinterpret_cast<VkPhysicalDeviceSamplerYcbcrConversionFeatures*>( this );
  34839. }
  34840. bool operator==( PhysicalDeviceSamplerYcbcrConversionFeatures const& rhs ) const
  34841. {
  34842. return ( sType == rhs.sType )
  34843. && ( pNext == rhs.pNext )
  34844. && ( samplerYcbcrConversion == rhs.samplerYcbcrConversion );
  34845. }
  34846. bool operator!=( PhysicalDeviceSamplerYcbcrConversionFeatures const& rhs ) const
  34847. {
  34848. return !operator==( rhs );
  34849. }
  34850. private:
  34851. StructureType sType = StructureType::ePhysicalDeviceSamplerYcbcrConversionFeatures;
  34852. public:
  34853. void* pNext = nullptr;
  34854. Bool32 samplerYcbcrConversion;
  34855. };
  34856. static_assert( sizeof( PhysicalDeviceSamplerYcbcrConversionFeatures ) == sizeof( VkPhysicalDeviceSamplerYcbcrConversionFeatures ), "struct and wrapper have different size!" );
  34857. struct PhysicalDeviceScalarBlockLayoutFeaturesEXT
  34858. {
  34859. PhysicalDeviceScalarBlockLayoutFeaturesEXT( Bool32 scalarBlockLayout_ = 0 )
  34860. : scalarBlockLayout( scalarBlockLayout_ )
  34861. {}
  34862. PhysicalDeviceScalarBlockLayoutFeaturesEXT( VkPhysicalDeviceScalarBlockLayoutFeaturesEXT const & rhs )
  34863. {
  34864. *reinterpret_cast<VkPhysicalDeviceScalarBlockLayoutFeaturesEXT*>(this) = rhs;
  34865. }
  34866. PhysicalDeviceScalarBlockLayoutFeaturesEXT& operator=( VkPhysicalDeviceScalarBlockLayoutFeaturesEXT const & rhs )
  34867. {
  34868. *reinterpret_cast<VkPhysicalDeviceScalarBlockLayoutFeaturesEXT*>(this) = rhs;
  34869. return *this;
  34870. }
  34871. PhysicalDeviceScalarBlockLayoutFeaturesEXT & setPNext( void* pNext_ )
  34872. {
  34873. pNext = pNext_;
  34874. return *this;
  34875. }
  34876. PhysicalDeviceScalarBlockLayoutFeaturesEXT & setScalarBlockLayout( Bool32 scalarBlockLayout_ )
  34877. {
  34878. scalarBlockLayout = scalarBlockLayout_;
  34879. return *this;
  34880. }
  34881. operator VkPhysicalDeviceScalarBlockLayoutFeaturesEXT const&() const
  34882. {
  34883. return *reinterpret_cast<const VkPhysicalDeviceScalarBlockLayoutFeaturesEXT*>( this );
  34884. }
  34885. operator VkPhysicalDeviceScalarBlockLayoutFeaturesEXT &()
  34886. {
  34887. return *reinterpret_cast<VkPhysicalDeviceScalarBlockLayoutFeaturesEXT*>( this );
  34888. }
  34889. bool operator==( PhysicalDeviceScalarBlockLayoutFeaturesEXT const& rhs ) const
  34890. {
  34891. return ( sType == rhs.sType )
  34892. && ( pNext == rhs.pNext )
  34893. && ( scalarBlockLayout == rhs.scalarBlockLayout );
  34894. }
  34895. bool operator!=( PhysicalDeviceScalarBlockLayoutFeaturesEXT const& rhs ) const
  34896. {
  34897. return !operator==( rhs );
  34898. }
  34899. private:
  34900. StructureType sType = StructureType::ePhysicalDeviceScalarBlockLayoutFeaturesEXT;
  34901. public:
  34902. void* pNext = nullptr;
  34903. Bool32 scalarBlockLayout;
  34904. };
  34905. static_assert( sizeof( PhysicalDeviceScalarBlockLayoutFeaturesEXT ) == sizeof( VkPhysicalDeviceScalarBlockLayoutFeaturesEXT ), "struct and wrapper have different size!" );
  34906. struct PhysicalDeviceShaderAtomicInt64FeaturesKHR
  34907. {
  34908. PhysicalDeviceShaderAtomicInt64FeaturesKHR( Bool32 shaderBufferInt64Atomics_ = 0,
  34909. Bool32 shaderSharedInt64Atomics_ = 0 )
  34910. : shaderBufferInt64Atomics( shaderBufferInt64Atomics_ )
  34911. , shaderSharedInt64Atomics( shaderSharedInt64Atomics_ )
  34912. {}
  34913. PhysicalDeviceShaderAtomicInt64FeaturesKHR( VkPhysicalDeviceShaderAtomicInt64FeaturesKHR const & rhs )
  34914. {
  34915. *reinterpret_cast<VkPhysicalDeviceShaderAtomicInt64FeaturesKHR*>(this) = rhs;
  34916. }
  34917. PhysicalDeviceShaderAtomicInt64FeaturesKHR& operator=( VkPhysicalDeviceShaderAtomicInt64FeaturesKHR const & rhs )
  34918. {
  34919. *reinterpret_cast<VkPhysicalDeviceShaderAtomicInt64FeaturesKHR*>(this) = rhs;
  34920. return *this;
  34921. }
  34922. PhysicalDeviceShaderAtomicInt64FeaturesKHR & setPNext( void* pNext_ )
  34923. {
  34924. pNext = pNext_;
  34925. return *this;
  34926. }
  34927. PhysicalDeviceShaderAtomicInt64FeaturesKHR & setShaderBufferInt64Atomics( Bool32 shaderBufferInt64Atomics_ )
  34928. {
  34929. shaderBufferInt64Atomics = shaderBufferInt64Atomics_;
  34930. return *this;
  34931. }
  34932. PhysicalDeviceShaderAtomicInt64FeaturesKHR & setShaderSharedInt64Atomics( Bool32 shaderSharedInt64Atomics_ )
  34933. {
  34934. shaderSharedInt64Atomics = shaderSharedInt64Atomics_;
  34935. return *this;
  34936. }
  34937. operator VkPhysicalDeviceShaderAtomicInt64FeaturesKHR const&() const
  34938. {
  34939. return *reinterpret_cast<const VkPhysicalDeviceShaderAtomicInt64FeaturesKHR*>( this );
  34940. }
  34941. operator VkPhysicalDeviceShaderAtomicInt64FeaturesKHR &()
  34942. {
  34943. return *reinterpret_cast<VkPhysicalDeviceShaderAtomicInt64FeaturesKHR*>( this );
  34944. }
  34945. bool operator==( PhysicalDeviceShaderAtomicInt64FeaturesKHR const& rhs ) const
  34946. {
  34947. return ( sType == rhs.sType )
  34948. && ( pNext == rhs.pNext )
  34949. && ( shaderBufferInt64Atomics == rhs.shaderBufferInt64Atomics )
  34950. && ( shaderSharedInt64Atomics == rhs.shaderSharedInt64Atomics );
  34951. }
  34952. bool operator!=( PhysicalDeviceShaderAtomicInt64FeaturesKHR const& rhs ) const
  34953. {
  34954. return !operator==( rhs );
  34955. }
  34956. private:
  34957. StructureType sType = StructureType::ePhysicalDeviceShaderAtomicInt64FeaturesKHR;
  34958. public:
  34959. void* pNext = nullptr;
  34960. Bool32 shaderBufferInt64Atomics;
  34961. Bool32 shaderSharedInt64Atomics;
  34962. };
  34963. static_assert( sizeof( PhysicalDeviceShaderAtomicInt64FeaturesKHR ) == sizeof( VkPhysicalDeviceShaderAtomicInt64FeaturesKHR ), "struct and wrapper have different size!" );
  34964. struct PhysicalDeviceShaderCorePropertiesAMD
  34965. {
  34966. operator VkPhysicalDeviceShaderCorePropertiesAMD const&() const
  34967. {
  34968. return *reinterpret_cast<const VkPhysicalDeviceShaderCorePropertiesAMD*>( this );
  34969. }
  34970. operator VkPhysicalDeviceShaderCorePropertiesAMD &()
  34971. {
  34972. return *reinterpret_cast<VkPhysicalDeviceShaderCorePropertiesAMD*>( this );
  34973. }
  34974. bool operator==( PhysicalDeviceShaderCorePropertiesAMD const& rhs ) const
  34975. {
  34976. return ( sType == rhs.sType )
  34977. && ( pNext == rhs.pNext )
  34978. && ( shaderEngineCount == rhs.shaderEngineCount )
  34979. && ( shaderArraysPerEngineCount == rhs.shaderArraysPerEngineCount )
  34980. && ( computeUnitsPerShaderArray == rhs.computeUnitsPerShaderArray )
  34981. && ( simdPerComputeUnit == rhs.simdPerComputeUnit )
  34982. && ( wavefrontsPerSimd == rhs.wavefrontsPerSimd )
  34983. && ( wavefrontSize == rhs.wavefrontSize )
  34984. && ( sgprsPerSimd == rhs.sgprsPerSimd )
  34985. && ( minSgprAllocation == rhs.minSgprAllocation )
  34986. && ( maxSgprAllocation == rhs.maxSgprAllocation )
  34987. && ( sgprAllocationGranularity == rhs.sgprAllocationGranularity )
  34988. && ( vgprsPerSimd == rhs.vgprsPerSimd )
  34989. && ( minVgprAllocation == rhs.minVgprAllocation )
  34990. && ( maxVgprAllocation == rhs.maxVgprAllocation )
  34991. && ( vgprAllocationGranularity == rhs.vgprAllocationGranularity );
  34992. }
  34993. bool operator!=( PhysicalDeviceShaderCorePropertiesAMD const& rhs ) const
  34994. {
  34995. return !operator==( rhs );
  34996. }
  34997. private:
  34998. StructureType sType = StructureType::ePhysicalDeviceShaderCorePropertiesAMD;
  34999. public:
  35000. void* pNext = nullptr;
  35001. uint32_t shaderEngineCount;
  35002. uint32_t shaderArraysPerEngineCount;
  35003. uint32_t computeUnitsPerShaderArray;
  35004. uint32_t simdPerComputeUnit;
  35005. uint32_t wavefrontsPerSimd;
  35006. uint32_t wavefrontSize;
  35007. uint32_t sgprsPerSimd;
  35008. uint32_t minSgprAllocation;
  35009. uint32_t maxSgprAllocation;
  35010. uint32_t sgprAllocationGranularity;
  35011. uint32_t vgprsPerSimd;
  35012. uint32_t minVgprAllocation;
  35013. uint32_t maxVgprAllocation;
  35014. uint32_t vgprAllocationGranularity;
  35015. };
  35016. static_assert( sizeof( PhysicalDeviceShaderCorePropertiesAMD ) == sizeof( VkPhysicalDeviceShaderCorePropertiesAMD ), "struct and wrapper have different size!" );
  35017. struct PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT
  35018. {
  35019. PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT( Bool32 shaderDemoteToHelperInvocation_ = 0 )
  35020. : shaderDemoteToHelperInvocation( shaderDemoteToHelperInvocation_ )
  35021. {}
  35022. PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT( VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const & rhs )
  35023. {
  35024. *reinterpret_cast<VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT*>(this) = rhs;
  35025. }
  35026. PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT& operator=( VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const & rhs )
  35027. {
  35028. *reinterpret_cast<VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT*>(this) = rhs;
  35029. return *this;
  35030. }
  35031. PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT & setPNext( void* pNext_ )
  35032. {
  35033. pNext = pNext_;
  35034. return *this;
  35035. }
  35036. PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT & setShaderDemoteToHelperInvocation( Bool32 shaderDemoteToHelperInvocation_ )
  35037. {
  35038. shaderDemoteToHelperInvocation = shaderDemoteToHelperInvocation_;
  35039. return *this;
  35040. }
  35041. operator VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const&() const
  35042. {
  35043. return *reinterpret_cast<const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT*>( this );
  35044. }
  35045. operator VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT &()
  35046. {
  35047. return *reinterpret_cast<VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT*>( this );
  35048. }
  35049. bool operator==( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const& rhs ) const
  35050. {
  35051. return ( sType == rhs.sType )
  35052. && ( pNext == rhs.pNext )
  35053. && ( shaderDemoteToHelperInvocation == rhs.shaderDemoteToHelperInvocation );
  35054. }
  35055. bool operator!=( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const& rhs ) const
  35056. {
  35057. return !operator==( rhs );
  35058. }
  35059. private:
  35060. StructureType sType = StructureType::ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
  35061. public:
  35062. void* pNext = nullptr;
  35063. Bool32 shaderDemoteToHelperInvocation;
  35064. };
  35065. static_assert( sizeof( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT ) == sizeof( VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT ), "struct and wrapper have different size!" );
  35066. struct PhysicalDeviceShaderDrawParametersFeatures
  35067. {
  35068. PhysicalDeviceShaderDrawParametersFeatures( Bool32 shaderDrawParameters_ = 0 )
  35069. : shaderDrawParameters( shaderDrawParameters_ )
  35070. {}
  35071. PhysicalDeviceShaderDrawParametersFeatures( VkPhysicalDeviceShaderDrawParametersFeatures const & rhs )
  35072. {
  35073. *reinterpret_cast<VkPhysicalDeviceShaderDrawParametersFeatures*>(this) = rhs;
  35074. }
  35075. PhysicalDeviceShaderDrawParametersFeatures& operator=( VkPhysicalDeviceShaderDrawParametersFeatures const & rhs )
  35076. {
  35077. *reinterpret_cast<VkPhysicalDeviceShaderDrawParametersFeatures*>(this) = rhs;
  35078. return *this;
  35079. }
  35080. PhysicalDeviceShaderDrawParametersFeatures & setPNext( void* pNext_ )
  35081. {
  35082. pNext = pNext_;
  35083. return *this;
  35084. }
  35085. PhysicalDeviceShaderDrawParametersFeatures & setShaderDrawParameters( Bool32 shaderDrawParameters_ )
  35086. {
  35087. shaderDrawParameters = shaderDrawParameters_;
  35088. return *this;
  35089. }
  35090. operator VkPhysicalDeviceShaderDrawParametersFeatures const&() const
  35091. {
  35092. return *reinterpret_cast<const VkPhysicalDeviceShaderDrawParametersFeatures*>( this );
  35093. }
  35094. operator VkPhysicalDeviceShaderDrawParametersFeatures &()
  35095. {
  35096. return *reinterpret_cast<VkPhysicalDeviceShaderDrawParametersFeatures*>( this );
  35097. }
  35098. bool operator==( PhysicalDeviceShaderDrawParametersFeatures const& rhs ) const
  35099. {
  35100. return ( sType == rhs.sType )
  35101. && ( pNext == rhs.pNext )
  35102. && ( shaderDrawParameters == rhs.shaderDrawParameters );
  35103. }
  35104. bool operator!=( PhysicalDeviceShaderDrawParametersFeatures const& rhs ) const
  35105. {
  35106. return !operator==( rhs );
  35107. }
  35108. private:
  35109. StructureType sType = StructureType::ePhysicalDeviceShaderDrawParametersFeatures;
  35110. public:
  35111. void* pNext = nullptr;
  35112. Bool32 shaderDrawParameters;
  35113. };
  35114. static_assert( sizeof( PhysicalDeviceShaderDrawParametersFeatures ) == sizeof( VkPhysicalDeviceShaderDrawParametersFeatures ), "struct and wrapper have different size!" );
  35115. struct PhysicalDeviceShaderImageFootprintFeaturesNV
  35116. {
  35117. PhysicalDeviceShaderImageFootprintFeaturesNV( Bool32 imageFootprint_ = 0 )
  35118. : imageFootprint( imageFootprint_ )
  35119. {}
  35120. PhysicalDeviceShaderImageFootprintFeaturesNV( VkPhysicalDeviceShaderImageFootprintFeaturesNV const & rhs )
  35121. {
  35122. *reinterpret_cast<VkPhysicalDeviceShaderImageFootprintFeaturesNV*>(this) = rhs;
  35123. }
  35124. PhysicalDeviceShaderImageFootprintFeaturesNV& operator=( VkPhysicalDeviceShaderImageFootprintFeaturesNV const & rhs )
  35125. {
  35126. *reinterpret_cast<VkPhysicalDeviceShaderImageFootprintFeaturesNV*>(this) = rhs;
  35127. return *this;
  35128. }
  35129. PhysicalDeviceShaderImageFootprintFeaturesNV & setPNext( void* pNext_ )
  35130. {
  35131. pNext = pNext_;
  35132. return *this;
  35133. }
  35134. PhysicalDeviceShaderImageFootprintFeaturesNV & setImageFootprint( Bool32 imageFootprint_ )
  35135. {
  35136. imageFootprint = imageFootprint_;
  35137. return *this;
  35138. }
  35139. operator VkPhysicalDeviceShaderImageFootprintFeaturesNV const&() const
  35140. {
  35141. return *reinterpret_cast<const VkPhysicalDeviceShaderImageFootprintFeaturesNV*>( this );
  35142. }
  35143. operator VkPhysicalDeviceShaderImageFootprintFeaturesNV &()
  35144. {
  35145. return *reinterpret_cast<VkPhysicalDeviceShaderImageFootprintFeaturesNV*>( this );
  35146. }
  35147. bool operator==( PhysicalDeviceShaderImageFootprintFeaturesNV const& rhs ) const
  35148. {
  35149. return ( sType == rhs.sType )
  35150. && ( pNext == rhs.pNext )
  35151. && ( imageFootprint == rhs.imageFootprint );
  35152. }
  35153. bool operator!=( PhysicalDeviceShaderImageFootprintFeaturesNV const& rhs ) const
  35154. {
  35155. return !operator==( rhs );
  35156. }
  35157. private:
  35158. StructureType sType = StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV;
  35159. public:
  35160. void* pNext = nullptr;
  35161. Bool32 imageFootprint;
  35162. };
  35163. static_assert( sizeof( PhysicalDeviceShaderImageFootprintFeaturesNV ) == sizeof( VkPhysicalDeviceShaderImageFootprintFeaturesNV ), "struct and wrapper have different size!" );
  35164. struct PhysicalDeviceShaderIntegerFunctions2INTEL
  35165. {
  35166. PhysicalDeviceShaderIntegerFunctions2INTEL( Bool32 shaderIntegerFunctions2_ = 0 )
  35167. : shaderIntegerFunctions2( shaderIntegerFunctions2_ )
  35168. {}
  35169. PhysicalDeviceShaderIntegerFunctions2INTEL( VkPhysicalDeviceShaderIntegerFunctions2INTEL const & rhs )
  35170. {
  35171. *reinterpret_cast<VkPhysicalDeviceShaderIntegerFunctions2INTEL*>(this) = rhs;
  35172. }
  35173. PhysicalDeviceShaderIntegerFunctions2INTEL& operator=( VkPhysicalDeviceShaderIntegerFunctions2INTEL const & rhs )
  35174. {
  35175. *reinterpret_cast<VkPhysicalDeviceShaderIntegerFunctions2INTEL*>(this) = rhs;
  35176. return *this;
  35177. }
  35178. PhysicalDeviceShaderIntegerFunctions2INTEL & setPNext( void* pNext_ )
  35179. {
  35180. pNext = pNext_;
  35181. return *this;
  35182. }
  35183. PhysicalDeviceShaderIntegerFunctions2INTEL & setShaderIntegerFunctions2( Bool32 shaderIntegerFunctions2_ )
  35184. {
  35185. shaderIntegerFunctions2 = shaderIntegerFunctions2_;
  35186. return *this;
  35187. }
  35188. operator VkPhysicalDeviceShaderIntegerFunctions2INTEL const&() const
  35189. {
  35190. return *reinterpret_cast<const VkPhysicalDeviceShaderIntegerFunctions2INTEL*>( this );
  35191. }
  35192. operator VkPhysicalDeviceShaderIntegerFunctions2INTEL &()
  35193. {
  35194. return *reinterpret_cast<VkPhysicalDeviceShaderIntegerFunctions2INTEL*>( this );
  35195. }
  35196. bool operator==( PhysicalDeviceShaderIntegerFunctions2INTEL const& rhs ) const
  35197. {
  35198. return ( sType == rhs.sType )
  35199. && ( pNext == rhs.pNext )
  35200. && ( shaderIntegerFunctions2 == rhs.shaderIntegerFunctions2 );
  35201. }
  35202. bool operator!=( PhysicalDeviceShaderIntegerFunctions2INTEL const& rhs ) const
  35203. {
  35204. return !operator==( rhs );
  35205. }
  35206. private:
  35207. StructureType sType = StructureType::ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
  35208. public:
  35209. void* pNext = nullptr;
  35210. Bool32 shaderIntegerFunctions2;
  35211. };
  35212. static_assert( sizeof( PhysicalDeviceShaderIntegerFunctions2INTEL ) == sizeof( VkPhysicalDeviceShaderIntegerFunctions2INTEL ), "struct and wrapper have different size!" );
  35213. struct PhysicalDeviceShaderSMBuiltinsFeaturesNV
  35214. {
  35215. PhysicalDeviceShaderSMBuiltinsFeaturesNV( Bool32 shaderSMBuiltins_ = 0 )
  35216. : shaderSMBuiltins( shaderSMBuiltins_ )
  35217. {}
  35218. PhysicalDeviceShaderSMBuiltinsFeaturesNV( VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs )
  35219. {
  35220. *reinterpret_cast<VkPhysicalDeviceShaderSMBuiltinsFeaturesNV*>(this) = rhs;
  35221. }
  35222. PhysicalDeviceShaderSMBuiltinsFeaturesNV& operator=( VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs )
  35223. {
  35224. *reinterpret_cast<VkPhysicalDeviceShaderSMBuiltinsFeaturesNV*>(this) = rhs;
  35225. return *this;
  35226. }
  35227. PhysicalDeviceShaderSMBuiltinsFeaturesNV & setPNext( void* pNext_ )
  35228. {
  35229. pNext = pNext_;
  35230. return *this;
  35231. }
  35232. PhysicalDeviceShaderSMBuiltinsFeaturesNV & setShaderSMBuiltins( Bool32 shaderSMBuiltins_ )
  35233. {
  35234. shaderSMBuiltins = shaderSMBuiltins_;
  35235. return *this;
  35236. }
  35237. operator VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const&() const
  35238. {
  35239. return *reinterpret_cast<const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV*>( this );
  35240. }
  35241. operator VkPhysicalDeviceShaderSMBuiltinsFeaturesNV &()
  35242. {
  35243. return *reinterpret_cast<VkPhysicalDeviceShaderSMBuiltinsFeaturesNV*>( this );
  35244. }
  35245. bool operator==( PhysicalDeviceShaderSMBuiltinsFeaturesNV const& rhs ) const
  35246. {
  35247. return ( sType == rhs.sType )
  35248. && ( pNext == rhs.pNext )
  35249. && ( shaderSMBuiltins == rhs.shaderSMBuiltins );
  35250. }
  35251. bool operator!=( PhysicalDeviceShaderSMBuiltinsFeaturesNV const& rhs ) const
  35252. {
  35253. return !operator==( rhs );
  35254. }
  35255. private:
  35256. StructureType sType = StructureType::ePhysicalDeviceShaderSmBuiltinsFeaturesNV;
  35257. public:
  35258. void* pNext = nullptr;
  35259. Bool32 shaderSMBuiltins;
  35260. };
  35261. static_assert( sizeof( PhysicalDeviceShaderSMBuiltinsFeaturesNV ) == sizeof( VkPhysicalDeviceShaderSMBuiltinsFeaturesNV ), "struct and wrapper have different size!" );
  35262. struct PhysicalDeviceShaderSMBuiltinsPropertiesNV
  35263. {
  35264. operator VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const&() const
  35265. {
  35266. return *reinterpret_cast<const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV*>( this );
  35267. }
  35268. operator VkPhysicalDeviceShaderSMBuiltinsPropertiesNV &()
  35269. {
  35270. return *reinterpret_cast<VkPhysicalDeviceShaderSMBuiltinsPropertiesNV*>( this );
  35271. }
  35272. bool operator==( PhysicalDeviceShaderSMBuiltinsPropertiesNV const& rhs ) const
  35273. {
  35274. return ( sType == rhs.sType )
  35275. && ( pNext == rhs.pNext )
  35276. && ( shaderSMCount == rhs.shaderSMCount )
  35277. && ( shaderWarpsPerSM == rhs.shaderWarpsPerSM );
  35278. }
  35279. bool operator!=( PhysicalDeviceShaderSMBuiltinsPropertiesNV const& rhs ) const
  35280. {
  35281. return !operator==( rhs );
  35282. }
  35283. private:
  35284. StructureType sType = StructureType::ePhysicalDeviceShaderSmBuiltinsPropertiesNV;
  35285. public:
  35286. void* pNext = nullptr;
  35287. uint32_t shaderSMCount;
  35288. uint32_t shaderWarpsPerSM;
  35289. };
  35290. static_assert( sizeof( PhysicalDeviceShaderSMBuiltinsPropertiesNV ) == sizeof( VkPhysicalDeviceShaderSMBuiltinsPropertiesNV ), "struct and wrapper have different size!" );
  35291. struct PhysicalDeviceShadingRateImageFeaturesNV
  35292. {
  35293. PhysicalDeviceShadingRateImageFeaturesNV( Bool32 shadingRateImage_ = 0,
  35294. Bool32 shadingRateCoarseSampleOrder_ = 0 )
  35295. : shadingRateImage( shadingRateImage_ )
  35296. , shadingRateCoarseSampleOrder( shadingRateCoarseSampleOrder_ )
  35297. {}
  35298. PhysicalDeviceShadingRateImageFeaturesNV( VkPhysicalDeviceShadingRateImageFeaturesNV const & rhs )
  35299. {
  35300. *reinterpret_cast<VkPhysicalDeviceShadingRateImageFeaturesNV*>(this) = rhs;
  35301. }
  35302. PhysicalDeviceShadingRateImageFeaturesNV& operator=( VkPhysicalDeviceShadingRateImageFeaturesNV const & rhs )
  35303. {
  35304. *reinterpret_cast<VkPhysicalDeviceShadingRateImageFeaturesNV*>(this) = rhs;
  35305. return *this;
  35306. }
  35307. PhysicalDeviceShadingRateImageFeaturesNV & setPNext( void* pNext_ )
  35308. {
  35309. pNext = pNext_;
  35310. return *this;
  35311. }
  35312. PhysicalDeviceShadingRateImageFeaturesNV & setShadingRateImage( Bool32 shadingRateImage_ )
  35313. {
  35314. shadingRateImage = shadingRateImage_;
  35315. return *this;
  35316. }
  35317. PhysicalDeviceShadingRateImageFeaturesNV & setShadingRateCoarseSampleOrder( Bool32 shadingRateCoarseSampleOrder_ )
  35318. {
  35319. shadingRateCoarseSampleOrder = shadingRateCoarseSampleOrder_;
  35320. return *this;
  35321. }
  35322. operator VkPhysicalDeviceShadingRateImageFeaturesNV const&() const
  35323. {
  35324. return *reinterpret_cast<const VkPhysicalDeviceShadingRateImageFeaturesNV*>( this );
  35325. }
  35326. operator VkPhysicalDeviceShadingRateImageFeaturesNV &()
  35327. {
  35328. return *reinterpret_cast<VkPhysicalDeviceShadingRateImageFeaturesNV*>( this );
  35329. }
  35330. bool operator==( PhysicalDeviceShadingRateImageFeaturesNV const& rhs ) const
  35331. {
  35332. return ( sType == rhs.sType )
  35333. && ( pNext == rhs.pNext )
  35334. && ( shadingRateImage == rhs.shadingRateImage )
  35335. && ( shadingRateCoarseSampleOrder == rhs.shadingRateCoarseSampleOrder );
  35336. }
  35337. bool operator!=( PhysicalDeviceShadingRateImageFeaturesNV const& rhs ) const
  35338. {
  35339. return !operator==( rhs );
  35340. }
  35341. private:
  35342. StructureType sType = StructureType::ePhysicalDeviceShadingRateImageFeaturesNV;
  35343. public:
  35344. void* pNext = nullptr;
  35345. Bool32 shadingRateImage;
  35346. Bool32 shadingRateCoarseSampleOrder;
  35347. };
  35348. static_assert( sizeof( PhysicalDeviceShadingRateImageFeaturesNV ) == sizeof( VkPhysicalDeviceShadingRateImageFeaturesNV ), "struct and wrapper have different size!" );
  35349. struct PhysicalDeviceShadingRateImagePropertiesNV
  35350. {
  35351. operator VkPhysicalDeviceShadingRateImagePropertiesNV const&() const
  35352. {
  35353. return *reinterpret_cast<const VkPhysicalDeviceShadingRateImagePropertiesNV*>( this );
  35354. }
  35355. operator VkPhysicalDeviceShadingRateImagePropertiesNV &()
  35356. {
  35357. return *reinterpret_cast<VkPhysicalDeviceShadingRateImagePropertiesNV*>( this );
  35358. }
  35359. bool operator==( PhysicalDeviceShadingRateImagePropertiesNV const& rhs ) const
  35360. {
  35361. return ( sType == rhs.sType )
  35362. && ( pNext == rhs.pNext )
  35363. && ( shadingRateTexelSize == rhs.shadingRateTexelSize )
  35364. && ( shadingRatePaletteSize == rhs.shadingRatePaletteSize )
  35365. && ( shadingRateMaxCoarseSamples == rhs.shadingRateMaxCoarseSamples );
  35366. }
  35367. bool operator!=( PhysicalDeviceShadingRateImagePropertiesNV const& rhs ) const
  35368. {
  35369. return !operator==( rhs );
  35370. }
  35371. private:
  35372. StructureType sType = StructureType::ePhysicalDeviceShadingRateImagePropertiesNV;
  35373. public:
  35374. void* pNext = nullptr;
  35375. Extent2D shadingRateTexelSize;
  35376. uint32_t shadingRatePaletteSize;
  35377. uint32_t shadingRateMaxCoarseSamples;
  35378. };
  35379. static_assert( sizeof( PhysicalDeviceShadingRateImagePropertiesNV ) == sizeof( VkPhysicalDeviceShadingRateImagePropertiesNV ), "struct and wrapper have different size!" );
  35380. struct PhysicalDeviceSparseImageFormatInfo2
  35381. {
  35382. PhysicalDeviceSparseImageFormatInfo2( Format format_ = Format::eUndefined,
  35383. ImageType type_ = ImageType::e1D,
  35384. SampleCountFlagBits samples_ = SampleCountFlagBits::e1,
  35385. ImageUsageFlags usage_ = ImageUsageFlags(),
  35386. ImageTiling tiling_ = ImageTiling::eOptimal )
  35387. : format( format_ )
  35388. , type( type_ )
  35389. , samples( samples_ )
  35390. , usage( usage_ )
  35391. , tiling( tiling_ )
  35392. {}
  35393. PhysicalDeviceSparseImageFormatInfo2( VkPhysicalDeviceSparseImageFormatInfo2 const & rhs )
  35394. {
  35395. *reinterpret_cast<VkPhysicalDeviceSparseImageFormatInfo2*>(this) = rhs;
  35396. }
  35397. PhysicalDeviceSparseImageFormatInfo2& operator=( VkPhysicalDeviceSparseImageFormatInfo2 const & rhs )
  35398. {
  35399. *reinterpret_cast<VkPhysicalDeviceSparseImageFormatInfo2*>(this) = rhs;
  35400. return *this;
  35401. }
  35402. PhysicalDeviceSparseImageFormatInfo2 & setPNext( const void* pNext_ )
  35403. {
  35404. pNext = pNext_;
  35405. return *this;
  35406. }
  35407. PhysicalDeviceSparseImageFormatInfo2 & setFormat( Format format_ )
  35408. {
  35409. format = format_;
  35410. return *this;
  35411. }
  35412. PhysicalDeviceSparseImageFormatInfo2 & setType( ImageType type_ )
  35413. {
  35414. type = type_;
  35415. return *this;
  35416. }
  35417. PhysicalDeviceSparseImageFormatInfo2 & setSamples( SampleCountFlagBits samples_ )
  35418. {
  35419. samples = samples_;
  35420. return *this;
  35421. }
  35422. PhysicalDeviceSparseImageFormatInfo2 & setUsage( ImageUsageFlags usage_ )
  35423. {
  35424. usage = usage_;
  35425. return *this;
  35426. }
  35427. PhysicalDeviceSparseImageFormatInfo2 & setTiling( ImageTiling tiling_ )
  35428. {
  35429. tiling = tiling_;
  35430. return *this;
  35431. }
  35432. operator VkPhysicalDeviceSparseImageFormatInfo2 const&() const
  35433. {
  35434. return *reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2*>( this );
  35435. }
  35436. operator VkPhysicalDeviceSparseImageFormatInfo2 &()
  35437. {
  35438. return *reinterpret_cast<VkPhysicalDeviceSparseImageFormatInfo2*>( this );
  35439. }
  35440. bool operator==( PhysicalDeviceSparseImageFormatInfo2 const& rhs ) const
  35441. {
  35442. return ( sType == rhs.sType )
  35443. && ( pNext == rhs.pNext )
  35444. && ( format == rhs.format )
  35445. && ( type == rhs.type )
  35446. && ( samples == rhs.samples )
  35447. && ( usage == rhs.usage )
  35448. && ( tiling == rhs.tiling );
  35449. }
  35450. bool operator!=( PhysicalDeviceSparseImageFormatInfo2 const& rhs ) const
  35451. {
  35452. return !operator==( rhs );
  35453. }
  35454. private:
  35455. StructureType sType = StructureType::ePhysicalDeviceSparseImageFormatInfo2;
  35456. public:
  35457. const void* pNext = nullptr;
  35458. Format format;
  35459. ImageType type;
  35460. SampleCountFlagBits samples;
  35461. ImageUsageFlags usage;
  35462. ImageTiling tiling;
  35463. };
  35464. static_assert( sizeof( PhysicalDeviceSparseImageFormatInfo2 ) == sizeof( VkPhysicalDeviceSparseImageFormatInfo2 ), "struct and wrapper have different size!" );
  35465. struct PhysicalDeviceSubgroupProperties
  35466. {
  35467. operator VkPhysicalDeviceSubgroupProperties const&() const
  35468. {
  35469. return *reinterpret_cast<const VkPhysicalDeviceSubgroupProperties*>( this );
  35470. }
  35471. operator VkPhysicalDeviceSubgroupProperties &()
  35472. {
  35473. return *reinterpret_cast<VkPhysicalDeviceSubgroupProperties*>( this );
  35474. }
  35475. bool operator==( PhysicalDeviceSubgroupProperties const& rhs ) const
  35476. {
  35477. return ( sType == rhs.sType )
  35478. && ( pNext == rhs.pNext )
  35479. && ( subgroupSize == rhs.subgroupSize )
  35480. && ( supportedStages == rhs.supportedStages )
  35481. && ( supportedOperations == rhs.supportedOperations )
  35482. && ( quadOperationsInAllStages == rhs.quadOperationsInAllStages );
  35483. }
  35484. bool operator!=( PhysicalDeviceSubgroupProperties const& rhs ) const
  35485. {
  35486. return !operator==( rhs );
  35487. }
  35488. private:
  35489. StructureType sType = StructureType::ePhysicalDeviceSubgroupProperties;
  35490. public:
  35491. void* pNext = nullptr;
  35492. uint32_t subgroupSize;
  35493. ShaderStageFlags supportedStages;
  35494. SubgroupFeatureFlags supportedOperations;
  35495. Bool32 quadOperationsInAllStages;
  35496. };
  35497. static_assert( sizeof( PhysicalDeviceSubgroupProperties ) == sizeof( VkPhysicalDeviceSubgroupProperties ), "struct and wrapper have different size!" );
  35498. struct PhysicalDeviceSurfaceInfo2KHR
  35499. {
  35500. PhysicalDeviceSurfaceInfo2KHR( SurfaceKHR surface_ = SurfaceKHR() )
  35501. : surface( surface_ )
  35502. {}
  35503. PhysicalDeviceSurfaceInfo2KHR( VkPhysicalDeviceSurfaceInfo2KHR const & rhs )
  35504. {
  35505. *reinterpret_cast<VkPhysicalDeviceSurfaceInfo2KHR*>(this) = rhs;
  35506. }
  35507. PhysicalDeviceSurfaceInfo2KHR& operator=( VkPhysicalDeviceSurfaceInfo2KHR const & rhs )
  35508. {
  35509. *reinterpret_cast<VkPhysicalDeviceSurfaceInfo2KHR*>(this) = rhs;
  35510. return *this;
  35511. }
  35512. PhysicalDeviceSurfaceInfo2KHR & setPNext( const void* pNext_ )
  35513. {
  35514. pNext = pNext_;
  35515. return *this;
  35516. }
  35517. PhysicalDeviceSurfaceInfo2KHR & setSurface( SurfaceKHR surface_ )
  35518. {
  35519. surface = surface_;
  35520. return *this;
  35521. }
  35522. operator VkPhysicalDeviceSurfaceInfo2KHR const&() const
  35523. {
  35524. return *reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( this );
  35525. }
  35526. operator VkPhysicalDeviceSurfaceInfo2KHR &()
  35527. {
  35528. return *reinterpret_cast<VkPhysicalDeviceSurfaceInfo2KHR*>( this );
  35529. }
  35530. bool operator==( PhysicalDeviceSurfaceInfo2KHR const& rhs ) const
  35531. {
  35532. return ( sType == rhs.sType )
  35533. && ( pNext == rhs.pNext )
  35534. && ( surface == rhs.surface );
  35535. }
  35536. bool operator!=( PhysicalDeviceSurfaceInfo2KHR const& rhs ) const
  35537. {
  35538. return !operator==( rhs );
  35539. }
  35540. private:
  35541. StructureType sType = StructureType::ePhysicalDeviceSurfaceInfo2KHR;
  35542. public:
  35543. const void* pNext = nullptr;
  35544. SurfaceKHR surface;
  35545. };
  35546. static_assert( sizeof( PhysicalDeviceSurfaceInfo2KHR ) == sizeof( VkPhysicalDeviceSurfaceInfo2KHR ), "struct and wrapper have different size!" );
  35547. struct PhysicalDeviceTexelBufferAlignmentFeaturesEXT
  35548. {
  35549. PhysicalDeviceTexelBufferAlignmentFeaturesEXT( Bool32 texelBufferAlignment_ = 0 )
  35550. : texelBufferAlignment( texelBufferAlignment_ )
  35551. {}
  35552. PhysicalDeviceTexelBufferAlignmentFeaturesEXT( VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs )
  35553. {
  35554. *reinterpret_cast<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*>(this) = rhs;
  35555. }
  35556. PhysicalDeviceTexelBufferAlignmentFeaturesEXT& operator=( VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs )
  35557. {
  35558. *reinterpret_cast<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*>(this) = rhs;
  35559. return *this;
  35560. }
  35561. PhysicalDeviceTexelBufferAlignmentFeaturesEXT & setPNext( void* pNext_ )
  35562. {
  35563. pNext = pNext_;
  35564. return *this;
  35565. }
  35566. PhysicalDeviceTexelBufferAlignmentFeaturesEXT & setTexelBufferAlignment( Bool32 texelBufferAlignment_ )
  35567. {
  35568. texelBufferAlignment = texelBufferAlignment_;
  35569. return *this;
  35570. }
  35571. operator VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const&() const
  35572. {
  35573. return *reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*>( this );
  35574. }
  35575. operator VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT &()
  35576. {
  35577. return *reinterpret_cast<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*>( this );
  35578. }
  35579. bool operator==( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const& rhs ) const
  35580. {
  35581. return ( sType == rhs.sType )
  35582. && ( pNext == rhs.pNext )
  35583. && ( texelBufferAlignment == rhs.texelBufferAlignment );
  35584. }
  35585. bool operator!=( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const& rhs ) const
  35586. {
  35587. return !operator==( rhs );
  35588. }
  35589. private:
  35590. StructureType sType = StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT;
  35591. public:
  35592. void* pNext = nullptr;
  35593. Bool32 texelBufferAlignment;
  35594. };
  35595. static_assert( sizeof( PhysicalDeviceTexelBufferAlignmentFeaturesEXT ) == sizeof( VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT ), "struct and wrapper have different size!" );
  35596. struct PhysicalDeviceTexelBufferAlignmentPropertiesEXT
  35597. {
  35598. operator VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT const&() const
  35599. {
  35600. return *reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT*>( this );
  35601. }
  35602. operator VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT &()
  35603. {
  35604. return *reinterpret_cast<VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT*>( this );
  35605. }
  35606. bool operator==( PhysicalDeviceTexelBufferAlignmentPropertiesEXT const& rhs ) const
  35607. {
  35608. return ( sType == rhs.sType )
  35609. && ( pNext == rhs.pNext )
  35610. && ( storageTexelBufferOffsetAlignmentBytes == rhs.storageTexelBufferOffsetAlignmentBytes )
  35611. && ( storageTexelBufferOffsetSingleTexelAlignment == rhs.storageTexelBufferOffsetSingleTexelAlignment )
  35612. && ( uniformTexelBufferOffsetAlignmentBytes == rhs.uniformTexelBufferOffsetAlignmentBytes )
  35613. && ( uniformTexelBufferOffsetSingleTexelAlignment == rhs.uniformTexelBufferOffsetSingleTexelAlignment );
  35614. }
  35615. bool operator!=( PhysicalDeviceTexelBufferAlignmentPropertiesEXT const& rhs ) const
  35616. {
  35617. return !operator==( rhs );
  35618. }
  35619. private:
  35620. StructureType sType = StructureType::ePhysicalDeviceTexelBufferAlignmentPropertiesEXT;
  35621. public:
  35622. void* pNext = nullptr;
  35623. DeviceSize storageTexelBufferOffsetAlignmentBytes;
  35624. Bool32 storageTexelBufferOffsetSingleTexelAlignment;
  35625. DeviceSize uniformTexelBufferOffsetAlignmentBytes;
  35626. Bool32 uniformTexelBufferOffsetSingleTexelAlignment;
  35627. };
  35628. static_assert( sizeof( PhysicalDeviceTexelBufferAlignmentPropertiesEXT ) == sizeof( VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT ), "struct and wrapper have different size!" );
  35629. struct PhysicalDeviceTransformFeedbackFeaturesEXT
  35630. {
  35631. PhysicalDeviceTransformFeedbackFeaturesEXT( Bool32 transformFeedback_ = 0,
  35632. Bool32 geometryStreams_ = 0 )
  35633. : transformFeedback( transformFeedback_ )
  35634. , geometryStreams( geometryStreams_ )
  35635. {}
  35636. PhysicalDeviceTransformFeedbackFeaturesEXT( VkPhysicalDeviceTransformFeedbackFeaturesEXT const & rhs )
  35637. {
  35638. *reinterpret_cast<VkPhysicalDeviceTransformFeedbackFeaturesEXT*>(this) = rhs;
  35639. }
  35640. PhysicalDeviceTransformFeedbackFeaturesEXT& operator=( VkPhysicalDeviceTransformFeedbackFeaturesEXT const & rhs )
  35641. {
  35642. *reinterpret_cast<VkPhysicalDeviceTransformFeedbackFeaturesEXT*>(this) = rhs;
  35643. return *this;
  35644. }
  35645. PhysicalDeviceTransformFeedbackFeaturesEXT & setPNext( void* pNext_ )
  35646. {
  35647. pNext = pNext_;
  35648. return *this;
  35649. }
  35650. PhysicalDeviceTransformFeedbackFeaturesEXT & setTransformFeedback( Bool32 transformFeedback_ )
  35651. {
  35652. transformFeedback = transformFeedback_;
  35653. return *this;
  35654. }
  35655. PhysicalDeviceTransformFeedbackFeaturesEXT & setGeometryStreams( Bool32 geometryStreams_ )
  35656. {
  35657. geometryStreams = geometryStreams_;
  35658. return *this;
  35659. }
  35660. operator VkPhysicalDeviceTransformFeedbackFeaturesEXT const&() const
  35661. {
  35662. return *reinterpret_cast<const VkPhysicalDeviceTransformFeedbackFeaturesEXT*>( this );
  35663. }
  35664. operator VkPhysicalDeviceTransformFeedbackFeaturesEXT &()
  35665. {
  35666. return *reinterpret_cast<VkPhysicalDeviceTransformFeedbackFeaturesEXT*>( this );
  35667. }
  35668. bool operator==( PhysicalDeviceTransformFeedbackFeaturesEXT const& rhs ) const
  35669. {
  35670. return ( sType == rhs.sType )
  35671. && ( pNext == rhs.pNext )
  35672. && ( transformFeedback == rhs.transformFeedback )
  35673. && ( geometryStreams == rhs.geometryStreams );
  35674. }
  35675. bool operator!=( PhysicalDeviceTransformFeedbackFeaturesEXT const& rhs ) const
  35676. {
  35677. return !operator==( rhs );
  35678. }
  35679. private:
  35680. StructureType sType = StructureType::ePhysicalDeviceTransformFeedbackFeaturesEXT;
  35681. public:
  35682. void* pNext = nullptr;
  35683. Bool32 transformFeedback;
  35684. Bool32 geometryStreams;
  35685. };
  35686. static_assert( sizeof( PhysicalDeviceTransformFeedbackFeaturesEXT ) == sizeof( VkPhysicalDeviceTransformFeedbackFeaturesEXT ), "struct and wrapper have different size!" );
  35687. struct PhysicalDeviceTransformFeedbackPropertiesEXT
  35688. {
  35689. operator VkPhysicalDeviceTransformFeedbackPropertiesEXT const&() const
  35690. {
  35691. return *reinterpret_cast<const VkPhysicalDeviceTransformFeedbackPropertiesEXT*>( this );
  35692. }
  35693. operator VkPhysicalDeviceTransformFeedbackPropertiesEXT &()
  35694. {
  35695. return *reinterpret_cast<VkPhysicalDeviceTransformFeedbackPropertiesEXT*>( this );
  35696. }
  35697. bool operator==( PhysicalDeviceTransformFeedbackPropertiesEXT const& rhs ) const
  35698. {
  35699. return ( sType == rhs.sType )
  35700. && ( pNext == rhs.pNext )
  35701. && ( maxTransformFeedbackStreams == rhs.maxTransformFeedbackStreams )
  35702. && ( maxTransformFeedbackBuffers == rhs.maxTransformFeedbackBuffers )
  35703. && ( maxTransformFeedbackBufferSize == rhs.maxTransformFeedbackBufferSize )
  35704. && ( maxTransformFeedbackStreamDataSize == rhs.maxTransformFeedbackStreamDataSize )
  35705. && ( maxTransformFeedbackBufferDataSize == rhs.maxTransformFeedbackBufferDataSize )
  35706. && ( maxTransformFeedbackBufferDataStride == rhs.maxTransformFeedbackBufferDataStride )
  35707. && ( transformFeedbackQueries == rhs.transformFeedbackQueries )
  35708. && ( transformFeedbackStreamsLinesTriangles == rhs.transformFeedbackStreamsLinesTriangles )
  35709. && ( transformFeedbackRasterizationStreamSelect == rhs.transformFeedbackRasterizationStreamSelect )
  35710. && ( transformFeedbackDraw == rhs.transformFeedbackDraw );
  35711. }
  35712. bool operator!=( PhysicalDeviceTransformFeedbackPropertiesEXT const& rhs ) const
  35713. {
  35714. return !operator==( rhs );
  35715. }
  35716. private:
  35717. StructureType sType = StructureType::ePhysicalDeviceTransformFeedbackPropertiesEXT;
  35718. public:
  35719. void* pNext = nullptr;
  35720. uint32_t maxTransformFeedbackStreams;
  35721. uint32_t maxTransformFeedbackBuffers;
  35722. DeviceSize maxTransformFeedbackBufferSize;
  35723. uint32_t maxTransformFeedbackStreamDataSize;
  35724. uint32_t maxTransformFeedbackBufferDataSize;
  35725. uint32_t maxTransformFeedbackBufferDataStride;
  35726. Bool32 transformFeedbackQueries;
  35727. Bool32 transformFeedbackStreamsLinesTriangles;
  35728. Bool32 transformFeedbackRasterizationStreamSelect;
  35729. Bool32 transformFeedbackDraw;
  35730. };
  35731. static_assert( sizeof( PhysicalDeviceTransformFeedbackPropertiesEXT ) == sizeof( VkPhysicalDeviceTransformFeedbackPropertiesEXT ), "struct and wrapper have different size!" );
  35732. struct PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR
  35733. {
  35734. PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR( Bool32 uniformBufferStandardLayout_ = 0 )
  35735. : uniformBufferStandardLayout( uniformBufferStandardLayout_ )
  35736. {}
  35737. PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR( VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR const & rhs )
  35738. {
  35739. *reinterpret_cast<VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR*>(this) = rhs;
  35740. }
  35741. PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR& operator=( VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR const & rhs )
  35742. {
  35743. *reinterpret_cast<VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR*>(this) = rhs;
  35744. return *this;
  35745. }
  35746. PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR & setPNext( void* pNext_ )
  35747. {
  35748. pNext = pNext_;
  35749. return *this;
  35750. }
  35751. PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR & setUniformBufferStandardLayout( Bool32 uniformBufferStandardLayout_ )
  35752. {
  35753. uniformBufferStandardLayout = uniformBufferStandardLayout_;
  35754. return *this;
  35755. }
  35756. operator VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR const&() const
  35757. {
  35758. return *reinterpret_cast<const VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR*>( this );
  35759. }
  35760. operator VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR &()
  35761. {
  35762. return *reinterpret_cast<VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR*>( this );
  35763. }
  35764. bool operator==( PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR const& rhs ) const
  35765. {
  35766. return ( sType == rhs.sType )
  35767. && ( pNext == rhs.pNext )
  35768. && ( uniformBufferStandardLayout == rhs.uniformBufferStandardLayout );
  35769. }
  35770. bool operator!=( PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR const& rhs ) const
  35771. {
  35772. return !operator==( rhs );
  35773. }
  35774. private:
  35775. StructureType sType = StructureType::ePhysicalDeviceUniformBufferStandardLayoutFeaturesKHR;
  35776. public:
  35777. void* pNext = nullptr;
  35778. Bool32 uniformBufferStandardLayout;
  35779. };
  35780. static_assert( sizeof( PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR ) == sizeof( VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR ), "struct and wrapper have different size!" );
  35781. struct PhysicalDeviceVariablePointersFeatures
  35782. {
  35783. PhysicalDeviceVariablePointersFeatures( Bool32 variablePointersStorageBuffer_ = 0,
  35784. Bool32 variablePointers_ = 0 )
  35785. : variablePointersStorageBuffer( variablePointersStorageBuffer_ )
  35786. , variablePointers( variablePointers_ )
  35787. {}
  35788. PhysicalDeviceVariablePointersFeatures( VkPhysicalDeviceVariablePointersFeatures const & rhs )
  35789. {
  35790. *reinterpret_cast<VkPhysicalDeviceVariablePointersFeatures*>(this) = rhs;
  35791. }
  35792. PhysicalDeviceVariablePointersFeatures& operator=( VkPhysicalDeviceVariablePointersFeatures const & rhs )
  35793. {
  35794. *reinterpret_cast<VkPhysicalDeviceVariablePointersFeatures*>(this) = rhs;
  35795. return *this;
  35796. }
  35797. PhysicalDeviceVariablePointersFeatures & setPNext( void* pNext_ )
  35798. {
  35799. pNext = pNext_;
  35800. return *this;
  35801. }
  35802. PhysicalDeviceVariablePointersFeatures & setVariablePointersStorageBuffer( Bool32 variablePointersStorageBuffer_ )
  35803. {
  35804. variablePointersStorageBuffer = variablePointersStorageBuffer_;
  35805. return *this;
  35806. }
  35807. PhysicalDeviceVariablePointersFeatures & setVariablePointers( Bool32 variablePointers_ )
  35808. {
  35809. variablePointers = variablePointers_;
  35810. return *this;
  35811. }
  35812. operator VkPhysicalDeviceVariablePointersFeatures const&() const
  35813. {
  35814. return *reinterpret_cast<const VkPhysicalDeviceVariablePointersFeatures*>( this );
  35815. }
  35816. operator VkPhysicalDeviceVariablePointersFeatures &()
  35817. {
  35818. return *reinterpret_cast<VkPhysicalDeviceVariablePointersFeatures*>( this );
  35819. }
  35820. bool operator==( PhysicalDeviceVariablePointersFeatures const& rhs ) const
  35821. {
  35822. return ( sType == rhs.sType )
  35823. && ( pNext == rhs.pNext )
  35824. && ( variablePointersStorageBuffer == rhs.variablePointersStorageBuffer )
  35825. && ( variablePointers == rhs.variablePointers );
  35826. }
  35827. bool operator!=( PhysicalDeviceVariablePointersFeatures const& rhs ) const
  35828. {
  35829. return !operator==( rhs );
  35830. }
  35831. private:
  35832. StructureType sType = StructureType::ePhysicalDeviceVariablePointersFeatures;
  35833. public:
  35834. void* pNext = nullptr;
  35835. Bool32 variablePointersStorageBuffer;
  35836. Bool32 variablePointers;
  35837. };
  35838. static_assert( sizeof( PhysicalDeviceVariablePointersFeatures ) == sizeof( VkPhysicalDeviceVariablePointersFeatures ), "struct and wrapper have different size!" );
  35839. struct PhysicalDeviceVertexAttributeDivisorFeaturesEXT
  35840. {
  35841. PhysicalDeviceVertexAttributeDivisorFeaturesEXT( Bool32 vertexAttributeInstanceRateDivisor_ = 0,
  35842. Bool32 vertexAttributeInstanceRateZeroDivisor_ = 0 )
  35843. : vertexAttributeInstanceRateDivisor( vertexAttributeInstanceRateDivisor_ )
  35844. , vertexAttributeInstanceRateZeroDivisor( vertexAttributeInstanceRateZeroDivisor_ )
  35845. {}
  35846. PhysicalDeviceVertexAttributeDivisorFeaturesEXT( VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs )
  35847. {
  35848. *reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT*>(this) = rhs;
  35849. }
  35850. PhysicalDeviceVertexAttributeDivisorFeaturesEXT& operator=( VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs )
  35851. {
  35852. *reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT*>(this) = rhs;
  35853. return *this;
  35854. }
  35855. PhysicalDeviceVertexAttributeDivisorFeaturesEXT & setPNext( void* pNext_ )
  35856. {
  35857. pNext = pNext_;
  35858. return *this;
  35859. }
  35860. PhysicalDeviceVertexAttributeDivisorFeaturesEXT & setVertexAttributeInstanceRateDivisor( Bool32 vertexAttributeInstanceRateDivisor_ )
  35861. {
  35862. vertexAttributeInstanceRateDivisor = vertexAttributeInstanceRateDivisor_;
  35863. return *this;
  35864. }
  35865. PhysicalDeviceVertexAttributeDivisorFeaturesEXT & setVertexAttributeInstanceRateZeroDivisor( Bool32 vertexAttributeInstanceRateZeroDivisor_ )
  35866. {
  35867. vertexAttributeInstanceRateZeroDivisor = vertexAttributeInstanceRateZeroDivisor_;
  35868. return *this;
  35869. }
  35870. operator VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const&() const
  35871. {
  35872. return *reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT*>( this );
  35873. }
  35874. operator VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT &()
  35875. {
  35876. return *reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT*>( this );
  35877. }
  35878. bool operator==( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const& rhs ) const
  35879. {
  35880. return ( sType == rhs.sType )
  35881. && ( pNext == rhs.pNext )
  35882. && ( vertexAttributeInstanceRateDivisor == rhs.vertexAttributeInstanceRateDivisor )
  35883. && ( vertexAttributeInstanceRateZeroDivisor == rhs.vertexAttributeInstanceRateZeroDivisor );
  35884. }
  35885. bool operator!=( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const& rhs ) const
  35886. {
  35887. return !operator==( rhs );
  35888. }
  35889. private:
  35890. StructureType sType = StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT;
  35891. public:
  35892. void* pNext = nullptr;
  35893. Bool32 vertexAttributeInstanceRateDivisor;
  35894. Bool32 vertexAttributeInstanceRateZeroDivisor;
  35895. };
  35896. static_assert( sizeof( PhysicalDeviceVertexAttributeDivisorFeaturesEXT ) == sizeof( VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT ), "struct and wrapper have different size!" );
  35897. struct PhysicalDeviceVertexAttributeDivisorPropertiesEXT
  35898. {
  35899. operator VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const&() const
  35900. {
  35901. return *reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT*>( this );
  35902. }
  35903. operator VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT &()
  35904. {
  35905. return *reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT*>( this );
  35906. }
  35907. bool operator==( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const& rhs ) const
  35908. {
  35909. return ( sType == rhs.sType )
  35910. && ( pNext == rhs.pNext )
  35911. && ( maxVertexAttribDivisor == rhs.maxVertexAttribDivisor );
  35912. }
  35913. bool operator!=( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const& rhs ) const
  35914. {
  35915. return !operator==( rhs );
  35916. }
  35917. private:
  35918. StructureType sType = StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT;
  35919. public:
  35920. void* pNext = nullptr;
  35921. uint32_t maxVertexAttribDivisor;
  35922. };
  35923. static_assert( sizeof( PhysicalDeviceVertexAttributeDivisorPropertiesEXT ) == sizeof( VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT ), "struct and wrapper have different size!" );
  35924. struct PhysicalDeviceVulkanMemoryModelFeaturesKHR
  35925. {
  35926. PhysicalDeviceVulkanMemoryModelFeaturesKHR( Bool32 vulkanMemoryModel_ = 0,
  35927. Bool32 vulkanMemoryModelDeviceScope_ = 0,
  35928. Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ = 0 )
  35929. : vulkanMemoryModel( vulkanMemoryModel_ )
  35930. , vulkanMemoryModelDeviceScope( vulkanMemoryModelDeviceScope_ )
  35931. , vulkanMemoryModelAvailabilityVisibilityChains( vulkanMemoryModelAvailabilityVisibilityChains_ )
  35932. {}
  35933. PhysicalDeviceVulkanMemoryModelFeaturesKHR( VkPhysicalDeviceVulkanMemoryModelFeaturesKHR const & rhs )
  35934. {
  35935. *reinterpret_cast<VkPhysicalDeviceVulkanMemoryModelFeaturesKHR*>(this) = rhs;
  35936. }
  35937. PhysicalDeviceVulkanMemoryModelFeaturesKHR& operator=( VkPhysicalDeviceVulkanMemoryModelFeaturesKHR const & rhs )
  35938. {
  35939. *reinterpret_cast<VkPhysicalDeviceVulkanMemoryModelFeaturesKHR*>(this) = rhs;
  35940. return *this;
  35941. }
  35942. PhysicalDeviceVulkanMemoryModelFeaturesKHR & setPNext( void* pNext_ )
  35943. {
  35944. pNext = pNext_;
  35945. return *this;
  35946. }
  35947. PhysicalDeviceVulkanMemoryModelFeaturesKHR & setVulkanMemoryModel( Bool32 vulkanMemoryModel_ )
  35948. {
  35949. vulkanMemoryModel = vulkanMemoryModel_;
  35950. return *this;
  35951. }
  35952. PhysicalDeviceVulkanMemoryModelFeaturesKHR & setVulkanMemoryModelDeviceScope( Bool32 vulkanMemoryModelDeviceScope_ )
  35953. {
  35954. vulkanMemoryModelDeviceScope = vulkanMemoryModelDeviceScope_;
  35955. return *this;
  35956. }
  35957. PhysicalDeviceVulkanMemoryModelFeaturesKHR & setVulkanMemoryModelAvailabilityVisibilityChains( Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ )
  35958. {
  35959. vulkanMemoryModelAvailabilityVisibilityChains = vulkanMemoryModelAvailabilityVisibilityChains_;
  35960. return *this;
  35961. }
  35962. operator VkPhysicalDeviceVulkanMemoryModelFeaturesKHR const&() const
  35963. {
  35964. return *reinterpret_cast<const VkPhysicalDeviceVulkanMemoryModelFeaturesKHR*>( this );
  35965. }
  35966. operator VkPhysicalDeviceVulkanMemoryModelFeaturesKHR &()
  35967. {
  35968. return *reinterpret_cast<VkPhysicalDeviceVulkanMemoryModelFeaturesKHR*>( this );
  35969. }
  35970. bool operator==( PhysicalDeviceVulkanMemoryModelFeaturesKHR const& rhs ) const
  35971. {
  35972. return ( sType == rhs.sType )
  35973. && ( pNext == rhs.pNext )
  35974. && ( vulkanMemoryModel == rhs.vulkanMemoryModel )
  35975. && ( vulkanMemoryModelDeviceScope == rhs.vulkanMemoryModelDeviceScope )
  35976. && ( vulkanMemoryModelAvailabilityVisibilityChains == rhs.vulkanMemoryModelAvailabilityVisibilityChains );
  35977. }
  35978. bool operator!=( PhysicalDeviceVulkanMemoryModelFeaturesKHR const& rhs ) const
  35979. {
  35980. return !operator==( rhs );
  35981. }
  35982. private:
  35983. StructureType sType = StructureType::ePhysicalDeviceVulkanMemoryModelFeaturesKHR;
  35984. public:
  35985. void* pNext = nullptr;
  35986. Bool32 vulkanMemoryModel;
  35987. Bool32 vulkanMemoryModelDeviceScope;
  35988. Bool32 vulkanMemoryModelAvailabilityVisibilityChains;
  35989. };
  35990. static_assert( sizeof( PhysicalDeviceVulkanMemoryModelFeaturesKHR ) == sizeof( VkPhysicalDeviceVulkanMemoryModelFeaturesKHR ), "struct and wrapper have different size!" );
  35991. struct PhysicalDeviceYcbcrImageArraysFeaturesEXT
  35992. {
  35993. PhysicalDeviceYcbcrImageArraysFeaturesEXT( Bool32 ycbcrImageArrays_ = 0 )
  35994. : ycbcrImageArrays( ycbcrImageArrays_ )
  35995. {}
  35996. PhysicalDeviceYcbcrImageArraysFeaturesEXT( VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs )
  35997. {
  35998. *reinterpret_cast<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT*>(this) = rhs;
  35999. }
  36000. PhysicalDeviceYcbcrImageArraysFeaturesEXT& operator=( VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs )
  36001. {
  36002. *reinterpret_cast<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT*>(this) = rhs;
  36003. return *this;
  36004. }
  36005. PhysicalDeviceYcbcrImageArraysFeaturesEXT & setPNext( void* pNext_ )
  36006. {
  36007. pNext = pNext_;
  36008. return *this;
  36009. }
  36010. PhysicalDeviceYcbcrImageArraysFeaturesEXT & setYcbcrImageArrays( Bool32 ycbcrImageArrays_ )
  36011. {
  36012. ycbcrImageArrays = ycbcrImageArrays_;
  36013. return *this;
  36014. }
  36015. operator VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const&() const
  36016. {
  36017. return *reinterpret_cast<const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT*>( this );
  36018. }
  36019. operator VkPhysicalDeviceYcbcrImageArraysFeaturesEXT &()
  36020. {
  36021. return *reinterpret_cast<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT*>( this );
  36022. }
  36023. bool operator==( PhysicalDeviceYcbcrImageArraysFeaturesEXT const& rhs ) const
  36024. {
  36025. return ( sType == rhs.sType )
  36026. && ( pNext == rhs.pNext )
  36027. && ( ycbcrImageArrays == rhs.ycbcrImageArrays );
  36028. }
  36029. bool operator!=( PhysicalDeviceYcbcrImageArraysFeaturesEXT const& rhs ) const
  36030. {
  36031. return !operator==( rhs );
  36032. }
  36033. private:
  36034. StructureType sType = StructureType::ePhysicalDeviceYcbcrImageArraysFeaturesEXT;
  36035. public:
  36036. void* pNext = nullptr;
  36037. Bool32 ycbcrImageArrays;
  36038. };
  36039. static_assert( sizeof( PhysicalDeviceYcbcrImageArraysFeaturesEXT ) == sizeof( VkPhysicalDeviceYcbcrImageArraysFeaturesEXT ), "struct and wrapper have different size!" );
  36040. struct PipelineCacheCreateInfo
  36041. {
  36042. PipelineCacheCreateInfo( PipelineCacheCreateFlags flags_ = PipelineCacheCreateFlags(),
  36043. size_t initialDataSize_ = 0,
  36044. const void* pInitialData_ = nullptr )
  36045. : flags( flags_ )
  36046. , initialDataSize( initialDataSize_ )
  36047. , pInitialData( pInitialData_ )
  36048. {}
  36049. PipelineCacheCreateInfo( VkPipelineCacheCreateInfo const & rhs )
  36050. {
  36051. *reinterpret_cast<VkPipelineCacheCreateInfo*>(this) = rhs;
  36052. }
  36053. PipelineCacheCreateInfo& operator=( VkPipelineCacheCreateInfo const & rhs )
  36054. {
  36055. *reinterpret_cast<VkPipelineCacheCreateInfo*>(this) = rhs;
  36056. return *this;
  36057. }
  36058. PipelineCacheCreateInfo & setPNext( const void* pNext_ )
  36059. {
  36060. pNext = pNext_;
  36061. return *this;
  36062. }
  36063. PipelineCacheCreateInfo & setFlags( PipelineCacheCreateFlags flags_ )
  36064. {
  36065. flags = flags_;
  36066. return *this;
  36067. }
  36068. PipelineCacheCreateInfo & setInitialDataSize( size_t initialDataSize_ )
  36069. {
  36070. initialDataSize = initialDataSize_;
  36071. return *this;
  36072. }
  36073. PipelineCacheCreateInfo & setPInitialData( const void* pInitialData_ )
  36074. {
  36075. pInitialData = pInitialData_;
  36076. return *this;
  36077. }
  36078. operator VkPipelineCacheCreateInfo const&() const
  36079. {
  36080. return *reinterpret_cast<const VkPipelineCacheCreateInfo*>( this );
  36081. }
  36082. operator VkPipelineCacheCreateInfo &()
  36083. {
  36084. return *reinterpret_cast<VkPipelineCacheCreateInfo*>( this );
  36085. }
  36086. bool operator==( PipelineCacheCreateInfo const& rhs ) const
  36087. {
  36088. return ( sType == rhs.sType )
  36089. && ( pNext == rhs.pNext )
  36090. && ( flags == rhs.flags )
  36091. && ( initialDataSize == rhs.initialDataSize )
  36092. && ( pInitialData == rhs.pInitialData );
  36093. }
  36094. bool operator!=( PipelineCacheCreateInfo const& rhs ) const
  36095. {
  36096. return !operator==( rhs );
  36097. }
  36098. private:
  36099. StructureType sType = StructureType::ePipelineCacheCreateInfo;
  36100. public:
  36101. const void* pNext = nullptr;
  36102. PipelineCacheCreateFlags flags;
  36103. size_t initialDataSize;
  36104. const void* pInitialData;
  36105. };
  36106. static_assert( sizeof( PipelineCacheCreateInfo ) == sizeof( VkPipelineCacheCreateInfo ), "struct and wrapper have different size!" );
  36107. struct PipelineColorBlendAdvancedStateCreateInfoEXT
  36108. {
  36109. PipelineColorBlendAdvancedStateCreateInfoEXT( Bool32 srcPremultiplied_ = 0,
  36110. Bool32 dstPremultiplied_ = 0,
  36111. BlendOverlapEXT blendOverlap_ = BlendOverlapEXT::eUncorrelated )
  36112. : srcPremultiplied( srcPremultiplied_ )
  36113. , dstPremultiplied( dstPremultiplied_ )
  36114. , blendOverlap( blendOverlap_ )
  36115. {}
  36116. PipelineColorBlendAdvancedStateCreateInfoEXT( VkPipelineColorBlendAdvancedStateCreateInfoEXT const & rhs )
  36117. {
  36118. *reinterpret_cast<VkPipelineColorBlendAdvancedStateCreateInfoEXT*>(this) = rhs;
  36119. }
  36120. PipelineColorBlendAdvancedStateCreateInfoEXT& operator=( VkPipelineColorBlendAdvancedStateCreateInfoEXT const & rhs )
  36121. {
  36122. *reinterpret_cast<VkPipelineColorBlendAdvancedStateCreateInfoEXT*>(this) = rhs;
  36123. return *this;
  36124. }
  36125. PipelineColorBlendAdvancedStateCreateInfoEXT & setPNext( const void* pNext_ )
  36126. {
  36127. pNext = pNext_;
  36128. return *this;
  36129. }
  36130. PipelineColorBlendAdvancedStateCreateInfoEXT & setSrcPremultiplied( Bool32 srcPremultiplied_ )
  36131. {
  36132. srcPremultiplied = srcPremultiplied_;
  36133. return *this;
  36134. }
  36135. PipelineColorBlendAdvancedStateCreateInfoEXT & setDstPremultiplied( Bool32 dstPremultiplied_ )
  36136. {
  36137. dstPremultiplied = dstPremultiplied_;
  36138. return *this;
  36139. }
  36140. PipelineColorBlendAdvancedStateCreateInfoEXT & setBlendOverlap( BlendOverlapEXT blendOverlap_ )
  36141. {
  36142. blendOverlap = blendOverlap_;
  36143. return *this;
  36144. }
  36145. operator VkPipelineColorBlendAdvancedStateCreateInfoEXT const&() const
  36146. {
  36147. return *reinterpret_cast<const VkPipelineColorBlendAdvancedStateCreateInfoEXT*>( this );
  36148. }
  36149. operator VkPipelineColorBlendAdvancedStateCreateInfoEXT &()
  36150. {
  36151. return *reinterpret_cast<VkPipelineColorBlendAdvancedStateCreateInfoEXT*>( this );
  36152. }
  36153. bool operator==( PipelineColorBlendAdvancedStateCreateInfoEXT const& rhs ) const
  36154. {
  36155. return ( sType == rhs.sType )
  36156. && ( pNext == rhs.pNext )
  36157. && ( srcPremultiplied == rhs.srcPremultiplied )
  36158. && ( dstPremultiplied == rhs.dstPremultiplied )
  36159. && ( blendOverlap == rhs.blendOverlap );
  36160. }
  36161. bool operator!=( PipelineColorBlendAdvancedStateCreateInfoEXT const& rhs ) const
  36162. {
  36163. return !operator==( rhs );
  36164. }
  36165. private:
  36166. StructureType sType = StructureType::ePipelineColorBlendAdvancedStateCreateInfoEXT;
  36167. public:
  36168. const void* pNext = nullptr;
  36169. Bool32 srcPremultiplied;
  36170. Bool32 dstPremultiplied;
  36171. BlendOverlapEXT blendOverlap;
  36172. };
  36173. static_assert( sizeof( PipelineColorBlendAdvancedStateCreateInfoEXT ) == sizeof( VkPipelineColorBlendAdvancedStateCreateInfoEXT ), "struct and wrapper have different size!" );
  36174. struct PipelineCoverageModulationStateCreateInfoNV
  36175. {
  36176. PipelineCoverageModulationStateCreateInfoNV( PipelineCoverageModulationStateCreateFlagsNV flags_ = PipelineCoverageModulationStateCreateFlagsNV(),
  36177. CoverageModulationModeNV coverageModulationMode_ = CoverageModulationModeNV::eNone,
  36178. Bool32 coverageModulationTableEnable_ = 0,
  36179. uint32_t coverageModulationTableCount_ = 0,
  36180. const float* pCoverageModulationTable_ = nullptr )
  36181. : flags( flags_ )
  36182. , coverageModulationMode( coverageModulationMode_ )
  36183. , coverageModulationTableEnable( coverageModulationTableEnable_ )
  36184. , coverageModulationTableCount( coverageModulationTableCount_ )
  36185. , pCoverageModulationTable( pCoverageModulationTable_ )
  36186. {}
  36187. PipelineCoverageModulationStateCreateInfoNV( VkPipelineCoverageModulationStateCreateInfoNV const & rhs )
  36188. {
  36189. *reinterpret_cast<VkPipelineCoverageModulationStateCreateInfoNV*>(this) = rhs;
  36190. }
  36191. PipelineCoverageModulationStateCreateInfoNV& operator=( VkPipelineCoverageModulationStateCreateInfoNV const & rhs )
  36192. {
  36193. *reinterpret_cast<VkPipelineCoverageModulationStateCreateInfoNV*>(this) = rhs;
  36194. return *this;
  36195. }
  36196. PipelineCoverageModulationStateCreateInfoNV & setPNext( const void* pNext_ )
  36197. {
  36198. pNext = pNext_;
  36199. return *this;
  36200. }
  36201. PipelineCoverageModulationStateCreateInfoNV & setFlags( PipelineCoverageModulationStateCreateFlagsNV flags_ )
  36202. {
  36203. flags = flags_;
  36204. return *this;
  36205. }
  36206. PipelineCoverageModulationStateCreateInfoNV & setCoverageModulationMode( CoverageModulationModeNV coverageModulationMode_ )
  36207. {
  36208. coverageModulationMode = coverageModulationMode_;
  36209. return *this;
  36210. }
  36211. PipelineCoverageModulationStateCreateInfoNV & setCoverageModulationTableEnable( Bool32 coverageModulationTableEnable_ )
  36212. {
  36213. coverageModulationTableEnable = coverageModulationTableEnable_;
  36214. return *this;
  36215. }
  36216. PipelineCoverageModulationStateCreateInfoNV & setCoverageModulationTableCount( uint32_t coverageModulationTableCount_ )
  36217. {
  36218. coverageModulationTableCount = coverageModulationTableCount_;
  36219. return *this;
  36220. }
  36221. PipelineCoverageModulationStateCreateInfoNV & setPCoverageModulationTable( const float* pCoverageModulationTable_ )
  36222. {
  36223. pCoverageModulationTable = pCoverageModulationTable_;
  36224. return *this;
  36225. }
  36226. operator VkPipelineCoverageModulationStateCreateInfoNV const&() const
  36227. {
  36228. return *reinterpret_cast<const VkPipelineCoverageModulationStateCreateInfoNV*>( this );
  36229. }
  36230. operator VkPipelineCoverageModulationStateCreateInfoNV &()
  36231. {
  36232. return *reinterpret_cast<VkPipelineCoverageModulationStateCreateInfoNV*>( this );
  36233. }
  36234. bool operator==( PipelineCoverageModulationStateCreateInfoNV const& rhs ) const
  36235. {
  36236. return ( sType == rhs.sType )
  36237. && ( pNext == rhs.pNext )
  36238. && ( flags == rhs.flags )
  36239. && ( coverageModulationMode == rhs.coverageModulationMode )
  36240. && ( coverageModulationTableEnable == rhs.coverageModulationTableEnable )
  36241. && ( coverageModulationTableCount == rhs.coverageModulationTableCount )
  36242. && ( pCoverageModulationTable == rhs.pCoverageModulationTable );
  36243. }
  36244. bool operator!=( PipelineCoverageModulationStateCreateInfoNV const& rhs ) const
  36245. {
  36246. return !operator==( rhs );
  36247. }
  36248. private:
  36249. StructureType sType = StructureType::ePipelineCoverageModulationStateCreateInfoNV;
  36250. public:
  36251. const void* pNext = nullptr;
  36252. PipelineCoverageModulationStateCreateFlagsNV flags;
  36253. CoverageModulationModeNV coverageModulationMode;
  36254. Bool32 coverageModulationTableEnable;
  36255. uint32_t coverageModulationTableCount;
  36256. const float* pCoverageModulationTable;
  36257. };
  36258. static_assert( sizeof( PipelineCoverageModulationStateCreateInfoNV ) == sizeof( VkPipelineCoverageModulationStateCreateInfoNV ), "struct and wrapper have different size!" );
  36259. struct PipelineCoverageReductionStateCreateInfoNV
  36260. {
  36261. PipelineCoverageReductionStateCreateInfoNV( PipelineCoverageReductionStateCreateFlagsNV flags_ = PipelineCoverageReductionStateCreateFlagsNV(),
  36262. CoverageReductionModeNV coverageReductionMode_ = CoverageReductionModeNV::eMerge )
  36263. : flags( flags_ )
  36264. , coverageReductionMode( coverageReductionMode_ )
  36265. {}
  36266. PipelineCoverageReductionStateCreateInfoNV( VkPipelineCoverageReductionStateCreateInfoNV const & rhs )
  36267. {
  36268. *reinterpret_cast<VkPipelineCoverageReductionStateCreateInfoNV*>(this) = rhs;
  36269. }
  36270. PipelineCoverageReductionStateCreateInfoNV& operator=( VkPipelineCoverageReductionStateCreateInfoNV const & rhs )
  36271. {
  36272. *reinterpret_cast<VkPipelineCoverageReductionStateCreateInfoNV*>(this) = rhs;
  36273. return *this;
  36274. }
  36275. PipelineCoverageReductionStateCreateInfoNV & setPNext( const void* pNext_ )
  36276. {
  36277. pNext = pNext_;
  36278. return *this;
  36279. }
  36280. PipelineCoverageReductionStateCreateInfoNV & setFlags( PipelineCoverageReductionStateCreateFlagsNV flags_ )
  36281. {
  36282. flags = flags_;
  36283. return *this;
  36284. }
  36285. PipelineCoverageReductionStateCreateInfoNV & setCoverageReductionMode( CoverageReductionModeNV coverageReductionMode_ )
  36286. {
  36287. coverageReductionMode = coverageReductionMode_;
  36288. return *this;
  36289. }
  36290. operator VkPipelineCoverageReductionStateCreateInfoNV const&() const
  36291. {
  36292. return *reinterpret_cast<const VkPipelineCoverageReductionStateCreateInfoNV*>( this );
  36293. }
  36294. operator VkPipelineCoverageReductionStateCreateInfoNV &()
  36295. {
  36296. return *reinterpret_cast<VkPipelineCoverageReductionStateCreateInfoNV*>( this );
  36297. }
  36298. bool operator==( PipelineCoverageReductionStateCreateInfoNV const& rhs ) const
  36299. {
  36300. return ( sType == rhs.sType )
  36301. && ( pNext == rhs.pNext )
  36302. && ( flags == rhs.flags )
  36303. && ( coverageReductionMode == rhs.coverageReductionMode );
  36304. }
  36305. bool operator!=( PipelineCoverageReductionStateCreateInfoNV const& rhs ) const
  36306. {
  36307. return !operator==( rhs );
  36308. }
  36309. private:
  36310. StructureType sType = StructureType::ePipelineCoverageReductionStateCreateInfoNV;
  36311. public:
  36312. const void* pNext = nullptr;
  36313. PipelineCoverageReductionStateCreateFlagsNV flags;
  36314. CoverageReductionModeNV coverageReductionMode;
  36315. };
  36316. static_assert( sizeof( PipelineCoverageReductionStateCreateInfoNV ) == sizeof( VkPipelineCoverageReductionStateCreateInfoNV ), "struct and wrapper have different size!" );
  36317. struct PipelineCoverageToColorStateCreateInfoNV
  36318. {
  36319. PipelineCoverageToColorStateCreateInfoNV( PipelineCoverageToColorStateCreateFlagsNV flags_ = PipelineCoverageToColorStateCreateFlagsNV(),
  36320. Bool32 coverageToColorEnable_ = 0,
  36321. uint32_t coverageToColorLocation_ = 0 )
  36322. : flags( flags_ )
  36323. , coverageToColorEnable( coverageToColorEnable_ )
  36324. , coverageToColorLocation( coverageToColorLocation_ )
  36325. {}
  36326. PipelineCoverageToColorStateCreateInfoNV( VkPipelineCoverageToColorStateCreateInfoNV const & rhs )
  36327. {
  36328. *reinterpret_cast<VkPipelineCoverageToColorStateCreateInfoNV*>(this) = rhs;
  36329. }
  36330. PipelineCoverageToColorStateCreateInfoNV& operator=( VkPipelineCoverageToColorStateCreateInfoNV const & rhs )
  36331. {
  36332. *reinterpret_cast<VkPipelineCoverageToColorStateCreateInfoNV*>(this) = rhs;
  36333. return *this;
  36334. }
  36335. PipelineCoverageToColorStateCreateInfoNV & setPNext( const void* pNext_ )
  36336. {
  36337. pNext = pNext_;
  36338. return *this;
  36339. }
  36340. PipelineCoverageToColorStateCreateInfoNV & setFlags( PipelineCoverageToColorStateCreateFlagsNV flags_ )
  36341. {
  36342. flags = flags_;
  36343. return *this;
  36344. }
  36345. PipelineCoverageToColorStateCreateInfoNV & setCoverageToColorEnable( Bool32 coverageToColorEnable_ )
  36346. {
  36347. coverageToColorEnable = coverageToColorEnable_;
  36348. return *this;
  36349. }
  36350. PipelineCoverageToColorStateCreateInfoNV & setCoverageToColorLocation( uint32_t coverageToColorLocation_ )
  36351. {
  36352. coverageToColorLocation = coverageToColorLocation_;
  36353. return *this;
  36354. }
  36355. operator VkPipelineCoverageToColorStateCreateInfoNV const&() const
  36356. {
  36357. return *reinterpret_cast<const VkPipelineCoverageToColorStateCreateInfoNV*>( this );
  36358. }
  36359. operator VkPipelineCoverageToColorStateCreateInfoNV &()
  36360. {
  36361. return *reinterpret_cast<VkPipelineCoverageToColorStateCreateInfoNV*>( this );
  36362. }
  36363. bool operator==( PipelineCoverageToColorStateCreateInfoNV const& rhs ) const
  36364. {
  36365. return ( sType == rhs.sType )
  36366. && ( pNext == rhs.pNext )
  36367. && ( flags == rhs.flags )
  36368. && ( coverageToColorEnable == rhs.coverageToColorEnable )
  36369. && ( coverageToColorLocation == rhs.coverageToColorLocation );
  36370. }
  36371. bool operator!=( PipelineCoverageToColorStateCreateInfoNV const& rhs ) const
  36372. {
  36373. return !operator==( rhs );
  36374. }
  36375. private:
  36376. StructureType sType = StructureType::ePipelineCoverageToColorStateCreateInfoNV;
  36377. public:
  36378. const void* pNext = nullptr;
  36379. PipelineCoverageToColorStateCreateFlagsNV flags;
  36380. Bool32 coverageToColorEnable;
  36381. uint32_t coverageToColorLocation;
  36382. };
  36383. static_assert( sizeof( PipelineCoverageToColorStateCreateInfoNV ) == sizeof( VkPipelineCoverageToColorStateCreateInfoNV ), "struct and wrapper have different size!" );
  36384. struct PipelineCreationFeedbackEXT
  36385. {
  36386. operator VkPipelineCreationFeedbackEXT const&() const
  36387. {
  36388. return *reinterpret_cast<const VkPipelineCreationFeedbackEXT*>( this );
  36389. }
  36390. operator VkPipelineCreationFeedbackEXT &()
  36391. {
  36392. return *reinterpret_cast<VkPipelineCreationFeedbackEXT*>( this );
  36393. }
  36394. bool operator==( PipelineCreationFeedbackEXT const& rhs ) const
  36395. {
  36396. return ( flags == rhs.flags )
  36397. && ( duration == rhs.duration );
  36398. }
  36399. bool operator!=( PipelineCreationFeedbackEXT const& rhs ) const
  36400. {
  36401. return !operator==( rhs );
  36402. }
  36403. PipelineCreationFeedbackFlagsEXT flags;
  36404. uint64_t duration;
  36405. };
  36406. static_assert( sizeof( PipelineCreationFeedbackEXT ) == sizeof( VkPipelineCreationFeedbackEXT ), "struct and wrapper have different size!" );
  36407. struct PipelineCreationFeedbackCreateInfoEXT
  36408. {
  36409. PipelineCreationFeedbackCreateInfoEXT( PipelineCreationFeedbackEXT* pPipelineCreationFeedback_ = nullptr,
  36410. uint32_t pipelineStageCreationFeedbackCount_ = 0,
  36411. PipelineCreationFeedbackEXT* pPipelineStageCreationFeedbacks_ = nullptr )
  36412. : pPipelineCreationFeedback( pPipelineCreationFeedback_ )
  36413. , pipelineStageCreationFeedbackCount( pipelineStageCreationFeedbackCount_ )
  36414. , pPipelineStageCreationFeedbacks( pPipelineStageCreationFeedbacks_ )
  36415. {}
  36416. PipelineCreationFeedbackCreateInfoEXT( VkPipelineCreationFeedbackCreateInfoEXT const & rhs )
  36417. {
  36418. *reinterpret_cast<VkPipelineCreationFeedbackCreateInfoEXT*>(this) = rhs;
  36419. }
  36420. PipelineCreationFeedbackCreateInfoEXT& operator=( VkPipelineCreationFeedbackCreateInfoEXT const & rhs )
  36421. {
  36422. *reinterpret_cast<VkPipelineCreationFeedbackCreateInfoEXT*>(this) = rhs;
  36423. return *this;
  36424. }
  36425. PipelineCreationFeedbackCreateInfoEXT & setPNext( const void* pNext_ )
  36426. {
  36427. pNext = pNext_;
  36428. return *this;
  36429. }
  36430. PipelineCreationFeedbackCreateInfoEXT & setPPipelineCreationFeedback( PipelineCreationFeedbackEXT* pPipelineCreationFeedback_ )
  36431. {
  36432. pPipelineCreationFeedback = pPipelineCreationFeedback_;
  36433. return *this;
  36434. }
  36435. PipelineCreationFeedbackCreateInfoEXT & setPipelineStageCreationFeedbackCount( uint32_t pipelineStageCreationFeedbackCount_ )
  36436. {
  36437. pipelineStageCreationFeedbackCount = pipelineStageCreationFeedbackCount_;
  36438. return *this;
  36439. }
  36440. PipelineCreationFeedbackCreateInfoEXT & setPPipelineStageCreationFeedbacks( PipelineCreationFeedbackEXT* pPipelineStageCreationFeedbacks_ )
  36441. {
  36442. pPipelineStageCreationFeedbacks = pPipelineStageCreationFeedbacks_;
  36443. return *this;
  36444. }
  36445. operator VkPipelineCreationFeedbackCreateInfoEXT const&() const
  36446. {
  36447. return *reinterpret_cast<const VkPipelineCreationFeedbackCreateInfoEXT*>( this );
  36448. }
  36449. operator VkPipelineCreationFeedbackCreateInfoEXT &()
  36450. {
  36451. return *reinterpret_cast<VkPipelineCreationFeedbackCreateInfoEXT*>( this );
  36452. }
  36453. bool operator==( PipelineCreationFeedbackCreateInfoEXT const& rhs ) const
  36454. {
  36455. return ( sType == rhs.sType )
  36456. && ( pNext == rhs.pNext )
  36457. && ( pPipelineCreationFeedback == rhs.pPipelineCreationFeedback )
  36458. && ( pipelineStageCreationFeedbackCount == rhs.pipelineStageCreationFeedbackCount )
  36459. && ( pPipelineStageCreationFeedbacks == rhs.pPipelineStageCreationFeedbacks );
  36460. }
  36461. bool operator!=( PipelineCreationFeedbackCreateInfoEXT const& rhs ) const
  36462. {
  36463. return !operator==( rhs );
  36464. }
  36465. private:
  36466. StructureType sType = StructureType::ePipelineCreationFeedbackCreateInfoEXT;
  36467. public:
  36468. const void* pNext = nullptr;
  36469. PipelineCreationFeedbackEXT* pPipelineCreationFeedback;
  36470. uint32_t pipelineStageCreationFeedbackCount;
  36471. PipelineCreationFeedbackEXT* pPipelineStageCreationFeedbacks;
  36472. };
  36473. static_assert( sizeof( PipelineCreationFeedbackCreateInfoEXT ) == sizeof( VkPipelineCreationFeedbackCreateInfoEXT ), "struct and wrapper have different size!" );
  36474. struct PipelineDiscardRectangleStateCreateInfoEXT
  36475. {
  36476. PipelineDiscardRectangleStateCreateInfoEXT( PipelineDiscardRectangleStateCreateFlagsEXT flags_ = PipelineDiscardRectangleStateCreateFlagsEXT(),
  36477. DiscardRectangleModeEXT discardRectangleMode_ = DiscardRectangleModeEXT::eInclusive,
  36478. uint32_t discardRectangleCount_ = 0,
  36479. const Rect2D* pDiscardRectangles_ = nullptr )
  36480. : flags( flags_ )
  36481. , discardRectangleMode( discardRectangleMode_ )
  36482. , discardRectangleCount( discardRectangleCount_ )
  36483. , pDiscardRectangles( pDiscardRectangles_ )
  36484. {}
  36485. PipelineDiscardRectangleStateCreateInfoEXT( VkPipelineDiscardRectangleStateCreateInfoEXT const & rhs )
  36486. {
  36487. *reinterpret_cast<VkPipelineDiscardRectangleStateCreateInfoEXT*>(this) = rhs;
  36488. }
  36489. PipelineDiscardRectangleStateCreateInfoEXT& operator=( VkPipelineDiscardRectangleStateCreateInfoEXT const & rhs )
  36490. {
  36491. *reinterpret_cast<VkPipelineDiscardRectangleStateCreateInfoEXT*>(this) = rhs;
  36492. return *this;
  36493. }
  36494. PipelineDiscardRectangleStateCreateInfoEXT & setPNext( const void* pNext_ )
  36495. {
  36496. pNext = pNext_;
  36497. return *this;
  36498. }
  36499. PipelineDiscardRectangleStateCreateInfoEXT & setFlags( PipelineDiscardRectangleStateCreateFlagsEXT flags_ )
  36500. {
  36501. flags = flags_;
  36502. return *this;
  36503. }
  36504. PipelineDiscardRectangleStateCreateInfoEXT & setDiscardRectangleMode( DiscardRectangleModeEXT discardRectangleMode_ )
  36505. {
  36506. discardRectangleMode = discardRectangleMode_;
  36507. return *this;
  36508. }
  36509. PipelineDiscardRectangleStateCreateInfoEXT & setDiscardRectangleCount( uint32_t discardRectangleCount_ )
  36510. {
  36511. discardRectangleCount = discardRectangleCount_;
  36512. return *this;
  36513. }
  36514. PipelineDiscardRectangleStateCreateInfoEXT & setPDiscardRectangles( const Rect2D* pDiscardRectangles_ )
  36515. {
  36516. pDiscardRectangles = pDiscardRectangles_;
  36517. return *this;
  36518. }
  36519. operator VkPipelineDiscardRectangleStateCreateInfoEXT const&() const
  36520. {
  36521. return *reinterpret_cast<const VkPipelineDiscardRectangleStateCreateInfoEXT*>( this );
  36522. }
  36523. operator VkPipelineDiscardRectangleStateCreateInfoEXT &()
  36524. {
  36525. return *reinterpret_cast<VkPipelineDiscardRectangleStateCreateInfoEXT*>( this );
  36526. }
  36527. bool operator==( PipelineDiscardRectangleStateCreateInfoEXT const& rhs ) const
  36528. {
  36529. return ( sType == rhs.sType )
  36530. && ( pNext == rhs.pNext )
  36531. && ( flags == rhs.flags )
  36532. && ( discardRectangleMode == rhs.discardRectangleMode )
  36533. && ( discardRectangleCount == rhs.discardRectangleCount )
  36534. && ( pDiscardRectangles == rhs.pDiscardRectangles );
  36535. }
  36536. bool operator!=( PipelineDiscardRectangleStateCreateInfoEXT const& rhs ) const
  36537. {
  36538. return !operator==( rhs );
  36539. }
  36540. private:
  36541. StructureType sType = StructureType::ePipelineDiscardRectangleStateCreateInfoEXT;
  36542. public:
  36543. const void* pNext = nullptr;
  36544. PipelineDiscardRectangleStateCreateFlagsEXT flags;
  36545. DiscardRectangleModeEXT discardRectangleMode;
  36546. uint32_t discardRectangleCount;
  36547. const Rect2D* pDiscardRectangles;
  36548. };
  36549. static_assert( sizeof( PipelineDiscardRectangleStateCreateInfoEXT ) == sizeof( VkPipelineDiscardRectangleStateCreateInfoEXT ), "struct and wrapper have different size!" );
  36550. struct PushConstantRange
  36551. {
  36552. PushConstantRange( ShaderStageFlags stageFlags_ = ShaderStageFlags(),
  36553. uint32_t offset_ = 0,
  36554. uint32_t size_ = 0 )
  36555. : stageFlags( stageFlags_ )
  36556. , offset( offset_ )
  36557. , size( size_ )
  36558. {}
  36559. PushConstantRange( VkPushConstantRange const & rhs )
  36560. {
  36561. *reinterpret_cast<VkPushConstantRange*>(this) = rhs;
  36562. }
  36563. PushConstantRange& operator=( VkPushConstantRange const & rhs )
  36564. {
  36565. *reinterpret_cast<VkPushConstantRange*>(this) = rhs;
  36566. return *this;
  36567. }
  36568. PushConstantRange & setStageFlags( ShaderStageFlags stageFlags_ )
  36569. {
  36570. stageFlags = stageFlags_;
  36571. return *this;
  36572. }
  36573. PushConstantRange & setOffset( uint32_t offset_ )
  36574. {
  36575. offset = offset_;
  36576. return *this;
  36577. }
  36578. PushConstantRange & setSize( uint32_t size_ )
  36579. {
  36580. size = size_;
  36581. return *this;
  36582. }
  36583. operator VkPushConstantRange const&() const
  36584. {
  36585. return *reinterpret_cast<const VkPushConstantRange*>( this );
  36586. }
  36587. operator VkPushConstantRange &()
  36588. {
  36589. return *reinterpret_cast<VkPushConstantRange*>( this );
  36590. }
  36591. bool operator==( PushConstantRange const& rhs ) const
  36592. {
  36593. return ( stageFlags == rhs.stageFlags )
  36594. && ( offset == rhs.offset )
  36595. && ( size == rhs.size );
  36596. }
  36597. bool operator!=( PushConstantRange const& rhs ) const
  36598. {
  36599. return !operator==( rhs );
  36600. }
  36601. ShaderStageFlags stageFlags;
  36602. uint32_t offset;
  36603. uint32_t size;
  36604. };
  36605. static_assert( sizeof( PushConstantRange ) == sizeof( VkPushConstantRange ), "struct and wrapper have different size!" );
  36606. struct PipelineLayoutCreateInfo
  36607. {
  36608. PipelineLayoutCreateInfo( PipelineLayoutCreateFlags flags_ = PipelineLayoutCreateFlags(),
  36609. uint32_t setLayoutCount_ = 0,
  36610. const DescriptorSetLayout* pSetLayouts_ = nullptr,
  36611. uint32_t pushConstantRangeCount_ = 0,
  36612. const PushConstantRange* pPushConstantRanges_ = nullptr )
  36613. : flags( flags_ )
  36614. , setLayoutCount( setLayoutCount_ )
  36615. , pSetLayouts( pSetLayouts_ )
  36616. , pushConstantRangeCount( pushConstantRangeCount_ )
  36617. , pPushConstantRanges( pPushConstantRanges_ )
  36618. {}
  36619. PipelineLayoutCreateInfo( VkPipelineLayoutCreateInfo const & rhs )
  36620. {
  36621. *reinterpret_cast<VkPipelineLayoutCreateInfo*>(this) = rhs;
  36622. }
  36623. PipelineLayoutCreateInfo& operator=( VkPipelineLayoutCreateInfo const & rhs )
  36624. {
  36625. *reinterpret_cast<VkPipelineLayoutCreateInfo*>(this) = rhs;
  36626. return *this;
  36627. }
  36628. PipelineLayoutCreateInfo & setPNext( const void* pNext_ )
  36629. {
  36630. pNext = pNext_;
  36631. return *this;
  36632. }
  36633. PipelineLayoutCreateInfo & setFlags( PipelineLayoutCreateFlags flags_ )
  36634. {
  36635. flags = flags_;
  36636. return *this;
  36637. }
  36638. PipelineLayoutCreateInfo & setSetLayoutCount( uint32_t setLayoutCount_ )
  36639. {
  36640. setLayoutCount = setLayoutCount_;
  36641. return *this;
  36642. }
  36643. PipelineLayoutCreateInfo & setPSetLayouts( const DescriptorSetLayout* pSetLayouts_ )
  36644. {
  36645. pSetLayouts = pSetLayouts_;
  36646. return *this;
  36647. }
  36648. PipelineLayoutCreateInfo & setPushConstantRangeCount( uint32_t pushConstantRangeCount_ )
  36649. {
  36650. pushConstantRangeCount = pushConstantRangeCount_;
  36651. return *this;
  36652. }
  36653. PipelineLayoutCreateInfo & setPPushConstantRanges( const PushConstantRange* pPushConstantRanges_ )
  36654. {
  36655. pPushConstantRanges = pPushConstantRanges_;
  36656. return *this;
  36657. }
  36658. operator VkPipelineLayoutCreateInfo const&() const
  36659. {
  36660. return *reinterpret_cast<const VkPipelineLayoutCreateInfo*>( this );
  36661. }
  36662. operator VkPipelineLayoutCreateInfo &()
  36663. {
  36664. return *reinterpret_cast<VkPipelineLayoutCreateInfo*>( this );
  36665. }
  36666. bool operator==( PipelineLayoutCreateInfo const& rhs ) const
  36667. {
  36668. return ( sType == rhs.sType )
  36669. && ( pNext == rhs.pNext )
  36670. && ( flags == rhs.flags )
  36671. && ( setLayoutCount == rhs.setLayoutCount )
  36672. && ( pSetLayouts == rhs.pSetLayouts )
  36673. && ( pushConstantRangeCount == rhs.pushConstantRangeCount )
  36674. && ( pPushConstantRanges == rhs.pPushConstantRanges );
  36675. }
  36676. bool operator!=( PipelineLayoutCreateInfo const& rhs ) const
  36677. {
  36678. return !operator==( rhs );
  36679. }
  36680. private:
  36681. StructureType sType = StructureType::ePipelineLayoutCreateInfo;
  36682. public:
  36683. const void* pNext = nullptr;
  36684. PipelineLayoutCreateFlags flags;
  36685. uint32_t setLayoutCount;
  36686. const DescriptorSetLayout* pSetLayouts;
  36687. uint32_t pushConstantRangeCount;
  36688. const PushConstantRange* pPushConstantRanges;
  36689. };
  36690. static_assert( sizeof( PipelineLayoutCreateInfo ) == sizeof( VkPipelineLayoutCreateInfo ), "struct and wrapper have different size!" );
  36691. struct PipelineRasterizationConservativeStateCreateInfoEXT
  36692. {
  36693. PipelineRasterizationConservativeStateCreateInfoEXT( PipelineRasterizationConservativeStateCreateFlagsEXT flags_ = PipelineRasterizationConservativeStateCreateFlagsEXT(),
  36694. ConservativeRasterizationModeEXT conservativeRasterizationMode_ = ConservativeRasterizationModeEXT::eDisabled,
  36695. float extraPrimitiveOverestimationSize_ = 0 )
  36696. : flags( flags_ )
  36697. , conservativeRasterizationMode( conservativeRasterizationMode_ )
  36698. , extraPrimitiveOverestimationSize( extraPrimitiveOverestimationSize_ )
  36699. {}
  36700. PipelineRasterizationConservativeStateCreateInfoEXT( VkPipelineRasterizationConservativeStateCreateInfoEXT const & rhs )
  36701. {
  36702. *reinterpret_cast<VkPipelineRasterizationConservativeStateCreateInfoEXT*>(this) = rhs;
  36703. }
  36704. PipelineRasterizationConservativeStateCreateInfoEXT& operator=( VkPipelineRasterizationConservativeStateCreateInfoEXT const & rhs )
  36705. {
  36706. *reinterpret_cast<VkPipelineRasterizationConservativeStateCreateInfoEXT*>(this) = rhs;
  36707. return *this;
  36708. }
  36709. PipelineRasterizationConservativeStateCreateInfoEXT & setPNext( const void* pNext_ )
  36710. {
  36711. pNext = pNext_;
  36712. return *this;
  36713. }
  36714. PipelineRasterizationConservativeStateCreateInfoEXT & setFlags( PipelineRasterizationConservativeStateCreateFlagsEXT flags_ )
  36715. {
  36716. flags = flags_;
  36717. return *this;
  36718. }
  36719. PipelineRasterizationConservativeStateCreateInfoEXT & setConservativeRasterizationMode( ConservativeRasterizationModeEXT conservativeRasterizationMode_ )
  36720. {
  36721. conservativeRasterizationMode = conservativeRasterizationMode_;
  36722. return *this;
  36723. }
  36724. PipelineRasterizationConservativeStateCreateInfoEXT & setExtraPrimitiveOverestimationSize( float extraPrimitiveOverestimationSize_ )
  36725. {
  36726. extraPrimitiveOverestimationSize = extraPrimitiveOverestimationSize_;
  36727. return *this;
  36728. }
  36729. operator VkPipelineRasterizationConservativeStateCreateInfoEXT const&() const
  36730. {
  36731. return *reinterpret_cast<const VkPipelineRasterizationConservativeStateCreateInfoEXT*>( this );
  36732. }
  36733. operator VkPipelineRasterizationConservativeStateCreateInfoEXT &()
  36734. {
  36735. return *reinterpret_cast<VkPipelineRasterizationConservativeStateCreateInfoEXT*>( this );
  36736. }
  36737. bool operator==( PipelineRasterizationConservativeStateCreateInfoEXT const& rhs ) const
  36738. {
  36739. return ( sType == rhs.sType )
  36740. && ( pNext == rhs.pNext )
  36741. && ( flags == rhs.flags )
  36742. && ( conservativeRasterizationMode == rhs.conservativeRasterizationMode )
  36743. && ( extraPrimitiveOverestimationSize == rhs.extraPrimitiveOverestimationSize );
  36744. }
  36745. bool operator!=( PipelineRasterizationConservativeStateCreateInfoEXT const& rhs ) const
  36746. {
  36747. return !operator==( rhs );
  36748. }
  36749. private:
  36750. StructureType sType = StructureType::ePipelineRasterizationConservativeStateCreateInfoEXT;
  36751. public:
  36752. const void* pNext = nullptr;
  36753. PipelineRasterizationConservativeStateCreateFlagsEXT flags;
  36754. ConservativeRasterizationModeEXT conservativeRasterizationMode;
  36755. float extraPrimitiveOverestimationSize;
  36756. };
  36757. static_assert( sizeof( PipelineRasterizationConservativeStateCreateInfoEXT ) == sizeof( VkPipelineRasterizationConservativeStateCreateInfoEXT ), "struct and wrapper have different size!" );
  36758. struct PipelineRasterizationDepthClipStateCreateInfoEXT
  36759. {
  36760. PipelineRasterizationDepthClipStateCreateInfoEXT( PipelineRasterizationDepthClipStateCreateFlagsEXT flags_ = PipelineRasterizationDepthClipStateCreateFlagsEXT(),
  36761. Bool32 depthClipEnable_ = 0 )
  36762. : flags( flags_ )
  36763. , depthClipEnable( depthClipEnable_ )
  36764. {}
  36765. PipelineRasterizationDepthClipStateCreateInfoEXT( VkPipelineRasterizationDepthClipStateCreateInfoEXT const & rhs )
  36766. {
  36767. *reinterpret_cast<VkPipelineRasterizationDepthClipStateCreateInfoEXT*>(this) = rhs;
  36768. }
  36769. PipelineRasterizationDepthClipStateCreateInfoEXT& operator=( VkPipelineRasterizationDepthClipStateCreateInfoEXT const & rhs )
  36770. {
  36771. *reinterpret_cast<VkPipelineRasterizationDepthClipStateCreateInfoEXT*>(this) = rhs;
  36772. return *this;
  36773. }
  36774. PipelineRasterizationDepthClipStateCreateInfoEXT & setPNext( const void* pNext_ )
  36775. {
  36776. pNext = pNext_;
  36777. return *this;
  36778. }
  36779. PipelineRasterizationDepthClipStateCreateInfoEXT & setFlags( PipelineRasterizationDepthClipStateCreateFlagsEXT flags_ )
  36780. {
  36781. flags = flags_;
  36782. return *this;
  36783. }
  36784. PipelineRasterizationDepthClipStateCreateInfoEXT & setDepthClipEnable( Bool32 depthClipEnable_ )
  36785. {
  36786. depthClipEnable = depthClipEnable_;
  36787. return *this;
  36788. }
  36789. operator VkPipelineRasterizationDepthClipStateCreateInfoEXT const&() const
  36790. {
  36791. return *reinterpret_cast<const VkPipelineRasterizationDepthClipStateCreateInfoEXT*>( this );
  36792. }
  36793. operator VkPipelineRasterizationDepthClipStateCreateInfoEXT &()
  36794. {
  36795. return *reinterpret_cast<VkPipelineRasterizationDepthClipStateCreateInfoEXT*>( this );
  36796. }
  36797. bool operator==( PipelineRasterizationDepthClipStateCreateInfoEXT const& rhs ) const
  36798. {
  36799. return ( sType == rhs.sType )
  36800. && ( pNext == rhs.pNext )
  36801. && ( flags == rhs.flags )
  36802. && ( depthClipEnable == rhs.depthClipEnable );
  36803. }
  36804. bool operator!=( PipelineRasterizationDepthClipStateCreateInfoEXT const& rhs ) const
  36805. {
  36806. return !operator==( rhs );
  36807. }
  36808. private:
  36809. StructureType sType = StructureType::ePipelineRasterizationDepthClipStateCreateInfoEXT;
  36810. public:
  36811. const void* pNext = nullptr;
  36812. PipelineRasterizationDepthClipStateCreateFlagsEXT flags;
  36813. Bool32 depthClipEnable;
  36814. };
  36815. static_assert( sizeof( PipelineRasterizationDepthClipStateCreateInfoEXT ) == sizeof( VkPipelineRasterizationDepthClipStateCreateInfoEXT ), "struct and wrapper have different size!" );
  36816. struct PipelineRasterizationStateRasterizationOrderAMD
  36817. {
  36818. PipelineRasterizationStateRasterizationOrderAMD( RasterizationOrderAMD rasterizationOrder_ = RasterizationOrderAMD::eStrict )
  36819. : rasterizationOrder( rasterizationOrder_ )
  36820. {}
  36821. PipelineRasterizationStateRasterizationOrderAMD( VkPipelineRasterizationStateRasterizationOrderAMD const & rhs )
  36822. {
  36823. *reinterpret_cast<VkPipelineRasterizationStateRasterizationOrderAMD*>(this) = rhs;
  36824. }
  36825. PipelineRasterizationStateRasterizationOrderAMD& operator=( VkPipelineRasterizationStateRasterizationOrderAMD const & rhs )
  36826. {
  36827. *reinterpret_cast<VkPipelineRasterizationStateRasterizationOrderAMD*>(this) = rhs;
  36828. return *this;
  36829. }
  36830. PipelineRasterizationStateRasterizationOrderAMD & setPNext( const void* pNext_ )
  36831. {
  36832. pNext = pNext_;
  36833. return *this;
  36834. }
  36835. PipelineRasterizationStateRasterizationOrderAMD & setRasterizationOrder( RasterizationOrderAMD rasterizationOrder_ )
  36836. {
  36837. rasterizationOrder = rasterizationOrder_;
  36838. return *this;
  36839. }
  36840. operator VkPipelineRasterizationStateRasterizationOrderAMD const&() const
  36841. {
  36842. return *reinterpret_cast<const VkPipelineRasterizationStateRasterizationOrderAMD*>( this );
  36843. }
  36844. operator VkPipelineRasterizationStateRasterizationOrderAMD &()
  36845. {
  36846. return *reinterpret_cast<VkPipelineRasterizationStateRasterizationOrderAMD*>( this );
  36847. }
  36848. bool operator==( PipelineRasterizationStateRasterizationOrderAMD const& rhs ) const
  36849. {
  36850. return ( sType == rhs.sType )
  36851. && ( pNext == rhs.pNext )
  36852. && ( rasterizationOrder == rhs.rasterizationOrder );
  36853. }
  36854. bool operator!=( PipelineRasterizationStateRasterizationOrderAMD const& rhs ) const
  36855. {
  36856. return !operator==( rhs );
  36857. }
  36858. private:
  36859. StructureType sType = StructureType::ePipelineRasterizationStateRasterizationOrderAMD;
  36860. public:
  36861. const void* pNext = nullptr;
  36862. RasterizationOrderAMD rasterizationOrder;
  36863. };
  36864. static_assert( sizeof( PipelineRasterizationStateRasterizationOrderAMD ) == sizeof( VkPipelineRasterizationStateRasterizationOrderAMD ), "struct and wrapper have different size!" );
  36865. struct PipelineRasterizationStateStreamCreateInfoEXT
  36866. {
  36867. PipelineRasterizationStateStreamCreateInfoEXT( PipelineRasterizationStateStreamCreateFlagsEXT flags_ = PipelineRasterizationStateStreamCreateFlagsEXT(),
  36868. uint32_t rasterizationStream_ = 0 )
  36869. : flags( flags_ )
  36870. , rasterizationStream( rasterizationStream_ )
  36871. {}
  36872. PipelineRasterizationStateStreamCreateInfoEXT( VkPipelineRasterizationStateStreamCreateInfoEXT const & rhs )
  36873. {
  36874. *reinterpret_cast<VkPipelineRasterizationStateStreamCreateInfoEXT*>(this) = rhs;
  36875. }
  36876. PipelineRasterizationStateStreamCreateInfoEXT& operator=( VkPipelineRasterizationStateStreamCreateInfoEXT const & rhs )
  36877. {
  36878. *reinterpret_cast<VkPipelineRasterizationStateStreamCreateInfoEXT*>(this) = rhs;
  36879. return *this;
  36880. }
  36881. PipelineRasterizationStateStreamCreateInfoEXT & setPNext( const void* pNext_ )
  36882. {
  36883. pNext = pNext_;
  36884. return *this;
  36885. }
  36886. PipelineRasterizationStateStreamCreateInfoEXT & setFlags( PipelineRasterizationStateStreamCreateFlagsEXT flags_ )
  36887. {
  36888. flags = flags_;
  36889. return *this;
  36890. }
  36891. PipelineRasterizationStateStreamCreateInfoEXT & setRasterizationStream( uint32_t rasterizationStream_ )
  36892. {
  36893. rasterizationStream = rasterizationStream_;
  36894. return *this;
  36895. }
  36896. operator VkPipelineRasterizationStateStreamCreateInfoEXT const&() const
  36897. {
  36898. return *reinterpret_cast<const VkPipelineRasterizationStateStreamCreateInfoEXT*>( this );
  36899. }
  36900. operator VkPipelineRasterizationStateStreamCreateInfoEXT &()
  36901. {
  36902. return *reinterpret_cast<VkPipelineRasterizationStateStreamCreateInfoEXT*>( this );
  36903. }
  36904. bool operator==( PipelineRasterizationStateStreamCreateInfoEXT const& rhs ) const
  36905. {
  36906. return ( sType == rhs.sType )
  36907. && ( pNext == rhs.pNext )
  36908. && ( flags == rhs.flags )
  36909. && ( rasterizationStream == rhs.rasterizationStream );
  36910. }
  36911. bool operator!=( PipelineRasterizationStateStreamCreateInfoEXT const& rhs ) const
  36912. {
  36913. return !operator==( rhs );
  36914. }
  36915. private:
  36916. StructureType sType = StructureType::ePipelineRasterizationStateStreamCreateInfoEXT;
  36917. public:
  36918. const void* pNext = nullptr;
  36919. PipelineRasterizationStateStreamCreateFlagsEXT flags;
  36920. uint32_t rasterizationStream;
  36921. };
  36922. static_assert( sizeof( PipelineRasterizationStateStreamCreateInfoEXT ) == sizeof( VkPipelineRasterizationStateStreamCreateInfoEXT ), "struct and wrapper have different size!" );
  36923. struct PipelineRepresentativeFragmentTestStateCreateInfoNV
  36924. {
  36925. PipelineRepresentativeFragmentTestStateCreateInfoNV( Bool32 representativeFragmentTestEnable_ = 0 )
  36926. : representativeFragmentTestEnable( representativeFragmentTestEnable_ )
  36927. {}
  36928. PipelineRepresentativeFragmentTestStateCreateInfoNV( VkPipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs )
  36929. {
  36930. *reinterpret_cast<VkPipelineRepresentativeFragmentTestStateCreateInfoNV*>(this) = rhs;
  36931. }
  36932. PipelineRepresentativeFragmentTestStateCreateInfoNV& operator=( VkPipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs )
  36933. {
  36934. *reinterpret_cast<VkPipelineRepresentativeFragmentTestStateCreateInfoNV*>(this) = rhs;
  36935. return *this;
  36936. }
  36937. PipelineRepresentativeFragmentTestStateCreateInfoNV & setPNext( const void* pNext_ )
  36938. {
  36939. pNext = pNext_;
  36940. return *this;
  36941. }
  36942. PipelineRepresentativeFragmentTestStateCreateInfoNV & setRepresentativeFragmentTestEnable( Bool32 representativeFragmentTestEnable_ )
  36943. {
  36944. representativeFragmentTestEnable = representativeFragmentTestEnable_;
  36945. return *this;
  36946. }
  36947. operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV const&() const
  36948. {
  36949. return *reinterpret_cast<const VkPipelineRepresentativeFragmentTestStateCreateInfoNV*>( this );
  36950. }
  36951. operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV &()
  36952. {
  36953. return *reinterpret_cast<VkPipelineRepresentativeFragmentTestStateCreateInfoNV*>( this );
  36954. }
  36955. bool operator==( PipelineRepresentativeFragmentTestStateCreateInfoNV const& rhs ) const
  36956. {
  36957. return ( sType == rhs.sType )
  36958. && ( pNext == rhs.pNext )
  36959. && ( representativeFragmentTestEnable == rhs.representativeFragmentTestEnable );
  36960. }
  36961. bool operator!=( PipelineRepresentativeFragmentTestStateCreateInfoNV const& rhs ) const
  36962. {
  36963. return !operator==( rhs );
  36964. }
  36965. private:
  36966. StructureType sType = StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV;
  36967. public:
  36968. const void* pNext = nullptr;
  36969. Bool32 representativeFragmentTestEnable;
  36970. };
  36971. static_assert( sizeof( PipelineRepresentativeFragmentTestStateCreateInfoNV ) == sizeof( VkPipelineRepresentativeFragmentTestStateCreateInfoNV ), "struct and wrapper have different size!" );
  36972. struct PipelineSampleLocationsStateCreateInfoEXT
  36973. {
  36974. PipelineSampleLocationsStateCreateInfoEXT( Bool32 sampleLocationsEnable_ = 0,
  36975. SampleLocationsInfoEXT sampleLocationsInfo_ = SampleLocationsInfoEXT() )
  36976. : sampleLocationsEnable( sampleLocationsEnable_ )
  36977. , sampleLocationsInfo( sampleLocationsInfo_ )
  36978. {}
  36979. PipelineSampleLocationsStateCreateInfoEXT( VkPipelineSampleLocationsStateCreateInfoEXT const & rhs )
  36980. {
  36981. *reinterpret_cast<VkPipelineSampleLocationsStateCreateInfoEXT*>(this) = rhs;
  36982. }
  36983. PipelineSampleLocationsStateCreateInfoEXT& operator=( VkPipelineSampleLocationsStateCreateInfoEXT const & rhs )
  36984. {
  36985. *reinterpret_cast<VkPipelineSampleLocationsStateCreateInfoEXT*>(this) = rhs;
  36986. return *this;
  36987. }
  36988. PipelineSampleLocationsStateCreateInfoEXT & setPNext( const void* pNext_ )
  36989. {
  36990. pNext = pNext_;
  36991. return *this;
  36992. }
  36993. PipelineSampleLocationsStateCreateInfoEXT & setSampleLocationsEnable( Bool32 sampleLocationsEnable_ )
  36994. {
  36995. sampleLocationsEnable = sampleLocationsEnable_;
  36996. return *this;
  36997. }
  36998. PipelineSampleLocationsStateCreateInfoEXT & setSampleLocationsInfo( SampleLocationsInfoEXT sampleLocationsInfo_ )
  36999. {
  37000. sampleLocationsInfo = sampleLocationsInfo_;
  37001. return *this;
  37002. }
  37003. operator VkPipelineSampleLocationsStateCreateInfoEXT const&() const
  37004. {
  37005. return *reinterpret_cast<const VkPipelineSampleLocationsStateCreateInfoEXT*>( this );
  37006. }
  37007. operator VkPipelineSampleLocationsStateCreateInfoEXT &()
  37008. {
  37009. return *reinterpret_cast<VkPipelineSampleLocationsStateCreateInfoEXT*>( this );
  37010. }
  37011. bool operator==( PipelineSampleLocationsStateCreateInfoEXT const& rhs ) const
  37012. {
  37013. return ( sType == rhs.sType )
  37014. && ( pNext == rhs.pNext )
  37015. && ( sampleLocationsEnable == rhs.sampleLocationsEnable )
  37016. && ( sampleLocationsInfo == rhs.sampleLocationsInfo );
  37017. }
  37018. bool operator!=( PipelineSampleLocationsStateCreateInfoEXT const& rhs ) const
  37019. {
  37020. return !operator==( rhs );
  37021. }
  37022. private:
  37023. StructureType sType = StructureType::ePipelineSampleLocationsStateCreateInfoEXT;
  37024. public:
  37025. const void* pNext = nullptr;
  37026. Bool32 sampleLocationsEnable;
  37027. SampleLocationsInfoEXT sampleLocationsInfo;
  37028. };
  37029. static_assert( sizeof( PipelineSampleLocationsStateCreateInfoEXT ) == sizeof( VkPipelineSampleLocationsStateCreateInfoEXT ), "struct and wrapper have different size!" );
  37030. struct PipelineTessellationDomainOriginStateCreateInfo
  37031. {
  37032. PipelineTessellationDomainOriginStateCreateInfo( TessellationDomainOrigin domainOrigin_ = TessellationDomainOrigin::eUpperLeft )
  37033. : domainOrigin( domainOrigin_ )
  37034. {}
  37035. PipelineTessellationDomainOriginStateCreateInfo( VkPipelineTessellationDomainOriginStateCreateInfo const & rhs )
  37036. {
  37037. *reinterpret_cast<VkPipelineTessellationDomainOriginStateCreateInfo*>(this) = rhs;
  37038. }
  37039. PipelineTessellationDomainOriginStateCreateInfo& operator=( VkPipelineTessellationDomainOriginStateCreateInfo const & rhs )
  37040. {
  37041. *reinterpret_cast<VkPipelineTessellationDomainOriginStateCreateInfo*>(this) = rhs;
  37042. return *this;
  37043. }
  37044. PipelineTessellationDomainOriginStateCreateInfo & setPNext( const void* pNext_ )
  37045. {
  37046. pNext = pNext_;
  37047. return *this;
  37048. }
  37049. PipelineTessellationDomainOriginStateCreateInfo & setDomainOrigin( TessellationDomainOrigin domainOrigin_ )
  37050. {
  37051. domainOrigin = domainOrigin_;
  37052. return *this;
  37053. }
  37054. operator VkPipelineTessellationDomainOriginStateCreateInfo const&() const
  37055. {
  37056. return *reinterpret_cast<const VkPipelineTessellationDomainOriginStateCreateInfo*>( this );
  37057. }
  37058. operator VkPipelineTessellationDomainOriginStateCreateInfo &()
  37059. {
  37060. return *reinterpret_cast<VkPipelineTessellationDomainOriginStateCreateInfo*>( this );
  37061. }
  37062. bool operator==( PipelineTessellationDomainOriginStateCreateInfo const& rhs ) const
  37063. {
  37064. return ( sType == rhs.sType )
  37065. && ( pNext == rhs.pNext )
  37066. && ( domainOrigin == rhs.domainOrigin );
  37067. }
  37068. bool operator!=( PipelineTessellationDomainOriginStateCreateInfo const& rhs ) const
  37069. {
  37070. return !operator==( rhs );
  37071. }
  37072. private:
  37073. StructureType sType = StructureType::ePipelineTessellationDomainOriginStateCreateInfo;
  37074. public:
  37075. const void* pNext = nullptr;
  37076. TessellationDomainOrigin domainOrigin;
  37077. };
  37078. static_assert( sizeof( PipelineTessellationDomainOriginStateCreateInfo ) == sizeof( VkPipelineTessellationDomainOriginStateCreateInfo ), "struct and wrapper have different size!" );
  37079. struct VertexInputBindingDivisorDescriptionEXT
  37080. {
  37081. VertexInputBindingDivisorDescriptionEXT( uint32_t binding_ = 0,
  37082. uint32_t divisor_ = 0 )
  37083. : binding( binding_ )
  37084. , divisor( divisor_ )
  37085. {}
  37086. VertexInputBindingDivisorDescriptionEXT( VkVertexInputBindingDivisorDescriptionEXT const & rhs )
  37087. {
  37088. *reinterpret_cast<VkVertexInputBindingDivisorDescriptionEXT*>(this) = rhs;
  37089. }
  37090. VertexInputBindingDivisorDescriptionEXT& operator=( VkVertexInputBindingDivisorDescriptionEXT const & rhs )
  37091. {
  37092. *reinterpret_cast<VkVertexInputBindingDivisorDescriptionEXT*>(this) = rhs;
  37093. return *this;
  37094. }
  37095. VertexInputBindingDivisorDescriptionEXT & setBinding( uint32_t binding_ )
  37096. {
  37097. binding = binding_;
  37098. return *this;
  37099. }
  37100. VertexInputBindingDivisorDescriptionEXT & setDivisor( uint32_t divisor_ )
  37101. {
  37102. divisor = divisor_;
  37103. return *this;
  37104. }
  37105. operator VkVertexInputBindingDivisorDescriptionEXT const&() const
  37106. {
  37107. return *reinterpret_cast<const VkVertexInputBindingDivisorDescriptionEXT*>( this );
  37108. }
  37109. operator VkVertexInputBindingDivisorDescriptionEXT &()
  37110. {
  37111. return *reinterpret_cast<VkVertexInputBindingDivisorDescriptionEXT*>( this );
  37112. }
  37113. bool operator==( VertexInputBindingDivisorDescriptionEXT const& rhs ) const
  37114. {
  37115. return ( binding == rhs.binding )
  37116. && ( divisor == rhs.divisor );
  37117. }
  37118. bool operator!=( VertexInputBindingDivisorDescriptionEXT const& rhs ) const
  37119. {
  37120. return !operator==( rhs );
  37121. }
  37122. uint32_t binding;
  37123. uint32_t divisor;
  37124. };
  37125. static_assert( sizeof( VertexInputBindingDivisorDescriptionEXT ) == sizeof( VkVertexInputBindingDivisorDescriptionEXT ), "struct and wrapper have different size!" );
  37126. struct PipelineVertexInputDivisorStateCreateInfoEXT
  37127. {
  37128. PipelineVertexInputDivisorStateCreateInfoEXT( uint32_t vertexBindingDivisorCount_ = 0,
  37129. const VertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors_ = nullptr )
  37130. : vertexBindingDivisorCount( vertexBindingDivisorCount_ )
  37131. , pVertexBindingDivisors( pVertexBindingDivisors_ )
  37132. {}
  37133. PipelineVertexInputDivisorStateCreateInfoEXT( VkPipelineVertexInputDivisorStateCreateInfoEXT const & rhs )
  37134. {
  37135. *reinterpret_cast<VkPipelineVertexInputDivisorStateCreateInfoEXT*>(this) = rhs;
  37136. }
  37137. PipelineVertexInputDivisorStateCreateInfoEXT& operator=( VkPipelineVertexInputDivisorStateCreateInfoEXT const & rhs )
  37138. {
  37139. *reinterpret_cast<VkPipelineVertexInputDivisorStateCreateInfoEXT*>(this) = rhs;
  37140. return *this;
  37141. }
  37142. PipelineVertexInputDivisorStateCreateInfoEXT & setPNext( const void* pNext_ )
  37143. {
  37144. pNext = pNext_;
  37145. return *this;
  37146. }
  37147. PipelineVertexInputDivisorStateCreateInfoEXT & setVertexBindingDivisorCount( uint32_t vertexBindingDivisorCount_ )
  37148. {
  37149. vertexBindingDivisorCount = vertexBindingDivisorCount_;
  37150. return *this;
  37151. }
  37152. PipelineVertexInputDivisorStateCreateInfoEXT & setPVertexBindingDivisors( const VertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors_ )
  37153. {
  37154. pVertexBindingDivisors = pVertexBindingDivisors_;
  37155. return *this;
  37156. }
  37157. operator VkPipelineVertexInputDivisorStateCreateInfoEXT const&() const
  37158. {
  37159. return *reinterpret_cast<const VkPipelineVertexInputDivisorStateCreateInfoEXT*>( this );
  37160. }
  37161. operator VkPipelineVertexInputDivisorStateCreateInfoEXT &()
  37162. {
  37163. return *reinterpret_cast<VkPipelineVertexInputDivisorStateCreateInfoEXT*>( this );
  37164. }
  37165. bool operator==( PipelineVertexInputDivisorStateCreateInfoEXT const& rhs ) const
  37166. {
  37167. return ( sType == rhs.sType )
  37168. && ( pNext == rhs.pNext )
  37169. && ( vertexBindingDivisorCount == rhs.vertexBindingDivisorCount )
  37170. && ( pVertexBindingDivisors == rhs.pVertexBindingDivisors );
  37171. }
  37172. bool operator!=( PipelineVertexInputDivisorStateCreateInfoEXT const& rhs ) const
  37173. {
  37174. return !operator==( rhs );
  37175. }
  37176. private:
  37177. StructureType sType = StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT;
  37178. public:
  37179. const void* pNext = nullptr;
  37180. uint32_t vertexBindingDivisorCount;
  37181. const VertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors;
  37182. };
  37183. static_assert( sizeof( PipelineVertexInputDivisorStateCreateInfoEXT ) == sizeof( VkPipelineVertexInputDivisorStateCreateInfoEXT ), "struct and wrapper have different size!" );
  37184. struct PipelineViewportCoarseSampleOrderStateCreateInfoNV
  37185. {
  37186. PipelineViewportCoarseSampleOrderStateCreateInfoNV( CoarseSampleOrderTypeNV sampleOrderType_ = CoarseSampleOrderTypeNV::eDefault,
  37187. uint32_t customSampleOrderCount_ = 0,
  37188. const CoarseSampleOrderCustomNV* pCustomSampleOrders_ = nullptr )
  37189. : sampleOrderType( sampleOrderType_ )
  37190. , customSampleOrderCount( customSampleOrderCount_ )
  37191. , pCustomSampleOrders( pCustomSampleOrders_ )
  37192. {}
  37193. PipelineViewportCoarseSampleOrderStateCreateInfoNV( VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs )
  37194. {
  37195. *reinterpret_cast<VkPipelineViewportCoarseSampleOrderStateCreateInfoNV*>(this) = rhs;
  37196. }
  37197. PipelineViewportCoarseSampleOrderStateCreateInfoNV& operator=( VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs )
  37198. {
  37199. *reinterpret_cast<VkPipelineViewportCoarseSampleOrderStateCreateInfoNV*>(this) = rhs;
  37200. return *this;
  37201. }
  37202. PipelineViewportCoarseSampleOrderStateCreateInfoNV & setPNext( const void* pNext_ )
  37203. {
  37204. pNext = pNext_;
  37205. return *this;
  37206. }
  37207. PipelineViewportCoarseSampleOrderStateCreateInfoNV & setSampleOrderType( CoarseSampleOrderTypeNV sampleOrderType_ )
  37208. {
  37209. sampleOrderType = sampleOrderType_;
  37210. return *this;
  37211. }
  37212. PipelineViewportCoarseSampleOrderStateCreateInfoNV & setCustomSampleOrderCount( uint32_t customSampleOrderCount_ )
  37213. {
  37214. customSampleOrderCount = customSampleOrderCount_;
  37215. return *this;
  37216. }
  37217. PipelineViewportCoarseSampleOrderStateCreateInfoNV & setPCustomSampleOrders( const CoarseSampleOrderCustomNV* pCustomSampleOrders_ )
  37218. {
  37219. pCustomSampleOrders = pCustomSampleOrders_;
  37220. return *this;
  37221. }
  37222. operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const&() const
  37223. {
  37224. return *reinterpret_cast<const VkPipelineViewportCoarseSampleOrderStateCreateInfoNV*>( this );
  37225. }
  37226. operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV &()
  37227. {
  37228. return *reinterpret_cast<VkPipelineViewportCoarseSampleOrderStateCreateInfoNV*>( this );
  37229. }
  37230. bool operator==( PipelineViewportCoarseSampleOrderStateCreateInfoNV const& rhs ) const
  37231. {
  37232. return ( sType == rhs.sType )
  37233. && ( pNext == rhs.pNext )
  37234. && ( sampleOrderType == rhs.sampleOrderType )
  37235. && ( customSampleOrderCount == rhs.customSampleOrderCount )
  37236. && ( pCustomSampleOrders == rhs.pCustomSampleOrders );
  37237. }
  37238. bool operator!=( PipelineViewportCoarseSampleOrderStateCreateInfoNV const& rhs ) const
  37239. {
  37240. return !operator==( rhs );
  37241. }
  37242. private:
  37243. StructureType sType = StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV;
  37244. public:
  37245. const void* pNext = nullptr;
  37246. CoarseSampleOrderTypeNV sampleOrderType;
  37247. uint32_t customSampleOrderCount;
  37248. const CoarseSampleOrderCustomNV* pCustomSampleOrders;
  37249. };
  37250. static_assert( sizeof( PipelineViewportCoarseSampleOrderStateCreateInfoNV ) == sizeof( VkPipelineViewportCoarseSampleOrderStateCreateInfoNV ), "struct and wrapper have different size!" );
  37251. struct PipelineViewportExclusiveScissorStateCreateInfoNV
  37252. {
  37253. PipelineViewportExclusiveScissorStateCreateInfoNV( uint32_t exclusiveScissorCount_ = 0,
  37254. const Rect2D* pExclusiveScissors_ = nullptr )
  37255. : exclusiveScissorCount( exclusiveScissorCount_ )
  37256. , pExclusiveScissors( pExclusiveScissors_ )
  37257. {}
  37258. PipelineViewportExclusiveScissorStateCreateInfoNV( VkPipelineViewportExclusiveScissorStateCreateInfoNV const & rhs )
  37259. {
  37260. *reinterpret_cast<VkPipelineViewportExclusiveScissorStateCreateInfoNV*>(this) = rhs;
  37261. }
  37262. PipelineViewportExclusiveScissorStateCreateInfoNV& operator=( VkPipelineViewportExclusiveScissorStateCreateInfoNV const & rhs )
  37263. {
  37264. *reinterpret_cast<VkPipelineViewportExclusiveScissorStateCreateInfoNV*>(this) = rhs;
  37265. return *this;
  37266. }
  37267. PipelineViewportExclusiveScissorStateCreateInfoNV & setPNext( const void* pNext_ )
  37268. {
  37269. pNext = pNext_;
  37270. return *this;
  37271. }
  37272. PipelineViewportExclusiveScissorStateCreateInfoNV & setExclusiveScissorCount( uint32_t exclusiveScissorCount_ )
  37273. {
  37274. exclusiveScissorCount = exclusiveScissorCount_;
  37275. return *this;
  37276. }
  37277. PipelineViewportExclusiveScissorStateCreateInfoNV & setPExclusiveScissors( const Rect2D* pExclusiveScissors_ )
  37278. {
  37279. pExclusiveScissors = pExclusiveScissors_;
  37280. return *this;
  37281. }
  37282. operator VkPipelineViewportExclusiveScissorStateCreateInfoNV const&() const
  37283. {
  37284. return *reinterpret_cast<const VkPipelineViewportExclusiveScissorStateCreateInfoNV*>( this );
  37285. }
  37286. operator VkPipelineViewportExclusiveScissorStateCreateInfoNV &()
  37287. {
  37288. return *reinterpret_cast<VkPipelineViewportExclusiveScissorStateCreateInfoNV*>( this );
  37289. }
  37290. bool operator==( PipelineViewportExclusiveScissorStateCreateInfoNV const& rhs ) const
  37291. {
  37292. return ( sType == rhs.sType )
  37293. && ( pNext == rhs.pNext )
  37294. && ( exclusiveScissorCount == rhs.exclusiveScissorCount )
  37295. && ( pExclusiveScissors == rhs.pExclusiveScissors );
  37296. }
  37297. bool operator!=( PipelineViewportExclusiveScissorStateCreateInfoNV const& rhs ) const
  37298. {
  37299. return !operator==( rhs );
  37300. }
  37301. private:
  37302. StructureType sType = StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV;
  37303. public:
  37304. const void* pNext = nullptr;
  37305. uint32_t exclusiveScissorCount;
  37306. const Rect2D* pExclusiveScissors;
  37307. };
  37308. static_assert( sizeof( PipelineViewportExclusiveScissorStateCreateInfoNV ) == sizeof( VkPipelineViewportExclusiveScissorStateCreateInfoNV ), "struct and wrapper have different size!" );
  37309. struct ShadingRatePaletteNV
  37310. {
  37311. ShadingRatePaletteNV( uint32_t shadingRatePaletteEntryCount_ = 0,
  37312. const ShadingRatePaletteEntryNV* pShadingRatePaletteEntries_ = nullptr )
  37313. : shadingRatePaletteEntryCount( shadingRatePaletteEntryCount_ )
  37314. , pShadingRatePaletteEntries( pShadingRatePaletteEntries_ )
  37315. {}
  37316. ShadingRatePaletteNV( VkShadingRatePaletteNV const & rhs )
  37317. {
  37318. *reinterpret_cast<VkShadingRatePaletteNV*>(this) = rhs;
  37319. }
  37320. ShadingRatePaletteNV& operator=( VkShadingRatePaletteNV const & rhs )
  37321. {
  37322. *reinterpret_cast<VkShadingRatePaletteNV*>(this) = rhs;
  37323. return *this;
  37324. }
  37325. ShadingRatePaletteNV & setShadingRatePaletteEntryCount( uint32_t shadingRatePaletteEntryCount_ )
  37326. {
  37327. shadingRatePaletteEntryCount = shadingRatePaletteEntryCount_;
  37328. return *this;
  37329. }
  37330. ShadingRatePaletteNV & setPShadingRatePaletteEntries( const ShadingRatePaletteEntryNV* pShadingRatePaletteEntries_ )
  37331. {
  37332. pShadingRatePaletteEntries = pShadingRatePaletteEntries_;
  37333. return *this;
  37334. }
  37335. operator VkShadingRatePaletteNV const&() const
  37336. {
  37337. return *reinterpret_cast<const VkShadingRatePaletteNV*>( this );
  37338. }
  37339. operator VkShadingRatePaletteNV &()
  37340. {
  37341. return *reinterpret_cast<VkShadingRatePaletteNV*>( this );
  37342. }
  37343. bool operator==( ShadingRatePaletteNV const& rhs ) const
  37344. {
  37345. return ( shadingRatePaletteEntryCount == rhs.shadingRatePaletteEntryCount )
  37346. && ( pShadingRatePaletteEntries == rhs.pShadingRatePaletteEntries );
  37347. }
  37348. bool operator!=( ShadingRatePaletteNV const& rhs ) const
  37349. {
  37350. return !operator==( rhs );
  37351. }
  37352. uint32_t shadingRatePaletteEntryCount;
  37353. const ShadingRatePaletteEntryNV* pShadingRatePaletteEntries;
  37354. };
  37355. static_assert( sizeof( ShadingRatePaletteNV ) == sizeof( VkShadingRatePaletteNV ), "struct and wrapper have different size!" );
  37356. struct PipelineViewportShadingRateImageStateCreateInfoNV
  37357. {
  37358. PipelineViewportShadingRateImageStateCreateInfoNV( Bool32 shadingRateImageEnable_ = 0,
  37359. uint32_t viewportCount_ = 0,
  37360. const ShadingRatePaletteNV* pShadingRatePalettes_ = nullptr )
  37361. : shadingRateImageEnable( shadingRateImageEnable_ )
  37362. , viewportCount( viewportCount_ )
  37363. , pShadingRatePalettes( pShadingRatePalettes_ )
  37364. {}
  37365. PipelineViewportShadingRateImageStateCreateInfoNV( VkPipelineViewportShadingRateImageStateCreateInfoNV const & rhs )
  37366. {
  37367. *reinterpret_cast<VkPipelineViewportShadingRateImageStateCreateInfoNV*>(this) = rhs;
  37368. }
  37369. PipelineViewportShadingRateImageStateCreateInfoNV& operator=( VkPipelineViewportShadingRateImageStateCreateInfoNV const & rhs )
  37370. {
  37371. *reinterpret_cast<VkPipelineViewportShadingRateImageStateCreateInfoNV*>(this) = rhs;
  37372. return *this;
  37373. }
  37374. PipelineViewportShadingRateImageStateCreateInfoNV & setPNext( const void* pNext_ )
  37375. {
  37376. pNext = pNext_;
  37377. return *this;
  37378. }
  37379. PipelineViewportShadingRateImageStateCreateInfoNV & setShadingRateImageEnable( Bool32 shadingRateImageEnable_ )
  37380. {
  37381. shadingRateImageEnable = shadingRateImageEnable_;
  37382. return *this;
  37383. }
  37384. PipelineViewportShadingRateImageStateCreateInfoNV & setViewportCount( uint32_t viewportCount_ )
  37385. {
  37386. viewportCount = viewportCount_;
  37387. return *this;
  37388. }
  37389. PipelineViewportShadingRateImageStateCreateInfoNV & setPShadingRatePalettes( const ShadingRatePaletteNV* pShadingRatePalettes_ )
  37390. {
  37391. pShadingRatePalettes = pShadingRatePalettes_;
  37392. return *this;
  37393. }
  37394. operator VkPipelineViewportShadingRateImageStateCreateInfoNV const&() const
  37395. {
  37396. return *reinterpret_cast<const VkPipelineViewportShadingRateImageStateCreateInfoNV*>( this );
  37397. }
  37398. operator VkPipelineViewportShadingRateImageStateCreateInfoNV &()
  37399. {
  37400. return *reinterpret_cast<VkPipelineViewportShadingRateImageStateCreateInfoNV*>( this );
  37401. }
  37402. bool operator==( PipelineViewportShadingRateImageStateCreateInfoNV const& rhs ) const
  37403. {
  37404. return ( sType == rhs.sType )
  37405. && ( pNext == rhs.pNext )
  37406. && ( shadingRateImageEnable == rhs.shadingRateImageEnable )
  37407. && ( viewportCount == rhs.viewportCount )
  37408. && ( pShadingRatePalettes == rhs.pShadingRatePalettes );
  37409. }
  37410. bool operator!=( PipelineViewportShadingRateImageStateCreateInfoNV const& rhs ) const
  37411. {
  37412. return !operator==( rhs );
  37413. }
  37414. private:
  37415. StructureType sType = StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV;
  37416. public:
  37417. const void* pNext = nullptr;
  37418. Bool32 shadingRateImageEnable;
  37419. uint32_t viewportCount;
  37420. const ShadingRatePaletteNV* pShadingRatePalettes;
  37421. };
  37422. static_assert( sizeof( PipelineViewportShadingRateImageStateCreateInfoNV ) == sizeof( VkPipelineViewportShadingRateImageStateCreateInfoNV ), "struct and wrapper have different size!" );
  37423. struct ViewportSwizzleNV
  37424. {
  37425. ViewportSwizzleNV( ViewportCoordinateSwizzleNV x_ = ViewportCoordinateSwizzleNV::ePositiveX,
  37426. ViewportCoordinateSwizzleNV y_ = ViewportCoordinateSwizzleNV::ePositiveX,
  37427. ViewportCoordinateSwizzleNV z_ = ViewportCoordinateSwizzleNV::ePositiveX,
  37428. ViewportCoordinateSwizzleNV w_ = ViewportCoordinateSwizzleNV::ePositiveX )
  37429. : x( x_ )
  37430. , y( y_ )
  37431. , z( z_ )
  37432. , w( w_ )
  37433. {}
  37434. ViewportSwizzleNV( VkViewportSwizzleNV const & rhs )
  37435. {
  37436. *reinterpret_cast<VkViewportSwizzleNV*>(this) = rhs;
  37437. }
  37438. ViewportSwizzleNV& operator=( VkViewportSwizzleNV const & rhs )
  37439. {
  37440. *reinterpret_cast<VkViewportSwizzleNV*>(this) = rhs;
  37441. return *this;
  37442. }
  37443. ViewportSwizzleNV & setX( ViewportCoordinateSwizzleNV x_ )
  37444. {
  37445. x = x_;
  37446. return *this;
  37447. }
  37448. ViewportSwizzleNV & setY( ViewportCoordinateSwizzleNV y_ )
  37449. {
  37450. y = y_;
  37451. return *this;
  37452. }
  37453. ViewportSwizzleNV & setZ( ViewportCoordinateSwizzleNV z_ )
  37454. {
  37455. z = z_;
  37456. return *this;
  37457. }
  37458. ViewportSwizzleNV & setW( ViewportCoordinateSwizzleNV w_ )
  37459. {
  37460. w = w_;
  37461. return *this;
  37462. }
  37463. operator VkViewportSwizzleNV const&() const
  37464. {
  37465. return *reinterpret_cast<const VkViewportSwizzleNV*>( this );
  37466. }
  37467. operator VkViewportSwizzleNV &()
  37468. {
  37469. return *reinterpret_cast<VkViewportSwizzleNV*>( this );
  37470. }
  37471. bool operator==( ViewportSwizzleNV const& rhs ) const
  37472. {
  37473. return ( x == rhs.x )
  37474. && ( y == rhs.y )
  37475. && ( z == rhs.z )
  37476. && ( w == rhs.w );
  37477. }
  37478. bool operator!=( ViewportSwizzleNV const& rhs ) const
  37479. {
  37480. return !operator==( rhs );
  37481. }
  37482. ViewportCoordinateSwizzleNV x;
  37483. ViewportCoordinateSwizzleNV y;
  37484. ViewportCoordinateSwizzleNV z;
  37485. ViewportCoordinateSwizzleNV w;
  37486. };
  37487. static_assert( sizeof( ViewportSwizzleNV ) == sizeof( VkViewportSwizzleNV ), "struct and wrapper have different size!" );
  37488. struct PipelineViewportSwizzleStateCreateInfoNV
  37489. {
  37490. PipelineViewportSwizzleStateCreateInfoNV( PipelineViewportSwizzleStateCreateFlagsNV flags_ = PipelineViewportSwizzleStateCreateFlagsNV(),
  37491. uint32_t viewportCount_ = 0,
  37492. const ViewportSwizzleNV* pViewportSwizzles_ = nullptr )
  37493. : flags( flags_ )
  37494. , viewportCount( viewportCount_ )
  37495. , pViewportSwizzles( pViewportSwizzles_ )
  37496. {}
  37497. PipelineViewportSwizzleStateCreateInfoNV( VkPipelineViewportSwizzleStateCreateInfoNV const & rhs )
  37498. {
  37499. *reinterpret_cast<VkPipelineViewportSwizzleStateCreateInfoNV*>(this) = rhs;
  37500. }
  37501. PipelineViewportSwizzleStateCreateInfoNV& operator=( VkPipelineViewportSwizzleStateCreateInfoNV const & rhs )
  37502. {
  37503. *reinterpret_cast<VkPipelineViewportSwizzleStateCreateInfoNV*>(this) = rhs;
  37504. return *this;
  37505. }
  37506. PipelineViewportSwizzleStateCreateInfoNV & setPNext( const void* pNext_ )
  37507. {
  37508. pNext = pNext_;
  37509. return *this;
  37510. }
  37511. PipelineViewportSwizzleStateCreateInfoNV & setFlags( PipelineViewportSwizzleStateCreateFlagsNV flags_ )
  37512. {
  37513. flags = flags_;
  37514. return *this;
  37515. }
  37516. PipelineViewportSwizzleStateCreateInfoNV & setViewportCount( uint32_t viewportCount_ )
  37517. {
  37518. viewportCount = viewportCount_;
  37519. return *this;
  37520. }
  37521. PipelineViewportSwizzleStateCreateInfoNV & setPViewportSwizzles( const ViewportSwizzleNV* pViewportSwizzles_ )
  37522. {
  37523. pViewportSwizzles = pViewportSwizzles_;
  37524. return *this;
  37525. }
  37526. operator VkPipelineViewportSwizzleStateCreateInfoNV const&() const
  37527. {
  37528. return *reinterpret_cast<const VkPipelineViewportSwizzleStateCreateInfoNV*>( this );
  37529. }
  37530. operator VkPipelineViewportSwizzleStateCreateInfoNV &()
  37531. {
  37532. return *reinterpret_cast<VkPipelineViewportSwizzleStateCreateInfoNV*>( this );
  37533. }
  37534. bool operator==( PipelineViewportSwizzleStateCreateInfoNV const& rhs ) const
  37535. {
  37536. return ( sType == rhs.sType )
  37537. && ( pNext == rhs.pNext )
  37538. && ( flags == rhs.flags )
  37539. && ( viewportCount == rhs.viewportCount )
  37540. && ( pViewportSwizzles == rhs.pViewportSwizzles );
  37541. }
  37542. bool operator!=( PipelineViewportSwizzleStateCreateInfoNV const& rhs ) const
  37543. {
  37544. return !operator==( rhs );
  37545. }
  37546. private:
  37547. StructureType sType = StructureType::ePipelineViewportSwizzleStateCreateInfoNV;
  37548. public:
  37549. const void* pNext = nullptr;
  37550. PipelineViewportSwizzleStateCreateFlagsNV flags;
  37551. uint32_t viewportCount;
  37552. const ViewportSwizzleNV* pViewportSwizzles;
  37553. };
  37554. static_assert( sizeof( PipelineViewportSwizzleStateCreateInfoNV ) == sizeof( VkPipelineViewportSwizzleStateCreateInfoNV ), "struct and wrapper have different size!" );
  37555. struct ViewportWScalingNV
  37556. {
  37557. ViewportWScalingNV( float xcoeff_ = 0,
  37558. float ycoeff_ = 0 )
  37559. : xcoeff( xcoeff_ )
  37560. , ycoeff( ycoeff_ )
  37561. {}
  37562. ViewportWScalingNV( VkViewportWScalingNV const & rhs )
  37563. {
  37564. *reinterpret_cast<VkViewportWScalingNV*>(this) = rhs;
  37565. }
  37566. ViewportWScalingNV& operator=( VkViewportWScalingNV const & rhs )
  37567. {
  37568. *reinterpret_cast<VkViewportWScalingNV*>(this) = rhs;
  37569. return *this;
  37570. }
  37571. ViewportWScalingNV & setXcoeff( float xcoeff_ )
  37572. {
  37573. xcoeff = xcoeff_;
  37574. return *this;
  37575. }
  37576. ViewportWScalingNV & setYcoeff( float ycoeff_ )
  37577. {
  37578. ycoeff = ycoeff_;
  37579. return *this;
  37580. }
  37581. operator VkViewportWScalingNV const&() const
  37582. {
  37583. return *reinterpret_cast<const VkViewportWScalingNV*>( this );
  37584. }
  37585. operator VkViewportWScalingNV &()
  37586. {
  37587. return *reinterpret_cast<VkViewportWScalingNV*>( this );
  37588. }
  37589. bool operator==( ViewportWScalingNV const& rhs ) const
  37590. {
  37591. return ( xcoeff == rhs.xcoeff )
  37592. && ( ycoeff == rhs.ycoeff );
  37593. }
  37594. bool operator!=( ViewportWScalingNV const& rhs ) const
  37595. {
  37596. return !operator==( rhs );
  37597. }
  37598. float xcoeff;
  37599. float ycoeff;
  37600. };
  37601. static_assert( sizeof( ViewportWScalingNV ) == sizeof( VkViewportWScalingNV ), "struct and wrapper have different size!" );
  37602. struct PipelineViewportWScalingStateCreateInfoNV
  37603. {
  37604. PipelineViewportWScalingStateCreateInfoNV( Bool32 viewportWScalingEnable_ = 0,
  37605. uint32_t viewportCount_ = 0,
  37606. const ViewportWScalingNV* pViewportWScalings_ = nullptr )
  37607. : viewportWScalingEnable( viewportWScalingEnable_ )
  37608. , viewportCount( viewportCount_ )
  37609. , pViewportWScalings( pViewportWScalings_ )
  37610. {}
  37611. PipelineViewportWScalingStateCreateInfoNV( VkPipelineViewportWScalingStateCreateInfoNV const & rhs )
  37612. {
  37613. *reinterpret_cast<VkPipelineViewportWScalingStateCreateInfoNV*>(this) = rhs;
  37614. }
  37615. PipelineViewportWScalingStateCreateInfoNV& operator=( VkPipelineViewportWScalingStateCreateInfoNV const & rhs )
  37616. {
  37617. *reinterpret_cast<VkPipelineViewportWScalingStateCreateInfoNV*>(this) = rhs;
  37618. return *this;
  37619. }
  37620. PipelineViewportWScalingStateCreateInfoNV & setPNext( const void* pNext_ )
  37621. {
  37622. pNext = pNext_;
  37623. return *this;
  37624. }
  37625. PipelineViewportWScalingStateCreateInfoNV & setViewportWScalingEnable( Bool32 viewportWScalingEnable_ )
  37626. {
  37627. viewportWScalingEnable = viewportWScalingEnable_;
  37628. return *this;
  37629. }
  37630. PipelineViewportWScalingStateCreateInfoNV & setViewportCount( uint32_t viewportCount_ )
  37631. {
  37632. viewportCount = viewportCount_;
  37633. return *this;
  37634. }
  37635. PipelineViewportWScalingStateCreateInfoNV & setPViewportWScalings( const ViewportWScalingNV* pViewportWScalings_ )
  37636. {
  37637. pViewportWScalings = pViewportWScalings_;
  37638. return *this;
  37639. }
  37640. operator VkPipelineViewportWScalingStateCreateInfoNV const&() const
  37641. {
  37642. return *reinterpret_cast<const VkPipelineViewportWScalingStateCreateInfoNV*>( this );
  37643. }
  37644. operator VkPipelineViewportWScalingStateCreateInfoNV &()
  37645. {
  37646. return *reinterpret_cast<VkPipelineViewportWScalingStateCreateInfoNV*>( this );
  37647. }
  37648. bool operator==( PipelineViewportWScalingStateCreateInfoNV const& rhs ) const
  37649. {
  37650. return ( sType == rhs.sType )
  37651. && ( pNext == rhs.pNext )
  37652. && ( viewportWScalingEnable == rhs.viewportWScalingEnable )
  37653. && ( viewportCount == rhs.viewportCount )
  37654. && ( pViewportWScalings == rhs.pViewportWScalings );
  37655. }
  37656. bool operator!=( PipelineViewportWScalingStateCreateInfoNV const& rhs ) const
  37657. {
  37658. return !operator==( rhs );
  37659. }
  37660. private:
  37661. StructureType sType = StructureType::ePipelineViewportWScalingStateCreateInfoNV;
  37662. public:
  37663. const void* pNext = nullptr;
  37664. Bool32 viewportWScalingEnable;
  37665. uint32_t viewportCount;
  37666. const ViewportWScalingNV* pViewportWScalings;
  37667. };
  37668. static_assert( sizeof( PipelineViewportWScalingStateCreateInfoNV ) == sizeof( VkPipelineViewportWScalingStateCreateInfoNV ), "struct and wrapper have different size!" );
  37669. #ifdef VK_USE_PLATFORM_GGP
  37670. struct PresentFrameTokenGGP
  37671. {
  37672. PresentFrameTokenGGP( GgpFrameToken frameToken_ = 0 )
  37673. : frameToken( frameToken_ )
  37674. {}
  37675. PresentFrameTokenGGP( VkPresentFrameTokenGGP const & rhs )
  37676. {
  37677. *reinterpret_cast<VkPresentFrameTokenGGP*>(this) = rhs;
  37678. }
  37679. PresentFrameTokenGGP& operator=( VkPresentFrameTokenGGP const & rhs )
  37680. {
  37681. *reinterpret_cast<VkPresentFrameTokenGGP*>(this) = rhs;
  37682. return *this;
  37683. }
  37684. PresentFrameTokenGGP & setPNext( const void* pNext_ )
  37685. {
  37686. pNext = pNext_;
  37687. return *this;
  37688. }
  37689. PresentFrameTokenGGP & setFrameToken( GgpFrameToken frameToken_ )
  37690. {
  37691. frameToken = frameToken_;
  37692. return *this;
  37693. }
  37694. operator VkPresentFrameTokenGGP const&() const
  37695. {
  37696. return *reinterpret_cast<const VkPresentFrameTokenGGP*>( this );
  37697. }
  37698. operator VkPresentFrameTokenGGP &()
  37699. {
  37700. return *reinterpret_cast<VkPresentFrameTokenGGP*>( this );
  37701. }
  37702. bool operator==( PresentFrameTokenGGP const& rhs ) const
  37703. {
  37704. return ( sType == rhs.sType )
  37705. && ( pNext == rhs.pNext )
  37706. && ( frameToken == rhs.frameToken );
  37707. }
  37708. bool operator!=( PresentFrameTokenGGP const& rhs ) const
  37709. {
  37710. return !operator==( rhs );
  37711. }
  37712. private:
  37713. StructureType sType = StructureType::ePresentFrameTokenGGP;
  37714. public:
  37715. const void* pNext = nullptr;
  37716. GgpFrameToken frameToken;
  37717. };
  37718. static_assert( sizeof( PresentFrameTokenGGP ) == sizeof( VkPresentFrameTokenGGP ), "struct and wrapper have different size!" );
  37719. #endif /*VK_USE_PLATFORM_GGP*/
  37720. struct PresentInfoKHR
  37721. {
  37722. PresentInfoKHR( uint32_t waitSemaphoreCount_ = 0,
  37723. const Semaphore* pWaitSemaphores_ = nullptr,
  37724. uint32_t swapchainCount_ = 0,
  37725. const SwapchainKHR* pSwapchains_ = nullptr,
  37726. const uint32_t* pImageIndices_ = nullptr,
  37727. Result* pResults_ = nullptr )
  37728. : waitSemaphoreCount( waitSemaphoreCount_ )
  37729. , pWaitSemaphores( pWaitSemaphores_ )
  37730. , swapchainCount( swapchainCount_ )
  37731. , pSwapchains( pSwapchains_ )
  37732. , pImageIndices( pImageIndices_ )
  37733. , pResults( pResults_ )
  37734. {}
  37735. PresentInfoKHR( VkPresentInfoKHR const & rhs )
  37736. {
  37737. *reinterpret_cast<VkPresentInfoKHR*>(this) = rhs;
  37738. }
  37739. PresentInfoKHR& operator=( VkPresentInfoKHR const & rhs )
  37740. {
  37741. *reinterpret_cast<VkPresentInfoKHR*>(this) = rhs;
  37742. return *this;
  37743. }
  37744. PresentInfoKHR & setPNext( const void* pNext_ )
  37745. {
  37746. pNext = pNext_;
  37747. return *this;
  37748. }
  37749. PresentInfoKHR & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ )
  37750. {
  37751. waitSemaphoreCount = waitSemaphoreCount_;
  37752. return *this;
  37753. }
  37754. PresentInfoKHR & setPWaitSemaphores( const Semaphore* pWaitSemaphores_ )
  37755. {
  37756. pWaitSemaphores = pWaitSemaphores_;
  37757. return *this;
  37758. }
  37759. PresentInfoKHR & setSwapchainCount( uint32_t swapchainCount_ )
  37760. {
  37761. swapchainCount = swapchainCount_;
  37762. return *this;
  37763. }
  37764. PresentInfoKHR & setPSwapchains( const SwapchainKHR* pSwapchains_ )
  37765. {
  37766. pSwapchains = pSwapchains_;
  37767. return *this;
  37768. }
  37769. PresentInfoKHR & setPImageIndices( const uint32_t* pImageIndices_ )
  37770. {
  37771. pImageIndices = pImageIndices_;
  37772. return *this;
  37773. }
  37774. PresentInfoKHR & setPResults( Result* pResults_ )
  37775. {
  37776. pResults = pResults_;
  37777. return *this;
  37778. }
  37779. operator VkPresentInfoKHR const&() const
  37780. {
  37781. return *reinterpret_cast<const VkPresentInfoKHR*>( this );
  37782. }
  37783. operator VkPresentInfoKHR &()
  37784. {
  37785. return *reinterpret_cast<VkPresentInfoKHR*>( this );
  37786. }
  37787. bool operator==( PresentInfoKHR const& rhs ) const
  37788. {
  37789. return ( sType == rhs.sType )
  37790. && ( pNext == rhs.pNext )
  37791. && ( waitSemaphoreCount == rhs.waitSemaphoreCount )
  37792. && ( pWaitSemaphores == rhs.pWaitSemaphores )
  37793. && ( swapchainCount == rhs.swapchainCount )
  37794. && ( pSwapchains == rhs.pSwapchains )
  37795. && ( pImageIndices == rhs.pImageIndices )
  37796. && ( pResults == rhs.pResults );
  37797. }
  37798. bool operator!=( PresentInfoKHR const& rhs ) const
  37799. {
  37800. return !operator==( rhs );
  37801. }
  37802. private:
  37803. StructureType sType = StructureType::ePresentInfoKHR;
  37804. public:
  37805. const void* pNext = nullptr;
  37806. uint32_t waitSemaphoreCount;
  37807. const Semaphore* pWaitSemaphores;
  37808. uint32_t swapchainCount;
  37809. const SwapchainKHR* pSwapchains;
  37810. const uint32_t* pImageIndices;
  37811. Result* pResults;
  37812. };
  37813. static_assert( sizeof( PresentInfoKHR ) == sizeof( VkPresentInfoKHR ), "struct and wrapper have different size!" );
  37814. struct RectLayerKHR
  37815. {
  37816. RectLayerKHR( Offset2D offset_ = Offset2D(),
  37817. Extent2D extent_ = Extent2D(),
  37818. uint32_t layer_ = 0 )
  37819. : offset( offset_ )
  37820. , extent( extent_ )
  37821. , layer( layer_ )
  37822. {}
  37823. explicit RectLayerKHR( Rect2D const& rect2D,
  37824. uint32_t layer_ = 0 )
  37825. : offset( rect2D.offset )
  37826. , extent( rect2D.extent )
  37827. , layer( layer_ )
  37828. {}
  37829. RectLayerKHR( VkRectLayerKHR const & rhs )
  37830. {
  37831. *reinterpret_cast<VkRectLayerKHR*>(this) = rhs;
  37832. }
  37833. RectLayerKHR& operator=( VkRectLayerKHR const & rhs )
  37834. {
  37835. *reinterpret_cast<VkRectLayerKHR*>(this) = rhs;
  37836. return *this;
  37837. }
  37838. RectLayerKHR & setOffset( Offset2D offset_ )
  37839. {
  37840. offset = offset_;
  37841. return *this;
  37842. }
  37843. RectLayerKHR & setExtent( Extent2D extent_ )
  37844. {
  37845. extent = extent_;
  37846. return *this;
  37847. }
  37848. RectLayerKHR & setLayer( uint32_t layer_ )
  37849. {
  37850. layer = layer_;
  37851. return *this;
  37852. }
  37853. operator VkRectLayerKHR const&() const
  37854. {
  37855. return *reinterpret_cast<const VkRectLayerKHR*>( this );
  37856. }
  37857. operator VkRectLayerKHR &()
  37858. {
  37859. return *reinterpret_cast<VkRectLayerKHR*>( this );
  37860. }
  37861. bool operator==( RectLayerKHR const& rhs ) const
  37862. {
  37863. return ( offset == rhs.offset )
  37864. && ( extent == rhs.extent )
  37865. && ( layer == rhs.layer );
  37866. }
  37867. bool operator!=( RectLayerKHR const& rhs ) const
  37868. {
  37869. return !operator==( rhs );
  37870. }
  37871. Offset2D offset;
  37872. Extent2D extent;
  37873. uint32_t layer;
  37874. };
  37875. static_assert( sizeof( RectLayerKHR ) == sizeof( VkRectLayerKHR ), "struct and wrapper have different size!" );
  37876. struct PresentRegionKHR
  37877. {
  37878. PresentRegionKHR( uint32_t rectangleCount_ = 0,
  37879. const RectLayerKHR* pRectangles_ = nullptr )
  37880. : rectangleCount( rectangleCount_ )
  37881. , pRectangles( pRectangles_ )
  37882. {}
  37883. PresentRegionKHR( VkPresentRegionKHR const & rhs )
  37884. {
  37885. *reinterpret_cast<VkPresentRegionKHR*>(this) = rhs;
  37886. }
  37887. PresentRegionKHR& operator=( VkPresentRegionKHR const & rhs )
  37888. {
  37889. *reinterpret_cast<VkPresentRegionKHR*>(this) = rhs;
  37890. return *this;
  37891. }
  37892. PresentRegionKHR & setRectangleCount( uint32_t rectangleCount_ )
  37893. {
  37894. rectangleCount = rectangleCount_;
  37895. return *this;
  37896. }
  37897. PresentRegionKHR & setPRectangles( const RectLayerKHR* pRectangles_ )
  37898. {
  37899. pRectangles = pRectangles_;
  37900. return *this;
  37901. }
  37902. operator VkPresentRegionKHR const&() const
  37903. {
  37904. return *reinterpret_cast<const VkPresentRegionKHR*>( this );
  37905. }
  37906. operator VkPresentRegionKHR &()
  37907. {
  37908. return *reinterpret_cast<VkPresentRegionKHR*>( this );
  37909. }
  37910. bool operator==( PresentRegionKHR const& rhs ) const
  37911. {
  37912. return ( rectangleCount == rhs.rectangleCount )
  37913. && ( pRectangles == rhs.pRectangles );
  37914. }
  37915. bool operator!=( PresentRegionKHR const& rhs ) const
  37916. {
  37917. return !operator==( rhs );
  37918. }
  37919. uint32_t rectangleCount;
  37920. const RectLayerKHR* pRectangles;
  37921. };
  37922. static_assert( sizeof( PresentRegionKHR ) == sizeof( VkPresentRegionKHR ), "struct and wrapper have different size!" );
  37923. struct PresentRegionsKHR
  37924. {
  37925. PresentRegionsKHR( uint32_t swapchainCount_ = 0,
  37926. const PresentRegionKHR* pRegions_ = nullptr )
  37927. : swapchainCount( swapchainCount_ )
  37928. , pRegions( pRegions_ )
  37929. {}
  37930. PresentRegionsKHR( VkPresentRegionsKHR const & rhs )
  37931. {
  37932. *reinterpret_cast<VkPresentRegionsKHR*>(this) = rhs;
  37933. }
  37934. PresentRegionsKHR& operator=( VkPresentRegionsKHR const & rhs )
  37935. {
  37936. *reinterpret_cast<VkPresentRegionsKHR*>(this) = rhs;
  37937. return *this;
  37938. }
  37939. PresentRegionsKHR & setPNext( const void* pNext_ )
  37940. {
  37941. pNext = pNext_;
  37942. return *this;
  37943. }
  37944. PresentRegionsKHR & setSwapchainCount( uint32_t swapchainCount_ )
  37945. {
  37946. swapchainCount = swapchainCount_;
  37947. return *this;
  37948. }
  37949. PresentRegionsKHR & setPRegions( const PresentRegionKHR* pRegions_ )
  37950. {
  37951. pRegions = pRegions_;
  37952. return *this;
  37953. }
  37954. operator VkPresentRegionsKHR const&() const
  37955. {
  37956. return *reinterpret_cast<const VkPresentRegionsKHR*>( this );
  37957. }
  37958. operator VkPresentRegionsKHR &()
  37959. {
  37960. return *reinterpret_cast<VkPresentRegionsKHR*>( this );
  37961. }
  37962. bool operator==( PresentRegionsKHR const& rhs ) const
  37963. {
  37964. return ( sType == rhs.sType )
  37965. && ( pNext == rhs.pNext )
  37966. && ( swapchainCount == rhs.swapchainCount )
  37967. && ( pRegions == rhs.pRegions );
  37968. }
  37969. bool operator!=( PresentRegionsKHR const& rhs ) const
  37970. {
  37971. return !operator==( rhs );
  37972. }
  37973. private:
  37974. StructureType sType = StructureType::ePresentRegionsKHR;
  37975. public:
  37976. const void* pNext = nullptr;
  37977. uint32_t swapchainCount;
  37978. const PresentRegionKHR* pRegions;
  37979. };
  37980. static_assert( sizeof( PresentRegionsKHR ) == sizeof( VkPresentRegionsKHR ), "struct and wrapper have different size!" );
  37981. struct PresentTimeGOOGLE
  37982. {
  37983. PresentTimeGOOGLE( uint32_t presentID_ = 0,
  37984. uint64_t desiredPresentTime_ = 0 )
  37985. : presentID( presentID_ )
  37986. , desiredPresentTime( desiredPresentTime_ )
  37987. {}
  37988. PresentTimeGOOGLE( VkPresentTimeGOOGLE const & rhs )
  37989. {
  37990. *reinterpret_cast<VkPresentTimeGOOGLE*>(this) = rhs;
  37991. }
  37992. PresentTimeGOOGLE& operator=( VkPresentTimeGOOGLE const & rhs )
  37993. {
  37994. *reinterpret_cast<VkPresentTimeGOOGLE*>(this) = rhs;
  37995. return *this;
  37996. }
  37997. PresentTimeGOOGLE & setPresentID( uint32_t presentID_ )
  37998. {
  37999. presentID = presentID_;
  38000. return *this;
  38001. }
  38002. PresentTimeGOOGLE & setDesiredPresentTime( uint64_t desiredPresentTime_ )
  38003. {
  38004. desiredPresentTime = desiredPresentTime_;
  38005. return *this;
  38006. }
  38007. operator VkPresentTimeGOOGLE const&() const
  38008. {
  38009. return *reinterpret_cast<const VkPresentTimeGOOGLE*>( this );
  38010. }
  38011. operator VkPresentTimeGOOGLE &()
  38012. {
  38013. return *reinterpret_cast<VkPresentTimeGOOGLE*>( this );
  38014. }
  38015. bool operator==( PresentTimeGOOGLE const& rhs ) const
  38016. {
  38017. return ( presentID == rhs.presentID )
  38018. && ( desiredPresentTime == rhs.desiredPresentTime );
  38019. }
  38020. bool operator!=( PresentTimeGOOGLE const& rhs ) const
  38021. {
  38022. return !operator==( rhs );
  38023. }
  38024. uint32_t presentID;
  38025. uint64_t desiredPresentTime;
  38026. };
  38027. static_assert( sizeof( PresentTimeGOOGLE ) == sizeof( VkPresentTimeGOOGLE ), "struct and wrapper have different size!" );
  38028. struct PresentTimesInfoGOOGLE
  38029. {
  38030. PresentTimesInfoGOOGLE( uint32_t swapchainCount_ = 0,
  38031. const PresentTimeGOOGLE* pTimes_ = nullptr )
  38032. : swapchainCount( swapchainCount_ )
  38033. , pTimes( pTimes_ )
  38034. {}
  38035. PresentTimesInfoGOOGLE( VkPresentTimesInfoGOOGLE const & rhs )
  38036. {
  38037. *reinterpret_cast<VkPresentTimesInfoGOOGLE*>(this) = rhs;
  38038. }
  38039. PresentTimesInfoGOOGLE& operator=( VkPresentTimesInfoGOOGLE const & rhs )
  38040. {
  38041. *reinterpret_cast<VkPresentTimesInfoGOOGLE*>(this) = rhs;
  38042. return *this;
  38043. }
  38044. PresentTimesInfoGOOGLE & setPNext( const void* pNext_ )
  38045. {
  38046. pNext = pNext_;
  38047. return *this;
  38048. }
  38049. PresentTimesInfoGOOGLE & setSwapchainCount( uint32_t swapchainCount_ )
  38050. {
  38051. swapchainCount = swapchainCount_;
  38052. return *this;
  38053. }
  38054. PresentTimesInfoGOOGLE & setPTimes( const PresentTimeGOOGLE* pTimes_ )
  38055. {
  38056. pTimes = pTimes_;
  38057. return *this;
  38058. }
  38059. operator VkPresentTimesInfoGOOGLE const&() const
  38060. {
  38061. return *reinterpret_cast<const VkPresentTimesInfoGOOGLE*>( this );
  38062. }
  38063. operator VkPresentTimesInfoGOOGLE &()
  38064. {
  38065. return *reinterpret_cast<VkPresentTimesInfoGOOGLE*>( this );
  38066. }
  38067. bool operator==( PresentTimesInfoGOOGLE const& rhs ) const
  38068. {
  38069. return ( sType == rhs.sType )
  38070. && ( pNext == rhs.pNext )
  38071. && ( swapchainCount == rhs.swapchainCount )
  38072. && ( pTimes == rhs.pTimes );
  38073. }
  38074. bool operator!=( PresentTimesInfoGOOGLE const& rhs ) const
  38075. {
  38076. return !operator==( rhs );
  38077. }
  38078. private:
  38079. StructureType sType = StructureType::ePresentTimesInfoGOOGLE;
  38080. public:
  38081. const void* pNext = nullptr;
  38082. uint32_t swapchainCount;
  38083. const PresentTimeGOOGLE* pTimes;
  38084. };
  38085. static_assert( sizeof( PresentTimesInfoGOOGLE ) == sizeof( VkPresentTimesInfoGOOGLE ), "struct and wrapper have different size!" );
  38086. struct ProtectedSubmitInfo
  38087. {
  38088. ProtectedSubmitInfo( Bool32 protectedSubmit_ = 0 )
  38089. : protectedSubmit( protectedSubmit_ )
  38090. {}
  38091. ProtectedSubmitInfo( VkProtectedSubmitInfo const & rhs )
  38092. {
  38093. *reinterpret_cast<VkProtectedSubmitInfo*>(this) = rhs;
  38094. }
  38095. ProtectedSubmitInfo& operator=( VkProtectedSubmitInfo const & rhs )
  38096. {
  38097. *reinterpret_cast<VkProtectedSubmitInfo*>(this) = rhs;
  38098. return *this;
  38099. }
  38100. ProtectedSubmitInfo & setPNext( const void* pNext_ )
  38101. {
  38102. pNext = pNext_;
  38103. return *this;
  38104. }
  38105. ProtectedSubmitInfo & setProtectedSubmit( Bool32 protectedSubmit_ )
  38106. {
  38107. protectedSubmit = protectedSubmit_;
  38108. return *this;
  38109. }
  38110. operator VkProtectedSubmitInfo const&() const
  38111. {
  38112. return *reinterpret_cast<const VkProtectedSubmitInfo*>( this );
  38113. }
  38114. operator VkProtectedSubmitInfo &()
  38115. {
  38116. return *reinterpret_cast<VkProtectedSubmitInfo*>( this );
  38117. }
  38118. bool operator==( ProtectedSubmitInfo const& rhs ) const
  38119. {
  38120. return ( sType == rhs.sType )
  38121. && ( pNext == rhs.pNext )
  38122. && ( protectedSubmit == rhs.protectedSubmit );
  38123. }
  38124. bool operator!=( ProtectedSubmitInfo const& rhs ) const
  38125. {
  38126. return !operator==( rhs );
  38127. }
  38128. private:
  38129. StructureType sType = StructureType::eProtectedSubmitInfo;
  38130. public:
  38131. const void* pNext = nullptr;
  38132. Bool32 protectedSubmit;
  38133. };
  38134. static_assert( sizeof( ProtectedSubmitInfo ) == sizeof( VkProtectedSubmitInfo ), "struct and wrapper have different size!" );
  38135. struct QueryPoolCreateInfo
  38136. {
  38137. QueryPoolCreateInfo( QueryPoolCreateFlags flags_ = QueryPoolCreateFlags(),
  38138. QueryType queryType_ = QueryType::eOcclusion,
  38139. uint32_t queryCount_ = 0,
  38140. QueryPipelineStatisticFlags pipelineStatistics_ = QueryPipelineStatisticFlags() )
  38141. : flags( flags_ )
  38142. , queryType( queryType_ )
  38143. , queryCount( queryCount_ )
  38144. , pipelineStatistics( pipelineStatistics_ )
  38145. {}
  38146. QueryPoolCreateInfo( VkQueryPoolCreateInfo const & rhs )
  38147. {
  38148. *reinterpret_cast<VkQueryPoolCreateInfo*>(this) = rhs;
  38149. }
  38150. QueryPoolCreateInfo& operator=( VkQueryPoolCreateInfo const & rhs )
  38151. {
  38152. *reinterpret_cast<VkQueryPoolCreateInfo*>(this) = rhs;
  38153. return *this;
  38154. }
  38155. QueryPoolCreateInfo & setPNext( const void* pNext_ )
  38156. {
  38157. pNext = pNext_;
  38158. return *this;
  38159. }
  38160. QueryPoolCreateInfo & setFlags( QueryPoolCreateFlags flags_ )
  38161. {
  38162. flags = flags_;
  38163. return *this;
  38164. }
  38165. QueryPoolCreateInfo & setQueryType( QueryType queryType_ )
  38166. {
  38167. queryType = queryType_;
  38168. return *this;
  38169. }
  38170. QueryPoolCreateInfo & setQueryCount( uint32_t queryCount_ )
  38171. {
  38172. queryCount = queryCount_;
  38173. return *this;
  38174. }
  38175. QueryPoolCreateInfo & setPipelineStatistics( QueryPipelineStatisticFlags pipelineStatistics_ )
  38176. {
  38177. pipelineStatistics = pipelineStatistics_;
  38178. return *this;
  38179. }
  38180. operator VkQueryPoolCreateInfo const&() const
  38181. {
  38182. return *reinterpret_cast<const VkQueryPoolCreateInfo*>( this );
  38183. }
  38184. operator VkQueryPoolCreateInfo &()
  38185. {
  38186. return *reinterpret_cast<VkQueryPoolCreateInfo*>( this );
  38187. }
  38188. bool operator==( QueryPoolCreateInfo const& rhs ) const
  38189. {
  38190. return ( sType == rhs.sType )
  38191. && ( pNext == rhs.pNext )
  38192. && ( flags == rhs.flags )
  38193. && ( queryType == rhs.queryType )
  38194. && ( queryCount == rhs.queryCount )
  38195. && ( pipelineStatistics == rhs.pipelineStatistics );
  38196. }
  38197. bool operator!=( QueryPoolCreateInfo const& rhs ) const
  38198. {
  38199. return !operator==( rhs );
  38200. }
  38201. private:
  38202. StructureType sType = StructureType::eQueryPoolCreateInfo;
  38203. public:
  38204. const void* pNext = nullptr;
  38205. QueryPoolCreateFlags flags;
  38206. QueryType queryType;
  38207. uint32_t queryCount;
  38208. QueryPipelineStatisticFlags pipelineStatistics;
  38209. };
  38210. static_assert( sizeof( QueryPoolCreateInfo ) == sizeof( VkQueryPoolCreateInfo ), "struct and wrapper have different size!" );
  38211. struct QueryPoolCreateInfoINTEL
  38212. {
  38213. QueryPoolCreateInfoINTEL( QueryPoolSamplingModeINTEL performanceCountersSampling_ = QueryPoolSamplingModeINTEL::eManual )
  38214. : performanceCountersSampling( performanceCountersSampling_ )
  38215. {}
  38216. QueryPoolCreateInfoINTEL( VkQueryPoolCreateInfoINTEL const & rhs )
  38217. {
  38218. *reinterpret_cast<VkQueryPoolCreateInfoINTEL*>(this) = rhs;
  38219. }
  38220. QueryPoolCreateInfoINTEL& operator=( VkQueryPoolCreateInfoINTEL const & rhs )
  38221. {
  38222. *reinterpret_cast<VkQueryPoolCreateInfoINTEL*>(this) = rhs;
  38223. return *this;
  38224. }
  38225. QueryPoolCreateInfoINTEL & setPNext( const void* pNext_ )
  38226. {
  38227. pNext = pNext_;
  38228. return *this;
  38229. }
  38230. QueryPoolCreateInfoINTEL & setPerformanceCountersSampling( QueryPoolSamplingModeINTEL performanceCountersSampling_ )
  38231. {
  38232. performanceCountersSampling = performanceCountersSampling_;
  38233. return *this;
  38234. }
  38235. operator VkQueryPoolCreateInfoINTEL const&() const
  38236. {
  38237. return *reinterpret_cast<const VkQueryPoolCreateInfoINTEL*>( this );
  38238. }
  38239. operator VkQueryPoolCreateInfoINTEL &()
  38240. {
  38241. return *reinterpret_cast<VkQueryPoolCreateInfoINTEL*>( this );
  38242. }
  38243. bool operator==( QueryPoolCreateInfoINTEL const& rhs ) const
  38244. {
  38245. return ( sType == rhs.sType )
  38246. && ( pNext == rhs.pNext )
  38247. && ( performanceCountersSampling == rhs.performanceCountersSampling );
  38248. }
  38249. bool operator!=( QueryPoolCreateInfoINTEL const& rhs ) const
  38250. {
  38251. return !operator==( rhs );
  38252. }
  38253. private:
  38254. StructureType sType = StructureType::eQueryPoolCreateInfoINTEL;
  38255. public:
  38256. const void* pNext = nullptr;
  38257. QueryPoolSamplingModeINTEL performanceCountersSampling;
  38258. };
  38259. static_assert( sizeof( QueryPoolCreateInfoINTEL ) == sizeof( VkQueryPoolCreateInfoINTEL ), "struct and wrapper have different size!" );
  38260. struct QueueFamilyCheckpointPropertiesNV
  38261. {
  38262. operator VkQueueFamilyCheckpointPropertiesNV const&() const
  38263. {
  38264. return *reinterpret_cast<const VkQueueFamilyCheckpointPropertiesNV*>( this );
  38265. }
  38266. operator VkQueueFamilyCheckpointPropertiesNV &()
  38267. {
  38268. return *reinterpret_cast<VkQueueFamilyCheckpointPropertiesNV*>( this );
  38269. }
  38270. bool operator==( QueueFamilyCheckpointPropertiesNV const& rhs ) const
  38271. {
  38272. return ( sType == rhs.sType )
  38273. && ( pNext == rhs.pNext )
  38274. && ( checkpointExecutionStageMask == rhs.checkpointExecutionStageMask );
  38275. }
  38276. bool operator!=( QueueFamilyCheckpointPropertiesNV const& rhs ) const
  38277. {
  38278. return !operator==( rhs );
  38279. }
  38280. private:
  38281. StructureType sType = StructureType::eQueueFamilyCheckpointPropertiesNV;
  38282. public:
  38283. void* pNext = nullptr;
  38284. PipelineStageFlags checkpointExecutionStageMask;
  38285. };
  38286. static_assert( sizeof( QueueFamilyCheckpointPropertiesNV ) == sizeof( VkQueueFamilyCheckpointPropertiesNV ), "struct and wrapper have different size!" );
  38287. struct QueueFamilyProperties
  38288. {
  38289. operator VkQueueFamilyProperties const&() const
  38290. {
  38291. return *reinterpret_cast<const VkQueueFamilyProperties*>( this );
  38292. }
  38293. operator VkQueueFamilyProperties &()
  38294. {
  38295. return *reinterpret_cast<VkQueueFamilyProperties*>( this );
  38296. }
  38297. bool operator==( QueueFamilyProperties const& rhs ) const
  38298. {
  38299. return ( queueFlags == rhs.queueFlags )
  38300. && ( queueCount == rhs.queueCount )
  38301. && ( timestampValidBits == rhs.timestampValidBits )
  38302. && ( minImageTransferGranularity == rhs.minImageTransferGranularity );
  38303. }
  38304. bool operator!=( QueueFamilyProperties const& rhs ) const
  38305. {
  38306. return !operator==( rhs );
  38307. }
  38308. QueueFlags queueFlags;
  38309. uint32_t queueCount;
  38310. uint32_t timestampValidBits;
  38311. Extent3D minImageTransferGranularity;
  38312. };
  38313. static_assert( sizeof( QueueFamilyProperties ) == sizeof( VkQueueFamilyProperties ), "struct and wrapper have different size!" );
  38314. struct QueueFamilyProperties2
  38315. {
  38316. operator VkQueueFamilyProperties2 const&() const
  38317. {
  38318. return *reinterpret_cast<const VkQueueFamilyProperties2*>( this );
  38319. }
  38320. operator VkQueueFamilyProperties2 &()
  38321. {
  38322. return *reinterpret_cast<VkQueueFamilyProperties2*>( this );
  38323. }
  38324. bool operator==( QueueFamilyProperties2 const& rhs ) const
  38325. {
  38326. return ( sType == rhs.sType )
  38327. && ( pNext == rhs.pNext )
  38328. && ( queueFamilyProperties == rhs.queueFamilyProperties );
  38329. }
  38330. bool operator!=( QueueFamilyProperties2 const& rhs ) const
  38331. {
  38332. return !operator==( rhs );
  38333. }
  38334. private:
  38335. StructureType sType = StructureType::eQueueFamilyProperties2;
  38336. public:
  38337. void* pNext = nullptr;
  38338. QueueFamilyProperties queueFamilyProperties;
  38339. };
  38340. static_assert( sizeof( QueueFamilyProperties2 ) == sizeof( VkQueueFamilyProperties2 ), "struct and wrapper have different size!" );
  38341. struct RayTracingShaderGroupCreateInfoNV
  38342. {
  38343. RayTracingShaderGroupCreateInfoNV( RayTracingShaderGroupTypeNV type_ = RayTracingShaderGroupTypeNV::eGeneral,
  38344. uint32_t generalShader_ = 0,
  38345. uint32_t closestHitShader_ = 0,
  38346. uint32_t anyHitShader_ = 0,
  38347. uint32_t intersectionShader_ = 0 )
  38348. : type( type_ )
  38349. , generalShader( generalShader_ )
  38350. , closestHitShader( closestHitShader_ )
  38351. , anyHitShader( anyHitShader_ )
  38352. , intersectionShader( intersectionShader_ )
  38353. {}
  38354. RayTracingShaderGroupCreateInfoNV( VkRayTracingShaderGroupCreateInfoNV const & rhs )
  38355. {
  38356. *reinterpret_cast<VkRayTracingShaderGroupCreateInfoNV*>(this) = rhs;
  38357. }
  38358. RayTracingShaderGroupCreateInfoNV& operator=( VkRayTracingShaderGroupCreateInfoNV const & rhs )
  38359. {
  38360. *reinterpret_cast<VkRayTracingShaderGroupCreateInfoNV*>(this) = rhs;
  38361. return *this;
  38362. }
  38363. RayTracingShaderGroupCreateInfoNV & setPNext( const void* pNext_ )
  38364. {
  38365. pNext = pNext_;
  38366. return *this;
  38367. }
  38368. RayTracingShaderGroupCreateInfoNV & setType( RayTracingShaderGroupTypeNV type_ )
  38369. {
  38370. type = type_;
  38371. return *this;
  38372. }
  38373. RayTracingShaderGroupCreateInfoNV & setGeneralShader( uint32_t generalShader_ )
  38374. {
  38375. generalShader = generalShader_;
  38376. return *this;
  38377. }
  38378. RayTracingShaderGroupCreateInfoNV & setClosestHitShader( uint32_t closestHitShader_ )
  38379. {
  38380. closestHitShader = closestHitShader_;
  38381. return *this;
  38382. }
  38383. RayTracingShaderGroupCreateInfoNV & setAnyHitShader( uint32_t anyHitShader_ )
  38384. {
  38385. anyHitShader = anyHitShader_;
  38386. return *this;
  38387. }
  38388. RayTracingShaderGroupCreateInfoNV & setIntersectionShader( uint32_t intersectionShader_ )
  38389. {
  38390. intersectionShader = intersectionShader_;
  38391. return *this;
  38392. }
  38393. operator VkRayTracingShaderGroupCreateInfoNV const&() const
  38394. {
  38395. return *reinterpret_cast<const VkRayTracingShaderGroupCreateInfoNV*>( this );
  38396. }
  38397. operator VkRayTracingShaderGroupCreateInfoNV &()
  38398. {
  38399. return *reinterpret_cast<VkRayTracingShaderGroupCreateInfoNV*>( this );
  38400. }
  38401. bool operator==( RayTracingShaderGroupCreateInfoNV const& rhs ) const
  38402. {
  38403. return ( sType == rhs.sType )
  38404. && ( pNext == rhs.pNext )
  38405. && ( type == rhs.type )
  38406. && ( generalShader == rhs.generalShader )
  38407. && ( closestHitShader == rhs.closestHitShader )
  38408. && ( anyHitShader == rhs.anyHitShader )
  38409. && ( intersectionShader == rhs.intersectionShader );
  38410. }
  38411. bool operator!=( RayTracingShaderGroupCreateInfoNV const& rhs ) const
  38412. {
  38413. return !operator==( rhs );
  38414. }
  38415. private:
  38416. StructureType sType = StructureType::eRayTracingShaderGroupCreateInfoNV;
  38417. public:
  38418. const void* pNext = nullptr;
  38419. RayTracingShaderGroupTypeNV type;
  38420. uint32_t generalShader;
  38421. uint32_t closestHitShader;
  38422. uint32_t anyHitShader;
  38423. uint32_t intersectionShader;
  38424. };
  38425. static_assert( sizeof( RayTracingShaderGroupCreateInfoNV ) == sizeof( VkRayTracingShaderGroupCreateInfoNV ), "struct and wrapper have different size!" );
  38426. struct RayTracingPipelineCreateInfoNV
  38427. {
  38428. RayTracingPipelineCreateInfoNV( PipelineCreateFlags flags_ = PipelineCreateFlags(),
  38429. uint32_t stageCount_ = 0,
  38430. const PipelineShaderStageCreateInfo* pStages_ = nullptr,
  38431. uint32_t groupCount_ = 0,
  38432. const RayTracingShaderGroupCreateInfoNV* pGroups_ = nullptr,
  38433. uint32_t maxRecursionDepth_ = 0,
  38434. PipelineLayout layout_ = PipelineLayout(),
  38435. Pipeline basePipelineHandle_ = Pipeline(),
  38436. int32_t basePipelineIndex_ = 0 )
  38437. : flags( flags_ )
  38438. , stageCount( stageCount_ )
  38439. , pStages( pStages_ )
  38440. , groupCount( groupCount_ )
  38441. , pGroups( pGroups_ )
  38442. , maxRecursionDepth( maxRecursionDepth_ )
  38443. , layout( layout_ )
  38444. , basePipelineHandle( basePipelineHandle_ )
  38445. , basePipelineIndex( basePipelineIndex_ )
  38446. {}
  38447. RayTracingPipelineCreateInfoNV( VkRayTracingPipelineCreateInfoNV const & rhs )
  38448. {
  38449. *reinterpret_cast<VkRayTracingPipelineCreateInfoNV*>(this) = rhs;
  38450. }
  38451. RayTracingPipelineCreateInfoNV& operator=( VkRayTracingPipelineCreateInfoNV const & rhs )
  38452. {
  38453. *reinterpret_cast<VkRayTracingPipelineCreateInfoNV*>(this) = rhs;
  38454. return *this;
  38455. }
  38456. RayTracingPipelineCreateInfoNV & setPNext( const void* pNext_ )
  38457. {
  38458. pNext = pNext_;
  38459. return *this;
  38460. }
  38461. RayTracingPipelineCreateInfoNV & setFlags( PipelineCreateFlags flags_ )
  38462. {
  38463. flags = flags_;
  38464. return *this;
  38465. }
  38466. RayTracingPipelineCreateInfoNV & setStageCount( uint32_t stageCount_ )
  38467. {
  38468. stageCount = stageCount_;
  38469. return *this;
  38470. }
  38471. RayTracingPipelineCreateInfoNV & setPStages( const PipelineShaderStageCreateInfo* pStages_ )
  38472. {
  38473. pStages = pStages_;
  38474. return *this;
  38475. }
  38476. RayTracingPipelineCreateInfoNV & setGroupCount( uint32_t groupCount_ )
  38477. {
  38478. groupCount = groupCount_;
  38479. return *this;
  38480. }
  38481. RayTracingPipelineCreateInfoNV & setPGroups( const RayTracingShaderGroupCreateInfoNV* pGroups_ )
  38482. {
  38483. pGroups = pGroups_;
  38484. return *this;
  38485. }
  38486. RayTracingPipelineCreateInfoNV & setMaxRecursionDepth( uint32_t maxRecursionDepth_ )
  38487. {
  38488. maxRecursionDepth = maxRecursionDepth_;
  38489. return *this;
  38490. }
  38491. RayTracingPipelineCreateInfoNV & setLayout( PipelineLayout layout_ )
  38492. {
  38493. layout = layout_;
  38494. return *this;
  38495. }
  38496. RayTracingPipelineCreateInfoNV & setBasePipelineHandle( Pipeline basePipelineHandle_ )
  38497. {
  38498. basePipelineHandle = basePipelineHandle_;
  38499. return *this;
  38500. }
  38501. RayTracingPipelineCreateInfoNV & setBasePipelineIndex( int32_t basePipelineIndex_ )
  38502. {
  38503. basePipelineIndex = basePipelineIndex_;
  38504. return *this;
  38505. }
  38506. operator VkRayTracingPipelineCreateInfoNV const&() const
  38507. {
  38508. return *reinterpret_cast<const VkRayTracingPipelineCreateInfoNV*>( this );
  38509. }
  38510. operator VkRayTracingPipelineCreateInfoNV &()
  38511. {
  38512. return *reinterpret_cast<VkRayTracingPipelineCreateInfoNV*>( this );
  38513. }
  38514. bool operator==( RayTracingPipelineCreateInfoNV const& rhs ) const
  38515. {
  38516. return ( sType == rhs.sType )
  38517. && ( pNext == rhs.pNext )
  38518. && ( flags == rhs.flags )
  38519. && ( stageCount == rhs.stageCount )
  38520. && ( pStages == rhs.pStages )
  38521. && ( groupCount == rhs.groupCount )
  38522. && ( pGroups == rhs.pGroups )
  38523. && ( maxRecursionDepth == rhs.maxRecursionDepth )
  38524. && ( layout == rhs.layout )
  38525. && ( basePipelineHandle == rhs.basePipelineHandle )
  38526. && ( basePipelineIndex == rhs.basePipelineIndex );
  38527. }
  38528. bool operator!=( RayTracingPipelineCreateInfoNV const& rhs ) const
  38529. {
  38530. return !operator==( rhs );
  38531. }
  38532. private:
  38533. StructureType sType = StructureType::eRayTracingPipelineCreateInfoNV;
  38534. public:
  38535. const void* pNext = nullptr;
  38536. PipelineCreateFlags flags;
  38537. uint32_t stageCount;
  38538. const PipelineShaderStageCreateInfo* pStages;
  38539. uint32_t groupCount;
  38540. const RayTracingShaderGroupCreateInfoNV* pGroups;
  38541. uint32_t maxRecursionDepth;
  38542. PipelineLayout layout;
  38543. Pipeline basePipelineHandle;
  38544. int32_t basePipelineIndex;
  38545. };
  38546. static_assert( sizeof( RayTracingPipelineCreateInfoNV ) == sizeof( VkRayTracingPipelineCreateInfoNV ), "struct and wrapper have different size!" );
  38547. struct RefreshCycleDurationGOOGLE
  38548. {
  38549. operator VkRefreshCycleDurationGOOGLE const&() const
  38550. {
  38551. return *reinterpret_cast<const VkRefreshCycleDurationGOOGLE*>( this );
  38552. }
  38553. operator VkRefreshCycleDurationGOOGLE &()
  38554. {
  38555. return *reinterpret_cast<VkRefreshCycleDurationGOOGLE*>( this );
  38556. }
  38557. bool operator==( RefreshCycleDurationGOOGLE const& rhs ) const
  38558. {
  38559. return ( refreshDuration == rhs.refreshDuration );
  38560. }
  38561. bool operator!=( RefreshCycleDurationGOOGLE const& rhs ) const
  38562. {
  38563. return !operator==( rhs );
  38564. }
  38565. uint64_t refreshDuration;
  38566. };
  38567. static_assert( sizeof( RefreshCycleDurationGOOGLE ) == sizeof( VkRefreshCycleDurationGOOGLE ), "struct and wrapper have different size!" );
  38568. struct RenderPassAttachmentBeginInfoKHR
  38569. {
  38570. RenderPassAttachmentBeginInfoKHR( uint32_t attachmentCount_ = 0,
  38571. const ImageView* pAttachments_ = nullptr )
  38572. : attachmentCount( attachmentCount_ )
  38573. , pAttachments( pAttachments_ )
  38574. {}
  38575. RenderPassAttachmentBeginInfoKHR( VkRenderPassAttachmentBeginInfoKHR const & rhs )
  38576. {
  38577. *reinterpret_cast<VkRenderPassAttachmentBeginInfoKHR*>(this) = rhs;
  38578. }
  38579. RenderPassAttachmentBeginInfoKHR& operator=( VkRenderPassAttachmentBeginInfoKHR const & rhs )
  38580. {
  38581. *reinterpret_cast<VkRenderPassAttachmentBeginInfoKHR*>(this) = rhs;
  38582. return *this;
  38583. }
  38584. RenderPassAttachmentBeginInfoKHR & setPNext( const void* pNext_ )
  38585. {
  38586. pNext = pNext_;
  38587. return *this;
  38588. }
  38589. RenderPassAttachmentBeginInfoKHR & setAttachmentCount( uint32_t attachmentCount_ )
  38590. {
  38591. attachmentCount = attachmentCount_;
  38592. return *this;
  38593. }
  38594. RenderPassAttachmentBeginInfoKHR & setPAttachments( const ImageView* pAttachments_ )
  38595. {
  38596. pAttachments = pAttachments_;
  38597. return *this;
  38598. }
  38599. operator VkRenderPassAttachmentBeginInfoKHR const&() const
  38600. {
  38601. return *reinterpret_cast<const VkRenderPassAttachmentBeginInfoKHR*>( this );
  38602. }
  38603. operator VkRenderPassAttachmentBeginInfoKHR &()
  38604. {
  38605. return *reinterpret_cast<VkRenderPassAttachmentBeginInfoKHR*>( this );
  38606. }
  38607. bool operator==( RenderPassAttachmentBeginInfoKHR const& rhs ) const
  38608. {
  38609. return ( sType == rhs.sType )
  38610. && ( pNext == rhs.pNext )
  38611. && ( attachmentCount == rhs.attachmentCount )
  38612. && ( pAttachments == rhs.pAttachments );
  38613. }
  38614. bool operator!=( RenderPassAttachmentBeginInfoKHR const& rhs ) const
  38615. {
  38616. return !operator==( rhs );
  38617. }
  38618. private:
  38619. StructureType sType = StructureType::eRenderPassAttachmentBeginInfoKHR;
  38620. public:
  38621. const void* pNext = nullptr;
  38622. uint32_t attachmentCount;
  38623. const ImageView* pAttachments;
  38624. };
  38625. static_assert( sizeof( RenderPassAttachmentBeginInfoKHR ) == sizeof( VkRenderPassAttachmentBeginInfoKHR ), "struct and wrapper have different size!" );
  38626. struct RenderPassBeginInfo
  38627. {
  38628. RenderPassBeginInfo( RenderPass renderPass_ = RenderPass(),
  38629. Framebuffer framebuffer_ = Framebuffer(),
  38630. Rect2D renderArea_ = Rect2D(),
  38631. uint32_t clearValueCount_ = 0,
  38632. const ClearValue* pClearValues_ = nullptr )
  38633. : renderPass( renderPass_ )
  38634. , framebuffer( framebuffer_ )
  38635. , renderArea( renderArea_ )
  38636. , clearValueCount( clearValueCount_ )
  38637. , pClearValues( pClearValues_ )
  38638. {}
  38639. RenderPassBeginInfo( VkRenderPassBeginInfo const & rhs )
  38640. {
  38641. *reinterpret_cast<VkRenderPassBeginInfo*>(this) = rhs;
  38642. }
  38643. RenderPassBeginInfo& operator=( VkRenderPassBeginInfo const & rhs )
  38644. {
  38645. *reinterpret_cast<VkRenderPassBeginInfo*>(this) = rhs;
  38646. return *this;
  38647. }
  38648. RenderPassBeginInfo & setPNext( const void* pNext_ )
  38649. {
  38650. pNext = pNext_;
  38651. return *this;
  38652. }
  38653. RenderPassBeginInfo & setRenderPass( RenderPass renderPass_ )
  38654. {
  38655. renderPass = renderPass_;
  38656. return *this;
  38657. }
  38658. RenderPassBeginInfo & setFramebuffer( Framebuffer framebuffer_ )
  38659. {
  38660. framebuffer = framebuffer_;
  38661. return *this;
  38662. }
  38663. RenderPassBeginInfo & setRenderArea( Rect2D renderArea_ )
  38664. {
  38665. renderArea = renderArea_;
  38666. return *this;
  38667. }
  38668. RenderPassBeginInfo & setClearValueCount( uint32_t clearValueCount_ )
  38669. {
  38670. clearValueCount = clearValueCount_;
  38671. return *this;
  38672. }
  38673. RenderPassBeginInfo & setPClearValues( const ClearValue* pClearValues_ )
  38674. {
  38675. pClearValues = pClearValues_;
  38676. return *this;
  38677. }
  38678. operator VkRenderPassBeginInfo const&() const
  38679. {
  38680. return *reinterpret_cast<const VkRenderPassBeginInfo*>( this );
  38681. }
  38682. operator VkRenderPassBeginInfo &()
  38683. {
  38684. return *reinterpret_cast<VkRenderPassBeginInfo*>( this );
  38685. }
  38686. bool operator==( RenderPassBeginInfo const& rhs ) const
  38687. {
  38688. return ( sType == rhs.sType )
  38689. && ( pNext == rhs.pNext )
  38690. && ( renderPass == rhs.renderPass )
  38691. && ( framebuffer == rhs.framebuffer )
  38692. && ( renderArea == rhs.renderArea )
  38693. && ( clearValueCount == rhs.clearValueCount )
  38694. && ( pClearValues == rhs.pClearValues );
  38695. }
  38696. bool operator!=( RenderPassBeginInfo const& rhs ) const
  38697. {
  38698. return !operator==( rhs );
  38699. }
  38700. private:
  38701. StructureType sType = StructureType::eRenderPassBeginInfo;
  38702. public:
  38703. const void* pNext = nullptr;
  38704. RenderPass renderPass;
  38705. Framebuffer framebuffer;
  38706. Rect2D renderArea;
  38707. uint32_t clearValueCount;
  38708. const ClearValue* pClearValues;
  38709. };
  38710. static_assert( sizeof( RenderPassBeginInfo ) == sizeof( VkRenderPassBeginInfo ), "struct and wrapper have different size!" );
  38711. struct SubpassDescription
  38712. {
  38713. SubpassDescription( SubpassDescriptionFlags flags_ = SubpassDescriptionFlags(),
  38714. PipelineBindPoint pipelineBindPoint_ = PipelineBindPoint::eGraphics,
  38715. uint32_t inputAttachmentCount_ = 0,
  38716. const AttachmentReference* pInputAttachments_ = nullptr,
  38717. uint32_t colorAttachmentCount_ = 0,
  38718. const AttachmentReference* pColorAttachments_ = nullptr,
  38719. const AttachmentReference* pResolveAttachments_ = nullptr,
  38720. const AttachmentReference* pDepthStencilAttachment_ = nullptr,
  38721. uint32_t preserveAttachmentCount_ = 0,
  38722. const uint32_t* pPreserveAttachments_ = nullptr )
  38723. : flags( flags_ )
  38724. , pipelineBindPoint( pipelineBindPoint_ )
  38725. , inputAttachmentCount( inputAttachmentCount_ )
  38726. , pInputAttachments( pInputAttachments_ )
  38727. , colorAttachmentCount( colorAttachmentCount_ )
  38728. , pColorAttachments( pColorAttachments_ )
  38729. , pResolveAttachments( pResolveAttachments_ )
  38730. , pDepthStencilAttachment( pDepthStencilAttachment_ )
  38731. , preserveAttachmentCount( preserveAttachmentCount_ )
  38732. , pPreserveAttachments( pPreserveAttachments_ )
  38733. {}
  38734. SubpassDescription( VkSubpassDescription const & rhs )
  38735. {
  38736. *reinterpret_cast<VkSubpassDescription*>(this) = rhs;
  38737. }
  38738. SubpassDescription& operator=( VkSubpassDescription const & rhs )
  38739. {
  38740. *reinterpret_cast<VkSubpassDescription*>(this) = rhs;
  38741. return *this;
  38742. }
  38743. SubpassDescription & setFlags( SubpassDescriptionFlags flags_ )
  38744. {
  38745. flags = flags_;
  38746. return *this;
  38747. }
  38748. SubpassDescription & setPipelineBindPoint( PipelineBindPoint pipelineBindPoint_ )
  38749. {
  38750. pipelineBindPoint = pipelineBindPoint_;
  38751. return *this;
  38752. }
  38753. SubpassDescription & setInputAttachmentCount( uint32_t inputAttachmentCount_ )
  38754. {
  38755. inputAttachmentCount = inputAttachmentCount_;
  38756. return *this;
  38757. }
  38758. SubpassDescription & setPInputAttachments( const AttachmentReference* pInputAttachments_ )
  38759. {
  38760. pInputAttachments = pInputAttachments_;
  38761. return *this;
  38762. }
  38763. SubpassDescription & setColorAttachmentCount( uint32_t colorAttachmentCount_ )
  38764. {
  38765. colorAttachmentCount = colorAttachmentCount_;
  38766. return *this;
  38767. }
  38768. SubpassDescription & setPColorAttachments( const AttachmentReference* pColorAttachments_ )
  38769. {
  38770. pColorAttachments = pColorAttachments_;
  38771. return *this;
  38772. }
  38773. SubpassDescription & setPResolveAttachments( const AttachmentReference* pResolveAttachments_ )
  38774. {
  38775. pResolveAttachments = pResolveAttachments_;
  38776. return *this;
  38777. }
  38778. SubpassDescription & setPDepthStencilAttachment( const AttachmentReference* pDepthStencilAttachment_ )
  38779. {
  38780. pDepthStencilAttachment = pDepthStencilAttachment_;
  38781. return *this;
  38782. }
  38783. SubpassDescription & setPreserveAttachmentCount( uint32_t preserveAttachmentCount_ )
  38784. {
  38785. preserveAttachmentCount = preserveAttachmentCount_;
  38786. return *this;
  38787. }
  38788. SubpassDescription & setPPreserveAttachments( const uint32_t* pPreserveAttachments_ )
  38789. {
  38790. pPreserveAttachments = pPreserveAttachments_;
  38791. return *this;
  38792. }
  38793. operator VkSubpassDescription const&() const
  38794. {
  38795. return *reinterpret_cast<const VkSubpassDescription*>( this );
  38796. }
  38797. operator VkSubpassDescription &()
  38798. {
  38799. return *reinterpret_cast<VkSubpassDescription*>( this );
  38800. }
  38801. bool operator==( SubpassDescription const& rhs ) const
  38802. {
  38803. return ( flags == rhs.flags )
  38804. && ( pipelineBindPoint == rhs.pipelineBindPoint )
  38805. && ( inputAttachmentCount == rhs.inputAttachmentCount )
  38806. && ( pInputAttachments == rhs.pInputAttachments )
  38807. && ( colorAttachmentCount == rhs.colorAttachmentCount )
  38808. && ( pColorAttachments == rhs.pColorAttachments )
  38809. && ( pResolveAttachments == rhs.pResolveAttachments )
  38810. && ( pDepthStencilAttachment == rhs.pDepthStencilAttachment )
  38811. && ( preserveAttachmentCount == rhs.preserveAttachmentCount )
  38812. && ( pPreserveAttachments == rhs.pPreserveAttachments );
  38813. }
  38814. bool operator!=( SubpassDescription const& rhs ) const
  38815. {
  38816. return !operator==( rhs );
  38817. }
  38818. SubpassDescriptionFlags flags;
  38819. PipelineBindPoint pipelineBindPoint;
  38820. uint32_t inputAttachmentCount;
  38821. const AttachmentReference* pInputAttachments;
  38822. uint32_t colorAttachmentCount;
  38823. const AttachmentReference* pColorAttachments;
  38824. const AttachmentReference* pResolveAttachments;
  38825. const AttachmentReference* pDepthStencilAttachment;
  38826. uint32_t preserveAttachmentCount;
  38827. const uint32_t* pPreserveAttachments;
  38828. };
  38829. static_assert( sizeof( SubpassDescription ) == sizeof( VkSubpassDescription ), "struct and wrapper have different size!" );
  38830. struct SubpassDependency
  38831. {
  38832. SubpassDependency( uint32_t srcSubpass_ = 0,
  38833. uint32_t dstSubpass_ = 0,
  38834. PipelineStageFlags srcStageMask_ = PipelineStageFlags(),
  38835. PipelineStageFlags dstStageMask_ = PipelineStageFlags(),
  38836. AccessFlags srcAccessMask_ = AccessFlags(),
  38837. AccessFlags dstAccessMask_ = AccessFlags(),
  38838. DependencyFlags dependencyFlags_ = DependencyFlags() )
  38839. : srcSubpass( srcSubpass_ )
  38840. , dstSubpass( dstSubpass_ )
  38841. , srcStageMask( srcStageMask_ )
  38842. , dstStageMask( dstStageMask_ )
  38843. , srcAccessMask( srcAccessMask_ )
  38844. , dstAccessMask( dstAccessMask_ )
  38845. , dependencyFlags( dependencyFlags_ )
  38846. {}
  38847. SubpassDependency( VkSubpassDependency const & rhs )
  38848. {
  38849. *reinterpret_cast<VkSubpassDependency*>(this) = rhs;
  38850. }
  38851. SubpassDependency& operator=( VkSubpassDependency const & rhs )
  38852. {
  38853. *reinterpret_cast<VkSubpassDependency*>(this) = rhs;
  38854. return *this;
  38855. }
  38856. SubpassDependency & setSrcSubpass( uint32_t srcSubpass_ )
  38857. {
  38858. srcSubpass = srcSubpass_;
  38859. return *this;
  38860. }
  38861. SubpassDependency & setDstSubpass( uint32_t dstSubpass_ )
  38862. {
  38863. dstSubpass = dstSubpass_;
  38864. return *this;
  38865. }
  38866. SubpassDependency & setSrcStageMask( PipelineStageFlags srcStageMask_ )
  38867. {
  38868. srcStageMask = srcStageMask_;
  38869. return *this;
  38870. }
  38871. SubpassDependency & setDstStageMask( PipelineStageFlags dstStageMask_ )
  38872. {
  38873. dstStageMask = dstStageMask_;
  38874. return *this;
  38875. }
  38876. SubpassDependency & setSrcAccessMask( AccessFlags srcAccessMask_ )
  38877. {
  38878. srcAccessMask = srcAccessMask_;
  38879. return *this;
  38880. }
  38881. SubpassDependency & setDstAccessMask( AccessFlags dstAccessMask_ )
  38882. {
  38883. dstAccessMask = dstAccessMask_;
  38884. return *this;
  38885. }
  38886. SubpassDependency & setDependencyFlags( DependencyFlags dependencyFlags_ )
  38887. {
  38888. dependencyFlags = dependencyFlags_;
  38889. return *this;
  38890. }
  38891. operator VkSubpassDependency const&() const
  38892. {
  38893. return *reinterpret_cast<const VkSubpassDependency*>( this );
  38894. }
  38895. operator VkSubpassDependency &()
  38896. {
  38897. return *reinterpret_cast<VkSubpassDependency*>( this );
  38898. }
  38899. bool operator==( SubpassDependency const& rhs ) const
  38900. {
  38901. return ( srcSubpass == rhs.srcSubpass )
  38902. && ( dstSubpass == rhs.dstSubpass )
  38903. && ( srcStageMask == rhs.srcStageMask )
  38904. && ( dstStageMask == rhs.dstStageMask )
  38905. && ( srcAccessMask == rhs.srcAccessMask )
  38906. && ( dstAccessMask == rhs.dstAccessMask )
  38907. && ( dependencyFlags == rhs.dependencyFlags );
  38908. }
  38909. bool operator!=( SubpassDependency const& rhs ) const
  38910. {
  38911. return !operator==( rhs );
  38912. }
  38913. uint32_t srcSubpass;
  38914. uint32_t dstSubpass;
  38915. PipelineStageFlags srcStageMask;
  38916. PipelineStageFlags dstStageMask;
  38917. AccessFlags srcAccessMask;
  38918. AccessFlags dstAccessMask;
  38919. DependencyFlags dependencyFlags;
  38920. };
  38921. static_assert( sizeof( SubpassDependency ) == sizeof( VkSubpassDependency ), "struct and wrapper have different size!" );
  38922. struct RenderPassCreateInfo
  38923. {
  38924. RenderPassCreateInfo( RenderPassCreateFlags flags_ = RenderPassCreateFlags(),
  38925. uint32_t attachmentCount_ = 0,
  38926. const AttachmentDescription* pAttachments_ = nullptr,
  38927. uint32_t subpassCount_ = 0,
  38928. const SubpassDescription* pSubpasses_ = nullptr,
  38929. uint32_t dependencyCount_ = 0,
  38930. const SubpassDependency* pDependencies_ = nullptr )
  38931. : flags( flags_ )
  38932. , attachmentCount( attachmentCount_ )
  38933. , pAttachments( pAttachments_ )
  38934. , subpassCount( subpassCount_ )
  38935. , pSubpasses( pSubpasses_ )
  38936. , dependencyCount( dependencyCount_ )
  38937. , pDependencies( pDependencies_ )
  38938. {}
  38939. RenderPassCreateInfo( VkRenderPassCreateInfo const & rhs )
  38940. {
  38941. *reinterpret_cast<VkRenderPassCreateInfo*>(this) = rhs;
  38942. }
  38943. RenderPassCreateInfo& operator=( VkRenderPassCreateInfo const & rhs )
  38944. {
  38945. *reinterpret_cast<VkRenderPassCreateInfo*>(this) = rhs;
  38946. return *this;
  38947. }
  38948. RenderPassCreateInfo & setPNext( const void* pNext_ )
  38949. {
  38950. pNext = pNext_;
  38951. return *this;
  38952. }
  38953. RenderPassCreateInfo & setFlags( RenderPassCreateFlags flags_ )
  38954. {
  38955. flags = flags_;
  38956. return *this;
  38957. }
  38958. RenderPassCreateInfo & setAttachmentCount( uint32_t attachmentCount_ )
  38959. {
  38960. attachmentCount = attachmentCount_;
  38961. return *this;
  38962. }
  38963. RenderPassCreateInfo & setPAttachments( const AttachmentDescription* pAttachments_ )
  38964. {
  38965. pAttachments = pAttachments_;
  38966. return *this;
  38967. }
  38968. RenderPassCreateInfo & setSubpassCount( uint32_t subpassCount_ )
  38969. {
  38970. subpassCount = subpassCount_;
  38971. return *this;
  38972. }
  38973. RenderPassCreateInfo & setPSubpasses( const SubpassDescription* pSubpasses_ )
  38974. {
  38975. pSubpasses = pSubpasses_;
  38976. return *this;
  38977. }
  38978. RenderPassCreateInfo & setDependencyCount( uint32_t dependencyCount_ )
  38979. {
  38980. dependencyCount = dependencyCount_;
  38981. return *this;
  38982. }
  38983. RenderPassCreateInfo & setPDependencies( const SubpassDependency* pDependencies_ )
  38984. {
  38985. pDependencies = pDependencies_;
  38986. return *this;
  38987. }
  38988. operator VkRenderPassCreateInfo const&() const
  38989. {
  38990. return *reinterpret_cast<const VkRenderPassCreateInfo*>( this );
  38991. }
  38992. operator VkRenderPassCreateInfo &()
  38993. {
  38994. return *reinterpret_cast<VkRenderPassCreateInfo*>( this );
  38995. }
  38996. bool operator==( RenderPassCreateInfo const& rhs ) const
  38997. {
  38998. return ( sType == rhs.sType )
  38999. && ( pNext == rhs.pNext )
  39000. && ( flags == rhs.flags )
  39001. && ( attachmentCount == rhs.attachmentCount )
  39002. && ( pAttachments == rhs.pAttachments )
  39003. && ( subpassCount == rhs.subpassCount )
  39004. && ( pSubpasses == rhs.pSubpasses )
  39005. && ( dependencyCount == rhs.dependencyCount )
  39006. && ( pDependencies == rhs.pDependencies );
  39007. }
  39008. bool operator!=( RenderPassCreateInfo const& rhs ) const
  39009. {
  39010. return !operator==( rhs );
  39011. }
  39012. private:
  39013. StructureType sType = StructureType::eRenderPassCreateInfo;
  39014. public:
  39015. const void* pNext = nullptr;
  39016. RenderPassCreateFlags flags;
  39017. uint32_t attachmentCount;
  39018. const AttachmentDescription* pAttachments;
  39019. uint32_t subpassCount;
  39020. const SubpassDescription* pSubpasses;
  39021. uint32_t dependencyCount;
  39022. const SubpassDependency* pDependencies;
  39023. };
  39024. static_assert( sizeof( RenderPassCreateInfo ) == sizeof( VkRenderPassCreateInfo ), "struct and wrapper have different size!" );
  39025. struct SubpassDescription2KHR
  39026. {
  39027. SubpassDescription2KHR( SubpassDescriptionFlags flags_ = SubpassDescriptionFlags(),
  39028. PipelineBindPoint pipelineBindPoint_ = PipelineBindPoint::eGraphics,
  39029. uint32_t viewMask_ = 0,
  39030. uint32_t inputAttachmentCount_ = 0,
  39031. const AttachmentReference2KHR* pInputAttachments_ = nullptr,
  39032. uint32_t colorAttachmentCount_ = 0,
  39033. const AttachmentReference2KHR* pColorAttachments_ = nullptr,
  39034. const AttachmentReference2KHR* pResolveAttachments_ = nullptr,
  39035. const AttachmentReference2KHR* pDepthStencilAttachment_ = nullptr,
  39036. uint32_t preserveAttachmentCount_ = 0,
  39037. const uint32_t* pPreserveAttachments_ = nullptr )
  39038. : flags( flags_ )
  39039. , pipelineBindPoint( pipelineBindPoint_ )
  39040. , viewMask( viewMask_ )
  39041. , inputAttachmentCount( inputAttachmentCount_ )
  39042. , pInputAttachments( pInputAttachments_ )
  39043. , colorAttachmentCount( colorAttachmentCount_ )
  39044. , pColorAttachments( pColorAttachments_ )
  39045. , pResolveAttachments( pResolveAttachments_ )
  39046. , pDepthStencilAttachment( pDepthStencilAttachment_ )
  39047. , preserveAttachmentCount( preserveAttachmentCount_ )
  39048. , pPreserveAttachments( pPreserveAttachments_ )
  39049. {}
  39050. SubpassDescription2KHR( VkSubpassDescription2KHR const & rhs )
  39051. {
  39052. *reinterpret_cast<VkSubpassDescription2KHR*>(this) = rhs;
  39053. }
  39054. SubpassDescription2KHR& operator=( VkSubpassDescription2KHR const & rhs )
  39055. {
  39056. *reinterpret_cast<VkSubpassDescription2KHR*>(this) = rhs;
  39057. return *this;
  39058. }
  39059. SubpassDescription2KHR & setPNext( const void* pNext_ )
  39060. {
  39061. pNext = pNext_;
  39062. return *this;
  39063. }
  39064. SubpassDescription2KHR & setFlags( SubpassDescriptionFlags flags_ )
  39065. {
  39066. flags = flags_;
  39067. return *this;
  39068. }
  39069. SubpassDescription2KHR & setPipelineBindPoint( PipelineBindPoint pipelineBindPoint_ )
  39070. {
  39071. pipelineBindPoint = pipelineBindPoint_;
  39072. return *this;
  39073. }
  39074. SubpassDescription2KHR & setViewMask( uint32_t viewMask_ )
  39075. {
  39076. viewMask = viewMask_;
  39077. return *this;
  39078. }
  39079. SubpassDescription2KHR & setInputAttachmentCount( uint32_t inputAttachmentCount_ )
  39080. {
  39081. inputAttachmentCount = inputAttachmentCount_;
  39082. return *this;
  39083. }
  39084. SubpassDescription2KHR & setPInputAttachments( const AttachmentReference2KHR* pInputAttachments_ )
  39085. {
  39086. pInputAttachments = pInputAttachments_;
  39087. return *this;
  39088. }
  39089. SubpassDescription2KHR & setColorAttachmentCount( uint32_t colorAttachmentCount_ )
  39090. {
  39091. colorAttachmentCount = colorAttachmentCount_;
  39092. return *this;
  39093. }
  39094. SubpassDescription2KHR & setPColorAttachments( const AttachmentReference2KHR* pColorAttachments_ )
  39095. {
  39096. pColorAttachments = pColorAttachments_;
  39097. return *this;
  39098. }
  39099. SubpassDescription2KHR & setPResolveAttachments( const AttachmentReference2KHR* pResolveAttachments_ )
  39100. {
  39101. pResolveAttachments = pResolveAttachments_;
  39102. return *this;
  39103. }
  39104. SubpassDescription2KHR & setPDepthStencilAttachment( const AttachmentReference2KHR* pDepthStencilAttachment_ )
  39105. {
  39106. pDepthStencilAttachment = pDepthStencilAttachment_;
  39107. return *this;
  39108. }
  39109. SubpassDescription2KHR & setPreserveAttachmentCount( uint32_t preserveAttachmentCount_ )
  39110. {
  39111. preserveAttachmentCount = preserveAttachmentCount_;
  39112. return *this;
  39113. }
  39114. SubpassDescription2KHR & setPPreserveAttachments( const uint32_t* pPreserveAttachments_ )
  39115. {
  39116. pPreserveAttachments = pPreserveAttachments_;
  39117. return *this;
  39118. }
  39119. operator VkSubpassDescription2KHR const&() const
  39120. {
  39121. return *reinterpret_cast<const VkSubpassDescription2KHR*>( this );
  39122. }
  39123. operator VkSubpassDescription2KHR &()
  39124. {
  39125. return *reinterpret_cast<VkSubpassDescription2KHR*>( this );
  39126. }
  39127. bool operator==( SubpassDescription2KHR const& rhs ) const
  39128. {
  39129. return ( sType == rhs.sType )
  39130. && ( pNext == rhs.pNext )
  39131. && ( flags == rhs.flags )
  39132. && ( pipelineBindPoint == rhs.pipelineBindPoint )
  39133. && ( viewMask == rhs.viewMask )
  39134. && ( inputAttachmentCount == rhs.inputAttachmentCount )
  39135. && ( pInputAttachments == rhs.pInputAttachments )
  39136. && ( colorAttachmentCount == rhs.colorAttachmentCount )
  39137. && ( pColorAttachments == rhs.pColorAttachments )
  39138. && ( pResolveAttachments == rhs.pResolveAttachments )
  39139. && ( pDepthStencilAttachment == rhs.pDepthStencilAttachment )
  39140. && ( preserveAttachmentCount == rhs.preserveAttachmentCount )
  39141. && ( pPreserveAttachments == rhs.pPreserveAttachments );
  39142. }
  39143. bool operator!=( SubpassDescription2KHR const& rhs ) const
  39144. {
  39145. return !operator==( rhs );
  39146. }
  39147. private:
  39148. StructureType sType = StructureType::eSubpassDescription2KHR;
  39149. public:
  39150. const void* pNext = nullptr;
  39151. SubpassDescriptionFlags flags;
  39152. PipelineBindPoint pipelineBindPoint;
  39153. uint32_t viewMask;
  39154. uint32_t inputAttachmentCount;
  39155. const AttachmentReference2KHR* pInputAttachments;
  39156. uint32_t colorAttachmentCount;
  39157. const AttachmentReference2KHR* pColorAttachments;
  39158. const AttachmentReference2KHR* pResolveAttachments;
  39159. const AttachmentReference2KHR* pDepthStencilAttachment;
  39160. uint32_t preserveAttachmentCount;
  39161. const uint32_t* pPreserveAttachments;
  39162. };
  39163. static_assert( sizeof( SubpassDescription2KHR ) == sizeof( VkSubpassDescription2KHR ), "struct and wrapper have different size!" );
  39164. struct SubpassDependency2KHR
  39165. {
  39166. SubpassDependency2KHR( uint32_t srcSubpass_ = 0,
  39167. uint32_t dstSubpass_ = 0,
  39168. PipelineStageFlags srcStageMask_ = PipelineStageFlags(),
  39169. PipelineStageFlags dstStageMask_ = PipelineStageFlags(),
  39170. AccessFlags srcAccessMask_ = AccessFlags(),
  39171. AccessFlags dstAccessMask_ = AccessFlags(),
  39172. DependencyFlags dependencyFlags_ = DependencyFlags(),
  39173. int32_t viewOffset_ = 0 )
  39174. : srcSubpass( srcSubpass_ )
  39175. , dstSubpass( dstSubpass_ )
  39176. , srcStageMask( srcStageMask_ )
  39177. , dstStageMask( dstStageMask_ )
  39178. , srcAccessMask( srcAccessMask_ )
  39179. , dstAccessMask( dstAccessMask_ )
  39180. , dependencyFlags( dependencyFlags_ )
  39181. , viewOffset( viewOffset_ )
  39182. {}
  39183. SubpassDependency2KHR( VkSubpassDependency2KHR const & rhs )
  39184. {
  39185. *reinterpret_cast<VkSubpassDependency2KHR*>(this) = rhs;
  39186. }
  39187. SubpassDependency2KHR& operator=( VkSubpassDependency2KHR const & rhs )
  39188. {
  39189. *reinterpret_cast<VkSubpassDependency2KHR*>(this) = rhs;
  39190. return *this;
  39191. }
  39192. SubpassDependency2KHR & setPNext( const void* pNext_ )
  39193. {
  39194. pNext = pNext_;
  39195. return *this;
  39196. }
  39197. SubpassDependency2KHR & setSrcSubpass( uint32_t srcSubpass_ )
  39198. {
  39199. srcSubpass = srcSubpass_;
  39200. return *this;
  39201. }
  39202. SubpassDependency2KHR & setDstSubpass( uint32_t dstSubpass_ )
  39203. {
  39204. dstSubpass = dstSubpass_;
  39205. return *this;
  39206. }
  39207. SubpassDependency2KHR & setSrcStageMask( PipelineStageFlags srcStageMask_ )
  39208. {
  39209. srcStageMask = srcStageMask_;
  39210. return *this;
  39211. }
  39212. SubpassDependency2KHR & setDstStageMask( PipelineStageFlags dstStageMask_ )
  39213. {
  39214. dstStageMask = dstStageMask_;
  39215. return *this;
  39216. }
  39217. SubpassDependency2KHR & setSrcAccessMask( AccessFlags srcAccessMask_ )
  39218. {
  39219. srcAccessMask = srcAccessMask_;
  39220. return *this;
  39221. }
  39222. SubpassDependency2KHR & setDstAccessMask( AccessFlags dstAccessMask_ )
  39223. {
  39224. dstAccessMask = dstAccessMask_;
  39225. return *this;
  39226. }
  39227. SubpassDependency2KHR & setDependencyFlags( DependencyFlags dependencyFlags_ )
  39228. {
  39229. dependencyFlags = dependencyFlags_;
  39230. return *this;
  39231. }
  39232. SubpassDependency2KHR & setViewOffset( int32_t viewOffset_ )
  39233. {
  39234. viewOffset = viewOffset_;
  39235. return *this;
  39236. }
  39237. operator VkSubpassDependency2KHR const&() const
  39238. {
  39239. return *reinterpret_cast<const VkSubpassDependency2KHR*>( this );
  39240. }
  39241. operator VkSubpassDependency2KHR &()
  39242. {
  39243. return *reinterpret_cast<VkSubpassDependency2KHR*>( this );
  39244. }
  39245. bool operator==( SubpassDependency2KHR const& rhs ) const
  39246. {
  39247. return ( sType == rhs.sType )
  39248. && ( pNext == rhs.pNext )
  39249. && ( srcSubpass == rhs.srcSubpass )
  39250. && ( dstSubpass == rhs.dstSubpass )
  39251. && ( srcStageMask == rhs.srcStageMask )
  39252. && ( dstStageMask == rhs.dstStageMask )
  39253. && ( srcAccessMask == rhs.srcAccessMask )
  39254. && ( dstAccessMask == rhs.dstAccessMask )
  39255. && ( dependencyFlags == rhs.dependencyFlags )
  39256. && ( viewOffset == rhs.viewOffset );
  39257. }
  39258. bool operator!=( SubpassDependency2KHR const& rhs ) const
  39259. {
  39260. return !operator==( rhs );
  39261. }
  39262. private:
  39263. StructureType sType = StructureType::eSubpassDependency2KHR;
  39264. public:
  39265. const void* pNext = nullptr;
  39266. uint32_t srcSubpass;
  39267. uint32_t dstSubpass;
  39268. PipelineStageFlags srcStageMask;
  39269. PipelineStageFlags dstStageMask;
  39270. AccessFlags srcAccessMask;
  39271. AccessFlags dstAccessMask;
  39272. DependencyFlags dependencyFlags;
  39273. int32_t viewOffset;
  39274. };
  39275. static_assert( sizeof( SubpassDependency2KHR ) == sizeof( VkSubpassDependency2KHR ), "struct and wrapper have different size!" );
  39276. struct RenderPassCreateInfo2KHR
  39277. {
  39278. RenderPassCreateInfo2KHR( RenderPassCreateFlags flags_ = RenderPassCreateFlags(),
  39279. uint32_t attachmentCount_ = 0,
  39280. const AttachmentDescription2KHR* pAttachments_ = nullptr,
  39281. uint32_t subpassCount_ = 0,
  39282. const SubpassDescription2KHR* pSubpasses_ = nullptr,
  39283. uint32_t dependencyCount_ = 0,
  39284. const SubpassDependency2KHR* pDependencies_ = nullptr,
  39285. uint32_t correlatedViewMaskCount_ = 0,
  39286. const uint32_t* pCorrelatedViewMasks_ = nullptr )
  39287. : flags( flags_ )
  39288. , attachmentCount( attachmentCount_ )
  39289. , pAttachments( pAttachments_ )
  39290. , subpassCount( subpassCount_ )
  39291. , pSubpasses( pSubpasses_ )
  39292. , dependencyCount( dependencyCount_ )
  39293. , pDependencies( pDependencies_ )
  39294. , correlatedViewMaskCount( correlatedViewMaskCount_ )
  39295. , pCorrelatedViewMasks( pCorrelatedViewMasks_ )
  39296. {}
  39297. RenderPassCreateInfo2KHR( VkRenderPassCreateInfo2KHR const & rhs )
  39298. {
  39299. *reinterpret_cast<VkRenderPassCreateInfo2KHR*>(this) = rhs;
  39300. }
  39301. RenderPassCreateInfo2KHR& operator=( VkRenderPassCreateInfo2KHR const & rhs )
  39302. {
  39303. *reinterpret_cast<VkRenderPassCreateInfo2KHR*>(this) = rhs;
  39304. return *this;
  39305. }
  39306. RenderPassCreateInfo2KHR & setPNext( const void* pNext_ )
  39307. {
  39308. pNext = pNext_;
  39309. return *this;
  39310. }
  39311. RenderPassCreateInfo2KHR & setFlags( RenderPassCreateFlags flags_ )
  39312. {
  39313. flags = flags_;
  39314. return *this;
  39315. }
  39316. RenderPassCreateInfo2KHR & setAttachmentCount( uint32_t attachmentCount_ )
  39317. {
  39318. attachmentCount = attachmentCount_;
  39319. return *this;
  39320. }
  39321. RenderPassCreateInfo2KHR & setPAttachments( const AttachmentDescription2KHR* pAttachments_ )
  39322. {
  39323. pAttachments = pAttachments_;
  39324. return *this;
  39325. }
  39326. RenderPassCreateInfo2KHR & setSubpassCount( uint32_t subpassCount_ )
  39327. {
  39328. subpassCount = subpassCount_;
  39329. return *this;
  39330. }
  39331. RenderPassCreateInfo2KHR & setPSubpasses( const SubpassDescription2KHR* pSubpasses_ )
  39332. {
  39333. pSubpasses = pSubpasses_;
  39334. return *this;
  39335. }
  39336. RenderPassCreateInfo2KHR & setDependencyCount( uint32_t dependencyCount_ )
  39337. {
  39338. dependencyCount = dependencyCount_;
  39339. return *this;
  39340. }
  39341. RenderPassCreateInfo2KHR & setPDependencies( const SubpassDependency2KHR* pDependencies_ )
  39342. {
  39343. pDependencies = pDependencies_;
  39344. return *this;
  39345. }
  39346. RenderPassCreateInfo2KHR & setCorrelatedViewMaskCount( uint32_t correlatedViewMaskCount_ )
  39347. {
  39348. correlatedViewMaskCount = correlatedViewMaskCount_;
  39349. return *this;
  39350. }
  39351. RenderPassCreateInfo2KHR & setPCorrelatedViewMasks( const uint32_t* pCorrelatedViewMasks_ )
  39352. {
  39353. pCorrelatedViewMasks = pCorrelatedViewMasks_;
  39354. return *this;
  39355. }
  39356. operator VkRenderPassCreateInfo2KHR const&() const
  39357. {
  39358. return *reinterpret_cast<const VkRenderPassCreateInfo2KHR*>( this );
  39359. }
  39360. operator VkRenderPassCreateInfo2KHR &()
  39361. {
  39362. return *reinterpret_cast<VkRenderPassCreateInfo2KHR*>( this );
  39363. }
  39364. bool operator==( RenderPassCreateInfo2KHR const& rhs ) const
  39365. {
  39366. return ( sType == rhs.sType )
  39367. && ( pNext == rhs.pNext )
  39368. && ( flags == rhs.flags )
  39369. && ( attachmentCount == rhs.attachmentCount )
  39370. && ( pAttachments == rhs.pAttachments )
  39371. && ( subpassCount == rhs.subpassCount )
  39372. && ( pSubpasses == rhs.pSubpasses )
  39373. && ( dependencyCount == rhs.dependencyCount )
  39374. && ( pDependencies == rhs.pDependencies )
  39375. && ( correlatedViewMaskCount == rhs.correlatedViewMaskCount )
  39376. && ( pCorrelatedViewMasks == rhs.pCorrelatedViewMasks );
  39377. }
  39378. bool operator!=( RenderPassCreateInfo2KHR const& rhs ) const
  39379. {
  39380. return !operator==( rhs );
  39381. }
  39382. private:
  39383. StructureType sType = StructureType::eRenderPassCreateInfo2KHR;
  39384. public:
  39385. const void* pNext = nullptr;
  39386. RenderPassCreateFlags flags;
  39387. uint32_t attachmentCount;
  39388. const AttachmentDescription2KHR* pAttachments;
  39389. uint32_t subpassCount;
  39390. const SubpassDescription2KHR* pSubpasses;
  39391. uint32_t dependencyCount;
  39392. const SubpassDependency2KHR* pDependencies;
  39393. uint32_t correlatedViewMaskCount;
  39394. const uint32_t* pCorrelatedViewMasks;
  39395. };
  39396. static_assert( sizeof( RenderPassCreateInfo2KHR ) == sizeof( VkRenderPassCreateInfo2KHR ), "struct and wrapper have different size!" );
  39397. struct RenderPassFragmentDensityMapCreateInfoEXT
  39398. {
  39399. RenderPassFragmentDensityMapCreateInfoEXT( AttachmentReference fragmentDensityMapAttachment_ = AttachmentReference() )
  39400. : fragmentDensityMapAttachment( fragmentDensityMapAttachment_ )
  39401. {}
  39402. RenderPassFragmentDensityMapCreateInfoEXT( VkRenderPassFragmentDensityMapCreateInfoEXT const & rhs )
  39403. {
  39404. *reinterpret_cast<VkRenderPassFragmentDensityMapCreateInfoEXT*>(this) = rhs;
  39405. }
  39406. RenderPassFragmentDensityMapCreateInfoEXT& operator=( VkRenderPassFragmentDensityMapCreateInfoEXT const & rhs )
  39407. {
  39408. *reinterpret_cast<VkRenderPassFragmentDensityMapCreateInfoEXT*>(this) = rhs;
  39409. return *this;
  39410. }
  39411. RenderPassFragmentDensityMapCreateInfoEXT & setPNext( const void* pNext_ )
  39412. {
  39413. pNext = pNext_;
  39414. return *this;
  39415. }
  39416. RenderPassFragmentDensityMapCreateInfoEXT & setFragmentDensityMapAttachment( AttachmentReference fragmentDensityMapAttachment_ )
  39417. {
  39418. fragmentDensityMapAttachment = fragmentDensityMapAttachment_;
  39419. return *this;
  39420. }
  39421. operator VkRenderPassFragmentDensityMapCreateInfoEXT const&() const
  39422. {
  39423. return *reinterpret_cast<const VkRenderPassFragmentDensityMapCreateInfoEXT*>( this );
  39424. }
  39425. operator VkRenderPassFragmentDensityMapCreateInfoEXT &()
  39426. {
  39427. return *reinterpret_cast<VkRenderPassFragmentDensityMapCreateInfoEXT*>( this );
  39428. }
  39429. bool operator==( RenderPassFragmentDensityMapCreateInfoEXT const& rhs ) const
  39430. {
  39431. return ( sType == rhs.sType )
  39432. && ( pNext == rhs.pNext )
  39433. && ( fragmentDensityMapAttachment == rhs.fragmentDensityMapAttachment );
  39434. }
  39435. bool operator!=( RenderPassFragmentDensityMapCreateInfoEXT const& rhs ) const
  39436. {
  39437. return !operator==( rhs );
  39438. }
  39439. private:
  39440. StructureType sType = StructureType::eRenderPassFragmentDensityMapCreateInfoEXT;
  39441. public:
  39442. const void* pNext = nullptr;
  39443. AttachmentReference fragmentDensityMapAttachment;
  39444. };
  39445. static_assert( sizeof( RenderPassFragmentDensityMapCreateInfoEXT ) == sizeof( VkRenderPassFragmentDensityMapCreateInfoEXT ), "struct and wrapper have different size!" );
  39446. struct RenderPassInputAttachmentAspectCreateInfo
  39447. {
  39448. RenderPassInputAttachmentAspectCreateInfo( uint32_t aspectReferenceCount_ = 0,
  39449. const InputAttachmentAspectReference* pAspectReferences_ = nullptr )
  39450. : aspectReferenceCount( aspectReferenceCount_ )
  39451. , pAspectReferences( pAspectReferences_ )
  39452. {}
  39453. RenderPassInputAttachmentAspectCreateInfo( VkRenderPassInputAttachmentAspectCreateInfo const & rhs )
  39454. {
  39455. *reinterpret_cast<VkRenderPassInputAttachmentAspectCreateInfo*>(this) = rhs;
  39456. }
  39457. RenderPassInputAttachmentAspectCreateInfo& operator=( VkRenderPassInputAttachmentAspectCreateInfo const & rhs )
  39458. {
  39459. *reinterpret_cast<VkRenderPassInputAttachmentAspectCreateInfo*>(this) = rhs;
  39460. return *this;
  39461. }
  39462. RenderPassInputAttachmentAspectCreateInfo & setPNext( const void* pNext_ )
  39463. {
  39464. pNext = pNext_;
  39465. return *this;
  39466. }
  39467. RenderPassInputAttachmentAspectCreateInfo & setAspectReferenceCount( uint32_t aspectReferenceCount_ )
  39468. {
  39469. aspectReferenceCount = aspectReferenceCount_;
  39470. return *this;
  39471. }
  39472. RenderPassInputAttachmentAspectCreateInfo & setPAspectReferences( const InputAttachmentAspectReference* pAspectReferences_ )
  39473. {
  39474. pAspectReferences = pAspectReferences_;
  39475. return *this;
  39476. }
  39477. operator VkRenderPassInputAttachmentAspectCreateInfo const&() const
  39478. {
  39479. return *reinterpret_cast<const VkRenderPassInputAttachmentAspectCreateInfo*>( this );
  39480. }
  39481. operator VkRenderPassInputAttachmentAspectCreateInfo &()
  39482. {
  39483. return *reinterpret_cast<VkRenderPassInputAttachmentAspectCreateInfo*>( this );
  39484. }
  39485. bool operator==( RenderPassInputAttachmentAspectCreateInfo const& rhs ) const
  39486. {
  39487. return ( sType == rhs.sType )
  39488. && ( pNext == rhs.pNext )
  39489. && ( aspectReferenceCount == rhs.aspectReferenceCount )
  39490. && ( pAspectReferences == rhs.pAspectReferences );
  39491. }
  39492. bool operator!=( RenderPassInputAttachmentAspectCreateInfo const& rhs ) const
  39493. {
  39494. return !operator==( rhs );
  39495. }
  39496. private:
  39497. StructureType sType = StructureType::eRenderPassInputAttachmentAspectCreateInfo;
  39498. public:
  39499. const void* pNext = nullptr;
  39500. uint32_t aspectReferenceCount;
  39501. const InputAttachmentAspectReference* pAspectReferences;
  39502. };
  39503. static_assert( sizeof( RenderPassInputAttachmentAspectCreateInfo ) == sizeof( VkRenderPassInputAttachmentAspectCreateInfo ), "struct and wrapper have different size!" );
  39504. struct RenderPassMultiviewCreateInfo
  39505. {
  39506. RenderPassMultiviewCreateInfo( uint32_t subpassCount_ = 0,
  39507. const uint32_t* pViewMasks_ = nullptr,
  39508. uint32_t dependencyCount_ = 0,
  39509. const int32_t* pViewOffsets_ = nullptr,
  39510. uint32_t correlationMaskCount_ = 0,
  39511. const uint32_t* pCorrelationMasks_ = nullptr )
  39512. : subpassCount( subpassCount_ )
  39513. , pViewMasks( pViewMasks_ )
  39514. , dependencyCount( dependencyCount_ )
  39515. , pViewOffsets( pViewOffsets_ )
  39516. , correlationMaskCount( correlationMaskCount_ )
  39517. , pCorrelationMasks( pCorrelationMasks_ )
  39518. {}
  39519. RenderPassMultiviewCreateInfo( VkRenderPassMultiviewCreateInfo const & rhs )
  39520. {
  39521. *reinterpret_cast<VkRenderPassMultiviewCreateInfo*>(this) = rhs;
  39522. }
  39523. RenderPassMultiviewCreateInfo& operator=( VkRenderPassMultiviewCreateInfo const & rhs )
  39524. {
  39525. *reinterpret_cast<VkRenderPassMultiviewCreateInfo*>(this) = rhs;
  39526. return *this;
  39527. }
  39528. RenderPassMultiviewCreateInfo & setPNext( const void* pNext_ )
  39529. {
  39530. pNext = pNext_;
  39531. return *this;
  39532. }
  39533. RenderPassMultiviewCreateInfo & setSubpassCount( uint32_t subpassCount_ )
  39534. {
  39535. subpassCount = subpassCount_;
  39536. return *this;
  39537. }
  39538. RenderPassMultiviewCreateInfo & setPViewMasks( const uint32_t* pViewMasks_ )
  39539. {
  39540. pViewMasks = pViewMasks_;
  39541. return *this;
  39542. }
  39543. RenderPassMultiviewCreateInfo & setDependencyCount( uint32_t dependencyCount_ )
  39544. {
  39545. dependencyCount = dependencyCount_;
  39546. return *this;
  39547. }
  39548. RenderPassMultiviewCreateInfo & setPViewOffsets( const int32_t* pViewOffsets_ )
  39549. {
  39550. pViewOffsets = pViewOffsets_;
  39551. return *this;
  39552. }
  39553. RenderPassMultiviewCreateInfo & setCorrelationMaskCount( uint32_t correlationMaskCount_ )
  39554. {
  39555. correlationMaskCount = correlationMaskCount_;
  39556. return *this;
  39557. }
  39558. RenderPassMultiviewCreateInfo & setPCorrelationMasks( const uint32_t* pCorrelationMasks_ )
  39559. {
  39560. pCorrelationMasks = pCorrelationMasks_;
  39561. return *this;
  39562. }
  39563. operator VkRenderPassMultiviewCreateInfo const&() const
  39564. {
  39565. return *reinterpret_cast<const VkRenderPassMultiviewCreateInfo*>( this );
  39566. }
  39567. operator VkRenderPassMultiviewCreateInfo &()
  39568. {
  39569. return *reinterpret_cast<VkRenderPassMultiviewCreateInfo*>( this );
  39570. }
  39571. bool operator==( RenderPassMultiviewCreateInfo const& rhs ) const
  39572. {
  39573. return ( sType == rhs.sType )
  39574. && ( pNext == rhs.pNext )
  39575. && ( subpassCount == rhs.subpassCount )
  39576. && ( pViewMasks == rhs.pViewMasks )
  39577. && ( dependencyCount == rhs.dependencyCount )
  39578. && ( pViewOffsets == rhs.pViewOffsets )
  39579. && ( correlationMaskCount == rhs.correlationMaskCount )
  39580. && ( pCorrelationMasks == rhs.pCorrelationMasks );
  39581. }
  39582. bool operator!=( RenderPassMultiviewCreateInfo const& rhs ) const
  39583. {
  39584. return !operator==( rhs );
  39585. }
  39586. private:
  39587. StructureType sType = StructureType::eRenderPassMultiviewCreateInfo;
  39588. public:
  39589. const void* pNext = nullptr;
  39590. uint32_t subpassCount;
  39591. const uint32_t* pViewMasks;
  39592. uint32_t dependencyCount;
  39593. const int32_t* pViewOffsets;
  39594. uint32_t correlationMaskCount;
  39595. const uint32_t* pCorrelationMasks;
  39596. };
  39597. static_assert( sizeof( RenderPassMultiviewCreateInfo ) == sizeof( VkRenderPassMultiviewCreateInfo ), "struct and wrapper have different size!" );
  39598. struct SubpassSampleLocationsEXT
  39599. {
  39600. SubpassSampleLocationsEXT( uint32_t subpassIndex_ = 0,
  39601. SampleLocationsInfoEXT sampleLocationsInfo_ = SampleLocationsInfoEXT() )
  39602. : subpassIndex( subpassIndex_ )
  39603. , sampleLocationsInfo( sampleLocationsInfo_ )
  39604. {}
  39605. SubpassSampleLocationsEXT( VkSubpassSampleLocationsEXT const & rhs )
  39606. {
  39607. *reinterpret_cast<VkSubpassSampleLocationsEXT*>(this) = rhs;
  39608. }
  39609. SubpassSampleLocationsEXT& operator=( VkSubpassSampleLocationsEXT const & rhs )
  39610. {
  39611. *reinterpret_cast<VkSubpassSampleLocationsEXT*>(this) = rhs;
  39612. return *this;
  39613. }
  39614. SubpassSampleLocationsEXT & setSubpassIndex( uint32_t subpassIndex_ )
  39615. {
  39616. subpassIndex = subpassIndex_;
  39617. return *this;
  39618. }
  39619. SubpassSampleLocationsEXT & setSampleLocationsInfo( SampleLocationsInfoEXT sampleLocationsInfo_ )
  39620. {
  39621. sampleLocationsInfo = sampleLocationsInfo_;
  39622. return *this;
  39623. }
  39624. operator VkSubpassSampleLocationsEXT const&() const
  39625. {
  39626. return *reinterpret_cast<const VkSubpassSampleLocationsEXT*>( this );
  39627. }
  39628. operator VkSubpassSampleLocationsEXT &()
  39629. {
  39630. return *reinterpret_cast<VkSubpassSampleLocationsEXT*>( this );
  39631. }
  39632. bool operator==( SubpassSampleLocationsEXT const& rhs ) const
  39633. {
  39634. return ( subpassIndex == rhs.subpassIndex )
  39635. && ( sampleLocationsInfo == rhs.sampleLocationsInfo );
  39636. }
  39637. bool operator!=( SubpassSampleLocationsEXT const& rhs ) const
  39638. {
  39639. return !operator==( rhs );
  39640. }
  39641. uint32_t subpassIndex;
  39642. SampleLocationsInfoEXT sampleLocationsInfo;
  39643. };
  39644. static_assert( sizeof( SubpassSampleLocationsEXT ) == sizeof( VkSubpassSampleLocationsEXT ), "struct and wrapper have different size!" );
  39645. struct RenderPassSampleLocationsBeginInfoEXT
  39646. {
  39647. RenderPassSampleLocationsBeginInfoEXT( uint32_t attachmentInitialSampleLocationsCount_ = 0,
  39648. const AttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations_ = nullptr,
  39649. uint32_t postSubpassSampleLocationsCount_ = 0,
  39650. const SubpassSampleLocationsEXT* pPostSubpassSampleLocations_ = nullptr )
  39651. : attachmentInitialSampleLocationsCount( attachmentInitialSampleLocationsCount_ )
  39652. , pAttachmentInitialSampleLocations( pAttachmentInitialSampleLocations_ )
  39653. , postSubpassSampleLocationsCount( postSubpassSampleLocationsCount_ )
  39654. , pPostSubpassSampleLocations( pPostSubpassSampleLocations_ )
  39655. {}
  39656. RenderPassSampleLocationsBeginInfoEXT( VkRenderPassSampleLocationsBeginInfoEXT const & rhs )
  39657. {
  39658. *reinterpret_cast<VkRenderPassSampleLocationsBeginInfoEXT*>(this) = rhs;
  39659. }
  39660. RenderPassSampleLocationsBeginInfoEXT& operator=( VkRenderPassSampleLocationsBeginInfoEXT const & rhs )
  39661. {
  39662. *reinterpret_cast<VkRenderPassSampleLocationsBeginInfoEXT*>(this) = rhs;
  39663. return *this;
  39664. }
  39665. RenderPassSampleLocationsBeginInfoEXT & setPNext( const void* pNext_ )
  39666. {
  39667. pNext = pNext_;
  39668. return *this;
  39669. }
  39670. RenderPassSampleLocationsBeginInfoEXT & setAttachmentInitialSampleLocationsCount( uint32_t attachmentInitialSampleLocationsCount_ )
  39671. {
  39672. attachmentInitialSampleLocationsCount = attachmentInitialSampleLocationsCount_;
  39673. return *this;
  39674. }
  39675. RenderPassSampleLocationsBeginInfoEXT & setPAttachmentInitialSampleLocations( const AttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations_ )
  39676. {
  39677. pAttachmentInitialSampleLocations = pAttachmentInitialSampleLocations_;
  39678. return *this;
  39679. }
  39680. RenderPassSampleLocationsBeginInfoEXT & setPostSubpassSampleLocationsCount( uint32_t postSubpassSampleLocationsCount_ )
  39681. {
  39682. postSubpassSampleLocationsCount = postSubpassSampleLocationsCount_;
  39683. return *this;
  39684. }
  39685. RenderPassSampleLocationsBeginInfoEXT & setPPostSubpassSampleLocations( const SubpassSampleLocationsEXT* pPostSubpassSampleLocations_ )
  39686. {
  39687. pPostSubpassSampleLocations = pPostSubpassSampleLocations_;
  39688. return *this;
  39689. }
  39690. operator VkRenderPassSampleLocationsBeginInfoEXT const&() const
  39691. {
  39692. return *reinterpret_cast<const VkRenderPassSampleLocationsBeginInfoEXT*>( this );
  39693. }
  39694. operator VkRenderPassSampleLocationsBeginInfoEXT &()
  39695. {
  39696. return *reinterpret_cast<VkRenderPassSampleLocationsBeginInfoEXT*>( this );
  39697. }
  39698. bool operator==( RenderPassSampleLocationsBeginInfoEXT const& rhs ) const
  39699. {
  39700. return ( sType == rhs.sType )
  39701. && ( pNext == rhs.pNext )
  39702. && ( attachmentInitialSampleLocationsCount == rhs.attachmentInitialSampleLocationsCount )
  39703. && ( pAttachmentInitialSampleLocations == rhs.pAttachmentInitialSampleLocations )
  39704. && ( postSubpassSampleLocationsCount == rhs.postSubpassSampleLocationsCount )
  39705. && ( pPostSubpassSampleLocations == rhs.pPostSubpassSampleLocations );
  39706. }
  39707. bool operator!=( RenderPassSampleLocationsBeginInfoEXT const& rhs ) const
  39708. {
  39709. return !operator==( rhs );
  39710. }
  39711. private:
  39712. StructureType sType = StructureType::eRenderPassSampleLocationsBeginInfoEXT;
  39713. public:
  39714. const void* pNext = nullptr;
  39715. uint32_t attachmentInitialSampleLocationsCount;
  39716. const AttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations;
  39717. uint32_t postSubpassSampleLocationsCount;
  39718. const SubpassSampleLocationsEXT* pPostSubpassSampleLocations;
  39719. };
  39720. static_assert( sizeof( RenderPassSampleLocationsBeginInfoEXT ) == sizeof( VkRenderPassSampleLocationsBeginInfoEXT ), "struct and wrapper have different size!" );
  39721. struct SamplerCreateInfo
  39722. {
  39723. SamplerCreateInfo( SamplerCreateFlags flags_ = SamplerCreateFlags(),
  39724. Filter magFilter_ = Filter::eNearest,
  39725. Filter minFilter_ = Filter::eNearest,
  39726. SamplerMipmapMode mipmapMode_ = SamplerMipmapMode::eNearest,
  39727. SamplerAddressMode addressModeU_ = SamplerAddressMode::eRepeat,
  39728. SamplerAddressMode addressModeV_ = SamplerAddressMode::eRepeat,
  39729. SamplerAddressMode addressModeW_ = SamplerAddressMode::eRepeat,
  39730. float mipLodBias_ = 0,
  39731. Bool32 anisotropyEnable_ = 0,
  39732. float maxAnisotropy_ = 0,
  39733. Bool32 compareEnable_ = 0,
  39734. CompareOp compareOp_ = CompareOp::eNever,
  39735. float minLod_ = 0,
  39736. float maxLod_ = 0,
  39737. BorderColor borderColor_ = BorderColor::eFloatTransparentBlack,
  39738. Bool32 unnormalizedCoordinates_ = 0 )
  39739. : flags( flags_ )
  39740. , magFilter( magFilter_ )
  39741. , minFilter( minFilter_ )
  39742. , mipmapMode( mipmapMode_ )
  39743. , addressModeU( addressModeU_ )
  39744. , addressModeV( addressModeV_ )
  39745. , addressModeW( addressModeW_ )
  39746. , mipLodBias( mipLodBias_ )
  39747. , anisotropyEnable( anisotropyEnable_ )
  39748. , maxAnisotropy( maxAnisotropy_ )
  39749. , compareEnable( compareEnable_ )
  39750. , compareOp( compareOp_ )
  39751. , minLod( minLod_ )
  39752. , maxLod( maxLod_ )
  39753. , borderColor( borderColor_ )
  39754. , unnormalizedCoordinates( unnormalizedCoordinates_ )
  39755. {}
  39756. SamplerCreateInfo( VkSamplerCreateInfo const & rhs )
  39757. {
  39758. *reinterpret_cast<VkSamplerCreateInfo*>(this) = rhs;
  39759. }
  39760. SamplerCreateInfo& operator=( VkSamplerCreateInfo const & rhs )
  39761. {
  39762. *reinterpret_cast<VkSamplerCreateInfo*>(this) = rhs;
  39763. return *this;
  39764. }
  39765. SamplerCreateInfo & setPNext( const void* pNext_ )
  39766. {
  39767. pNext = pNext_;
  39768. return *this;
  39769. }
  39770. SamplerCreateInfo & setFlags( SamplerCreateFlags flags_ )
  39771. {
  39772. flags = flags_;
  39773. return *this;
  39774. }
  39775. SamplerCreateInfo & setMagFilter( Filter magFilter_ )
  39776. {
  39777. magFilter = magFilter_;
  39778. return *this;
  39779. }
  39780. SamplerCreateInfo & setMinFilter( Filter minFilter_ )
  39781. {
  39782. minFilter = minFilter_;
  39783. return *this;
  39784. }
  39785. SamplerCreateInfo & setMipmapMode( SamplerMipmapMode mipmapMode_ )
  39786. {
  39787. mipmapMode = mipmapMode_;
  39788. return *this;
  39789. }
  39790. SamplerCreateInfo & setAddressModeU( SamplerAddressMode addressModeU_ )
  39791. {
  39792. addressModeU = addressModeU_;
  39793. return *this;
  39794. }
  39795. SamplerCreateInfo & setAddressModeV( SamplerAddressMode addressModeV_ )
  39796. {
  39797. addressModeV = addressModeV_;
  39798. return *this;
  39799. }
  39800. SamplerCreateInfo & setAddressModeW( SamplerAddressMode addressModeW_ )
  39801. {
  39802. addressModeW = addressModeW_;
  39803. return *this;
  39804. }
  39805. SamplerCreateInfo & setMipLodBias( float mipLodBias_ )
  39806. {
  39807. mipLodBias = mipLodBias_;
  39808. return *this;
  39809. }
  39810. SamplerCreateInfo & setAnisotropyEnable( Bool32 anisotropyEnable_ )
  39811. {
  39812. anisotropyEnable = anisotropyEnable_;
  39813. return *this;
  39814. }
  39815. SamplerCreateInfo & setMaxAnisotropy( float maxAnisotropy_ )
  39816. {
  39817. maxAnisotropy = maxAnisotropy_;
  39818. return *this;
  39819. }
  39820. SamplerCreateInfo & setCompareEnable( Bool32 compareEnable_ )
  39821. {
  39822. compareEnable = compareEnable_;
  39823. return *this;
  39824. }
  39825. SamplerCreateInfo & setCompareOp( CompareOp compareOp_ )
  39826. {
  39827. compareOp = compareOp_;
  39828. return *this;
  39829. }
  39830. SamplerCreateInfo & setMinLod( float minLod_ )
  39831. {
  39832. minLod = minLod_;
  39833. return *this;
  39834. }
  39835. SamplerCreateInfo & setMaxLod( float maxLod_ )
  39836. {
  39837. maxLod = maxLod_;
  39838. return *this;
  39839. }
  39840. SamplerCreateInfo & setBorderColor( BorderColor borderColor_ )
  39841. {
  39842. borderColor = borderColor_;
  39843. return *this;
  39844. }
  39845. SamplerCreateInfo & setUnnormalizedCoordinates( Bool32 unnormalizedCoordinates_ )
  39846. {
  39847. unnormalizedCoordinates = unnormalizedCoordinates_;
  39848. return *this;
  39849. }
  39850. operator VkSamplerCreateInfo const&() const
  39851. {
  39852. return *reinterpret_cast<const VkSamplerCreateInfo*>( this );
  39853. }
  39854. operator VkSamplerCreateInfo &()
  39855. {
  39856. return *reinterpret_cast<VkSamplerCreateInfo*>( this );
  39857. }
  39858. bool operator==( SamplerCreateInfo const& rhs ) const
  39859. {
  39860. return ( sType == rhs.sType )
  39861. && ( pNext == rhs.pNext )
  39862. && ( flags == rhs.flags )
  39863. && ( magFilter == rhs.magFilter )
  39864. && ( minFilter == rhs.minFilter )
  39865. && ( mipmapMode == rhs.mipmapMode )
  39866. && ( addressModeU == rhs.addressModeU )
  39867. && ( addressModeV == rhs.addressModeV )
  39868. && ( addressModeW == rhs.addressModeW )
  39869. && ( mipLodBias == rhs.mipLodBias )
  39870. && ( anisotropyEnable == rhs.anisotropyEnable )
  39871. && ( maxAnisotropy == rhs.maxAnisotropy )
  39872. && ( compareEnable == rhs.compareEnable )
  39873. && ( compareOp == rhs.compareOp )
  39874. && ( minLod == rhs.minLod )
  39875. && ( maxLod == rhs.maxLod )
  39876. && ( borderColor == rhs.borderColor )
  39877. && ( unnormalizedCoordinates == rhs.unnormalizedCoordinates );
  39878. }
  39879. bool operator!=( SamplerCreateInfo const& rhs ) const
  39880. {
  39881. return !operator==( rhs );
  39882. }
  39883. private:
  39884. StructureType sType = StructureType::eSamplerCreateInfo;
  39885. public:
  39886. const void* pNext = nullptr;
  39887. SamplerCreateFlags flags;
  39888. Filter magFilter;
  39889. Filter minFilter;
  39890. SamplerMipmapMode mipmapMode;
  39891. SamplerAddressMode addressModeU;
  39892. SamplerAddressMode addressModeV;
  39893. SamplerAddressMode addressModeW;
  39894. float mipLodBias;
  39895. Bool32 anisotropyEnable;
  39896. float maxAnisotropy;
  39897. Bool32 compareEnable;
  39898. CompareOp compareOp;
  39899. float minLod;
  39900. float maxLod;
  39901. BorderColor borderColor;
  39902. Bool32 unnormalizedCoordinates;
  39903. };
  39904. static_assert( sizeof( SamplerCreateInfo ) == sizeof( VkSamplerCreateInfo ), "struct and wrapper have different size!" );
  39905. struct SamplerReductionModeCreateInfoEXT
  39906. {
  39907. SamplerReductionModeCreateInfoEXT( SamplerReductionModeEXT reductionMode_ = SamplerReductionModeEXT::eWeightedAverage )
  39908. : reductionMode( reductionMode_ )
  39909. {}
  39910. SamplerReductionModeCreateInfoEXT( VkSamplerReductionModeCreateInfoEXT const & rhs )
  39911. {
  39912. *reinterpret_cast<VkSamplerReductionModeCreateInfoEXT*>(this) = rhs;
  39913. }
  39914. SamplerReductionModeCreateInfoEXT& operator=( VkSamplerReductionModeCreateInfoEXT const & rhs )
  39915. {
  39916. *reinterpret_cast<VkSamplerReductionModeCreateInfoEXT*>(this) = rhs;
  39917. return *this;
  39918. }
  39919. SamplerReductionModeCreateInfoEXT & setPNext( const void* pNext_ )
  39920. {
  39921. pNext = pNext_;
  39922. return *this;
  39923. }
  39924. SamplerReductionModeCreateInfoEXT & setReductionMode( SamplerReductionModeEXT reductionMode_ )
  39925. {
  39926. reductionMode = reductionMode_;
  39927. return *this;
  39928. }
  39929. operator VkSamplerReductionModeCreateInfoEXT const&() const
  39930. {
  39931. return *reinterpret_cast<const VkSamplerReductionModeCreateInfoEXT*>( this );
  39932. }
  39933. operator VkSamplerReductionModeCreateInfoEXT &()
  39934. {
  39935. return *reinterpret_cast<VkSamplerReductionModeCreateInfoEXT*>( this );
  39936. }
  39937. bool operator==( SamplerReductionModeCreateInfoEXT const& rhs ) const
  39938. {
  39939. return ( sType == rhs.sType )
  39940. && ( pNext == rhs.pNext )
  39941. && ( reductionMode == rhs.reductionMode );
  39942. }
  39943. bool operator!=( SamplerReductionModeCreateInfoEXT const& rhs ) const
  39944. {
  39945. return !operator==( rhs );
  39946. }
  39947. private:
  39948. StructureType sType = StructureType::eSamplerReductionModeCreateInfoEXT;
  39949. public:
  39950. const void* pNext = nullptr;
  39951. SamplerReductionModeEXT reductionMode;
  39952. };
  39953. static_assert( sizeof( SamplerReductionModeCreateInfoEXT ) == sizeof( VkSamplerReductionModeCreateInfoEXT ), "struct and wrapper have different size!" );
  39954. struct SamplerYcbcrConversionCreateInfo
  39955. {
  39956. SamplerYcbcrConversionCreateInfo( Format format_ = Format::eUndefined,
  39957. SamplerYcbcrModelConversion ycbcrModel_ = SamplerYcbcrModelConversion::eRgbIdentity,
  39958. SamplerYcbcrRange ycbcrRange_ = SamplerYcbcrRange::eItuFull,
  39959. ComponentMapping components_ = ComponentMapping(),
  39960. ChromaLocation xChromaOffset_ = ChromaLocation::eCositedEven,
  39961. ChromaLocation yChromaOffset_ = ChromaLocation::eCositedEven,
  39962. Filter chromaFilter_ = Filter::eNearest,
  39963. Bool32 forceExplicitReconstruction_ = 0 )
  39964. : format( format_ )
  39965. , ycbcrModel( ycbcrModel_ )
  39966. , ycbcrRange( ycbcrRange_ )
  39967. , components( components_ )
  39968. , xChromaOffset( xChromaOffset_ )
  39969. , yChromaOffset( yChromaOffset_ )
  39970. , chromaFilter( chromaFilter_ )
  39971. , forceExplicitReconstruction( forceExplicitReconstruction_ )
  39972. {}
  39973. SamplerYcbcrConversionCreateInfo( VkSamplerYcbcrConversionCreateInfo const & rhs )
  39974. {
  39975. *reinterpret_cast<VkSamplerYcbcrConversionCreateInfo*>(this) = rhs;
  39976. }
  39977. SamplerYcbcrConversionCreateInfo& operator=( VkSamplerYcbcrConversionCreateInfo const & rhs )
  39978. {
  39979. *reinterpret_cast<VkSamplerYcbcrConversionCreateInfo*>(this) = rhs;
  39980. return *this;
  39981. }
  39982. SamplerYcbcrConversionCreateInfo & setPNext( const void* pNext_ )
  39983. {
  39984. pNext = pNext_;
  39985. return *this;
  39986. }
  39987. SamplerYcbcrConversionCreateInfo & setFormat( Format format_ )
  39988. {
  39989. format = format_;
  39990. return *this;
  39991. }
  39992. SamplerYcbcrConversionCreateInfo & setYcbcrModel( SamplerYcbcrModelConversion ycbcrModel_ )
  39993. {
  39994. ycbcrModel = ycbcrModel_;
  39995. return *this;
  39996. }
  39997. SamplerYcbcrConversionCreateInfo & setYcbcrRange( SamplerYcbcrRange ycbcrRange_ )
  39998. {
  39999. ycbcrRange = ycbcrRange_;
  40000. return *this;
  40001. }
  40002. SamplerYcbcrConversionCreateInfo & setComponents( ComponentMapping components_ )
  40003. {
  40004. components = components_;
  40005. return *this;
  40006. }
  40007. SamplerYcbcrConversionCreateInfo & setXChromaOffset( ChromaLocation xChromaOffset_ )
  40008. {
  40009. xChromaOffset = xChromaOffset_;
  40010. return *this;
  40011. }
  40012. SamplerYcbcrConversionCreateInfo & setYChromaOffset( ChromaLocation yChromaOffset_ )
  40013. {
  40014. yChromaOffset = yChromaOffset_;
  40015. return *this;
  40016. }
  40017. SamplerYcbcrConversionCreateInfo & setChromaFilter( Filter chromaFilter_ )
  40018. {
  40019. chromaFilter = chromaFilter_;
  40020. return *this;
  40021. }
  40022. SamplerYcbcrConversionCreateInfo & setForceExplicitReconstruction( Bool32 forceExplicitReconstruction_ )
  40023. {
  40024. forceExplicitReconstruction = forceExplicitReconstruction_;
  40025. return *this;
  40026. }
  40027. operator VkSamplerYcbcrConversionCreateInfo const&() const
  40028. {
  40029. return *reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo*>( this );
  40030. }
  40031. operator VkSamplerYcbcrConversionCreateInfo &()
  40032. {
  40033. return *reinterpret_cast<VkSamplerYcbcrConversionCreateInfo*>( this );
  40034. }
  40035. bool operator==( SamplerYcbcrConversionCreateInfo const& rhs ) const
  40036. {
  40037. return ( sType == rhs.sType )
  40038. && ( pNext == rhs.pNext )
  40039. && ( format == rhs.format )
  40040. && ( ycbcrModel == rhs.ycbcrModel )
  40041. && ( ycbcrRange == rhs.ycbcrRange )
  40042. && ( components == rhs.components )
  40043. && ( xChromaOffset == rhs.xChromaOffset )
  40044. && ( yChromaOffset == rhs.yChromaOffset )
  40045. && ( chromaFilter == rhs.chromaFilter )
  40046. && ( forceExplicitReconstruction == rhs.forceExplicitReconstruction );
  40047. }
  40048. bool operator!=( SamplerYcbcrConversionCreateInfo const& rhs ) const
  40049. {
  40050. return !operator==( rhs );
  40051. }
  40052. private:
  40053. StructureType sType = StructureType::eSamplerYcbcrConversionCreateInfo;
  40054. public:
  40055. const void* pNext = nullptr;
  40056. Format format;
  40057. SamplerYcbcrModelConversion ycbcrModel;
  40058. SamplerYcbcrRange ycbcrRange;
  40059. ComponentMapping components;
  40060. ChromaLocation xChromaOffset;
  40061. ChromaLocation yChromaOffset;
  40062. Filter chromaFilter;
  40063. Bool32 forceExplicitReconstruction;
  40064. };
  40065. static_assert( sizeof( SamplerYcbcrConversionCreateInfo ) == sizeof( VkSamplerYcbcrConversionCreateInfo ), "struct and wrapper have different size!" );
  40066. struct SamplerYcbcrConversionImageFormatProperties
  40067. {
  40068. operator VkSamplerYcbcrConversionImageFormatProperties const&() const
  40069. {
  40070. return *reinterpret_cast<const VkSamplerYcbcrConversionImageFormatProperties*>( this );
  40071. }
  40072. operator VkSamplerYcbcrConversionImageFormatProperties &()
  40073. {
  40074. return *reinterpret_cast<VkSamplerYcbcrConversionImageFormatProperties*>( this );
  40075. }
  40076. bool operator==( SamplerYcbcrConversionImageFormatProperties const& rhs ) const
  40077. {
  40078. return ( sType == rhs.sType )
  40079. && ( pNext == rhs.pNext )
  40080. && ( combinedImageSamplerDescriptorCount == rhs.combinedImageSamplerDescriptorCount );
  40081. }
  40082. bool operator!=( SamplerYcbcrConversionImageFormatProperties const& rhs ) const
  40083. {
  40084. return !operator==( rhs );
  40085. }
  40086. private:
  40087. StructureType sType = StructureType::eSamplerYcbcrConversionImageFormatProperties;
  40088. public:
  40089. void* pNext = nullptr;
  40090. uint32_t combinedImageSamplerDescriptorCount;
  40091. };
  40092. static_assert( sizeof( SamplerYcbcrConversionImageFormatProperties ) == sizeof( VkSamplerYcbcrConversionImageFormatProperties ), "struct and wrapper have different size!" );
  40093. struct SamplerYcbcrConversionInfo
  40094. {
  40095. SamplerYcbcrConversionInfo( SamplerYcbcrConversion conversion_ = SamplerYcbcrConversion() )
  40096. : conversion( conversion_ )
  40097. {}
  40098. SamplerYcbcrConversionInfo( VkSamplerYcbcrConversionInfo const & rhs )
  40099. {
  40100. *reinterpret_cast<VkSamplerYcbcrConversionInfo*>(this) = rhs;
  40101. }
  40102. SamplerYcbcrConversionInfo& operator=( VkSamplerYcbcrConversionInfo const & rhs )
  40103. {
  40104. *reinterpret_cast<VkSamplerYcbcrConversionInfo*>(this) = rhs;
  40105. return *this;
  40106. }
  40107. SamplerYcbcrConversionInfo & setPNext( const void* pNext_ )
  40108. {
  40109. pNext = pNext_;
  40110. return *this;
  40111. }
  40112. SamplerYcbcrConversionInfo & setConversion( SamplerYcbcrConversion conversion_ )
  40113. {
  40114. conversion = conversion_;
  40115. return *this;
  40116. }
  40117. operator VkSamplerYcbcrConversionInfo const&() const
  40118. {
  40119. return *reinterpret_cast<const VkSamplerYcbcrConversionInfo*>( this );
  40120. }
  40121. operator VkSamplerYcbcrConversionInfo &()
  40122. {
  40123. return *reinterpret_cast<VkSamplerYcbcrConversionInfo*>( this );
  40124. }
  40125. bool operator==( SamplerYcbcrConversionInfo const& rhs ) const
  40126. {
  40127. return ( sType == rhs.sType )
  40128. && ( pNext == rhs.pNext )
  40129. && ( conversion == rhs.conversion );
  40130. }
  40131. bool operator!=( SamplerYcbcrConversionInfo const& rhs ) const
  40132. {
  40133. return !operator==( rhs );
  40134. }
  40135. private:
  40136. StructureType sType = StructureType::eSamplerYcbcrConversionInfo;
  40137. public:
  40138. const void* pNext = nullptr;
  40139. SamplerYcbcrConversion conversion;
  40140. };
  40141. static_assert( sizeof( SamplerYcbcrConversionInfo ) == sizeof( VkSamplerYcbcrConversionInfo ), "struct and wrapper have different size!" );
  40142. struct SemaphoreCreateInfo
  40143. {
  40144. SemaphoreCreateInfo( SemaphoreCreateFlags flags_ = SemaphoreCreateFlags() )
  40145. : flags( flags_ )
  40146. {}
  40147. SemaphoreCreateInfo( VkSemaphoreCreateInfo const & rhs )
  40148. {
  40149. *reinterpret_cast<VkSemaphoreCreateInfo*>(this) = rhs;
  40150. }
  40151. SemaphoreCreateInfo& operator=( VkSemaphoreCreateInfo const & rhs )
  40152. {
  40153. *reinterpret_cast<VkSemaphoreCreateInfo*>(this) = rhs;
  40154. return *this;
  40155. }
  40156. SemaphoreCreateInfo & setPNext( const void* pNext_ )
  40157. {
  40158. pNext = pNext_;
  40159. return *this;
  40160. }
  40161. SemaphoreCreateInfo & setFlags( SemaphoreCreateFlags flags_ )
  40162. {
  40163. flags = flags_;
  40164. return *this;
  40165. }
  40166. operator VkSemaphoreCreateInfo const&() const
  40167. {
  40168. return *reinterpret_cast<const VkSemaphoreCreateInfo*>( this );
  40169. }
  40170. operator VkSemaphoreCreateInfo &()
  40171. {
  40172. return *reinterpret_cast<VkSemaphoreCreateInfo*>( this );
  40173. }
  40174. bool operator==( SemaphoreCreateInfo const& rhs ) const
  40175. {
  40176. return ( sType == rhs.sType )
  40177. && ( pNext == rhs.pNext )
  40178. && ( flags == rhs.flags );
  40179. }
  40180. bool operator!=( SemaphoreCreateInfo const& rhs ) const
  40181. {
  40182. return !operator==( rhs );
  40183. }
  40184. private:
  40185. StructureType sType = StructureType::eSemaphoreCreateInfo;
  40186. public:
  40187. const void* pNext = nullptr;
  40188. SemaphoreCreateFlags flags;
  40189. };
  40190. static_assert( sizeof( SemaphoreCreateInfo ) == sizeof( VkSemaphoreCreateInfo ), "struct and wrapper have different size!" );
  40191. struct SemaphoreGetFdInfoKHR
  40192. {
  40193. SemaphoreGetFdInfoKHR( Semaphore semaphore_ = Semaphore(),
  40194. ExternalSemaphoreHandleTypeFlagBits handleType_ = ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd )
  40195. : semaphore( semaphore_ )
  40196. , handleType( handleType_ )
  40197. {}
  40198. SemaphoreGetFdInfoKHR( VkSemaphoreGetFdInfoKHR const & rhs )
  40199. {
  40200. *reinterpret_cast<VkSemaphoreGetFdInfoKHR*>(this) = rhs;
  40201. }
  40202. SemaphoreGetFdInfoKHR& operator=( VkSemaphoreGetFdInfoKHR const & rhs )
  40203. {
  40204. *reinterpret_cast<VkSemaphoreGetFdInfoKHR*>(this) = rhs;
  40205. return *this;
  40206. }
  40207. SemaphoreGetFdInfoKHR & setPNext( const void* pNext_ )
  40208. {
  40209. pNext = pNext_;
  40210. return *this;
  40211. }
  40212. SemaphoreGetFdInfoKHR & setSemaphore( Semaphore semaphore_ )
  40213. {
  40214. semaphore = semaphore_;
  40215. return *this;
  40216. }
  40217. SemaphoreGetFdInfoKHR & setHandleType( ExternalSemaphoreHandleTypeFlagBits handleType_ )
  40218. {
  40219. handleType = handleType_;
  40220. return *this;
  40221. }
  40222. operator VkSemaphoreGetFdInfoKHR const&() const
  40223. {
  40224. return *reinterpret_cast<const VkSemaphoreGetFdInfoKHR*>( this );
  40225. }
  40226. operator VkSemaphoreGetFdInfoKHR &()
  40227. {
  40228. return *reinterpret_cast<VkSemaphoreGetFdInfoKHR*>( this );
  40229. }
  40230. bool operator==( SemaphoreGetFdInfoKHR const& rhs ) const
  40231. {
  40232. return ( sType == rhs.sType )
  40233. && ( pNext == rhs.pNext )
  40234. && ( semaphore == rhs.semaphore )
  40235. && ( handleType == rhs.handleType );
  40236. }
  40237. bool operator!=( SemaphoreGetFdInfoKHR const& rhs ) const
  40238. {
  40239. return !operator==( rhs );
  40240. }
  40241. private:
  40242. StructureType sType = StructureType::eSemaphoreGetFdInfoKHR;
  40243. public:
  40244. const void* pNext = nullptr;
  40245. Semaphore semaphore;
  40246. ExternalSemaphoreHandleTypeFlagBits handleType;
  40247. };
  40248. static_assert( sizeof( SemaphoreGetFdInfoKHR ) == sizeof( VkSemaphoreGetFdInfoKHR ), "struct and wrapper have different size!" );
  40249. #ifdef VK_USE_PLATFORM_WIN32_KHR
  40250. struct SemaphoreGetWin32HandleInfoKHR
  40251. {
  40252. SemaphoreGetWin32HandleInfoKHR( Semaphore semaphore_ = Semaphore(),
  40253. ExternalSemaphoreHandleTypeFlagBits handleType_ = ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd )
  40254. : semaphore( semaphore_ )
  40255. , handleType( handleType_ )
  40256. {}
  40257. SemaphoreGetWin32HandleInfoKHR( VkSemaphoreGetWin32HandleInfoKHR const & rhs )
  40258. {
  40259. *reinterpret_cast<VkSemaphoreGetWin32HandleInfoKHR*>(this) = rhs;
  40260. }
  40261. SemaphoreGetWin32HandleInfoKHR& operator=( VkSemaphoreGetWin32HandleInfoKHR const & rhs )
  40262. {
  40263. *reinterpret_cast<VkSemaphoreGetWin32HandleInfoKHR*>(this) = rhs;
  40264. return *this;
  40265. }
  40266. SemaphoreGetWin32HandleInfoKHR & setPNext( const void* pNext_ )
  40267. {
  40268. pNext = pNext_;
  40269. return *this;
  40270. }
  40271. SemaphoreGetWin32HandleInfoKHR & setSemaphore( Semaphore semaphore_ )
  40272. {
  40273. semaphore = semaphore_;
  40274. return *this;
  40275. }
  40276. SemaphoreGetWin32HandleInfoKHR & setHandleType( ExternalSemaphoreHandleTypeFlagBits handleType_ )
  40277. {
  40278. handleType = handleType_;
  40279. return *this;
  40280. }
  40281. operator VkSemaphoreGetWin32HandleInfoKHR const&() const
  40282. {
  40283. return *reinterpret_cast<const VkSemaphoreGetWin32HandleInfoKHR*>( this );
  40284. }
  40285. operator VkSemaphoreGetWin32HandleInfoKHR &()
  40286. {
  40287. return *reinterpret_cast<VkSemaphoreGetWin32HandleInfoKHR*>( this );
  40288. }
  40289. bool operator==( SemaphoreGetWin32HandleInfoKHR const& rhs ) const
  40290. {
  40291. return ( sType == rhs.sType )
  40292. && ( pNext == rhs.pNext )
  40293. && ( semaphore == rhs.semaphore )
  40294. && ( handleType == rhs.handleType );
  40295. }
  40296. bool operator!=( SemaphoreGetWin32HandleInfoKHR const& rhs ) const
  40297. {
  40298. return !operator==( rhs );
  40299. }
  40300. private:
  40301. StructureType sType = StructureType::eSemaphoreGetWin32HandleInfoKHR;
  40302. public:
  40303. const void* pNext = nullptr;
  40304. Semaphore semaphore;
  40305. ExternalSemaphoreHandleTypeFlagBits handleType;
  40306. };
  40307. static_assert( sizeof( SemaphoreGetWin32HandleInfoKHR ) == sizeof( VkSemaphoreGetWin32HandleInfoKHR ), "struct and wrapper have different size!" );
  40308. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  40309. struct ShaderModuleCreateInfo
  40310. {
  40311. ShaderModuleCreateInfo( ShaderModuleCreateFlags flags_ = ShaderModuleCreateFlags(),
  40312. size_t codeSize_ = 0,
  40313. const uint32_t* pCode_ = nullptr )
  40314. : flags( flags_ )
  40315. , codeSize( codeSize_ )
  40316. , pCode( pCode_ )
  40317. {}
  40318. ShaderModuleCreateInfo( VkShaderModuleCreateInfo const & rhs )
  40319. {
  40320. *reinterpret_cast<VkShaderModuleCreateInfo*>(this) = rhs;
  40321. }
  40322. ShaderModuleCreateInfo& operator=( VkShaderModuleCreateInfo const & rhs )
  40323. {
  40324. *reinterpret_cast<VkShaderModuleCreateInfo*>(this) = rhs;
  40325. return *this;
  40326. }
  40327. ShaderModuleCreateInfo & setPNext( const void* pNext_ )
  40328. {
  40329. pNext = pNext_;
  40330. return *this;
  40331. }
  40332. ShaderModuleCreateInfo & setFlags( ShaderModuleCreateFlags flags_ )
  40333. {
  40334. flags = flags_;
  40335. return *this;
  40336. }
  40337. ShaderModuleCreateInfo & setCodeSize( size_t codeSize_ )
  40338. {
  40339. codeSize = codeSize_;
  40340. return *this;
  40341. }
  40342. ShaderModuleCreateInfo & setPCode( const uint32_t* pCode_ )
  40343. {
  40344. pCode = pCode_;
  40345. return *this;
  40346. }
  40347. operator VkShaderModuleCreateInfo const&() const
  40348. {
  40349. return *reinterpret_cast<const VkShaderModuleCreateInfo*>( this );
  40350. }
  40351. operator VkShaderModuleCreateInfo &()
  40352. {
  40353. return *reinterpret_cast<VkShaderModuleCreateInfo*>( this );
  40354. }
  40355. bool operator==( ShaderModuleCreateInfo const& rhs ) const
  40356. {
  40357. return ( sType == rhs.sType )
  40358. && ( pNext == rhs.pNext )
  40359. && ( flags == rhs.flags )
  40360. && ( codeSize == rhs.codeSize )
  40361. && ( pCode == rhs.pCode );
  40362. }
  40363. bool operator!=( ShaderModuleCreateInfo const& rhs ) const
  40364. {
  40365. return !operator==( rhs );
  40366. }
  40367. private:
  40368. StructureType sType = StructureType::eShaderModuleCreateInfo;
  40369. public:
  40370. const void* pNext = nullptr;
  40371. ShaderModuleCreateFlags flags;
  40372. size_t codeSize;
  40373. const uint32_t* pCode;
  40374. };
  40375. static_assert( sizeof( ShaderModuleCreateInfo ) == sizeof( VkShaderModuleCreateInfo ), "struct and wrapper have different size!" );
  40376. struct ShaderModuleValidationCacheCreateInfoEXT
  40377. {
  40378. ShaderModuleValidationCacheCreateInfoEXT( ValidationCacheEXT validationCache_ = ValidationCacheEXT() )
  40379. : validationCache( validationCache_ )
  40380. {}
  40381. ShaderModuleValidationCacheCreateInfoEXT( VkShaderModuleValidationCacheCreateInfoEXT const & rhs )
  40382. {
  40383. *reinterpret_cast<VkShaderModuleValidationCacheCreateInfoEXT*>(this) = rhs;
  40384. }
  40385. ShaderModuleValidationCacheCreateInfoEXT& operator=( VkShaderModuleValidationCacheCreateInfoEXT const & rhs )
  40386. {
  40387. *reinterpret_cast<VkShaderModuleValidationCacheCreateInfoEXT*>(this) = rhs;
  40388. return *this;
  40389. }
  40390. ShaderModuleValidationCacheCreateInfoEXT & setPNext( const void* pNext_ )
  40391. {
  40392. pNext = pNext_;
  40393. return *this;
  40394. }
  40395. ShaderModuleValidationCacheCreateInfoEXT & setValidationCache( ValidationCacheEXT validationCache_ )
  40396. {
  40397. validationCache = validationCache_;
  40398. return *this;
  40399. }
  40400. operator VkShaderModuleValidationCacheCreateInfoEXT const&() const
  40401. {
  40402. return *reinterpret_cast<const VkShaderModuleValidationCacheCreateInfoEXT*>( this );
  40403. }
  40404. operator VkShaderModuleValidationCacheCreateInfoEXT &()
  40405. {
  40406. return *reinterpret_cast<VkShaderModuleValidationCacheCreateInfoEXT*>( this );
  40407. }
  40408. bool operator==( ShaderModuleValidationCacheCreateInfoEXT const& rhs ) const
  40409. {
  40410. return ( sType == rhs.sType )
  40411. && ( pNext == rhs.pNext )
  40412. && ( validationCache == rhs.validationCache );
  40413. }
  40414. bool operator!=( ShaderModuleValidationCacheCreateInfoEXT const& rhs ) const
  40415. {
  40416. return !operator==( rhs );
  40417. }
  40418. private:
  40419. StructureType sType = StructureType::eShaderModuleValidationCacheCreateInfoEXT;
  40420. public:
  40421. const void* pNext = nullptr;
  40422. ValidationCacheEXT validationCache;
  40423. };
  40424. static_assert( sizeof( ShaderModuleValidationCacheCreateInfoEXT ) == sizeof( VkShaderModuleValidationCacheCreateInfoEXT ), "struct and wrapper have different size!" );
  40425. struct ShaderResourceUsageAMD
  40426. {
  40427. operator VkShaderResourceUsageAMD const&() const
  40428. {
  40429. return *reinterpret_cast<const VkShaderResourceUsageAMD*>( this );
  40430. }
  40431. operator VkShaderResourceUsageAMD &()
  40432. {
  40433. return *reinterpret_cast<VkShaderResourceUsageAMD*>( this );
  40434. }
  40435. bool operator==( ShaderResourceUsageAMD const& rhs ) const
  40436. {
  40437. return ( numUsedVgprs == rhs.numUsedVgprs )
  40438. && ( numUsedSgprs == rhs.numUsedSgprs )
  40439. && ( ldsSizePerLocalWorkGroup == rhs.ldsSizePerLocalWorkGroup )
  40440. && ( ldsUsageSizeInBytes == rhs.ldsUsageSizeInBytes )
  40441. && ( scratchMemUsageInBytes == rhs.scratchMemUsageInBytes );
  40442. }
  40443. bool operator!=( ShaderResourceUsageAMD const& rhs ) const
  40444. {
  40445. return !operator==( rhs );
  40446. }
  40447. uint32_t numUsedVgprs;
  40448. uint32_t numUsedSgprs;
  40449. uint32_t ldsSizePerLocalWorkGroup;
  40450. size_t ldsUsageSizeInBytes;
  40451. size_t scratchMemUsageInBytes;
  40452. };
  40453. static_assert( sizeof( ShaderResourceUsageAMD ) == sizeof( VkShaderResourceUsageAMD ), "struct and wrapper have different size!" );
  40454. struct ShaderStatisticsInfoAMD
  40455. {
  40456. operator VkShaderStatisticsInfoAMD const&() const
  40457. {
  40458. return *reinterpret_cast<const VkShaderStatisticsInfoAMD*>( this );
  40459. }
  40460. operator VkShaderStatisticsInfoAMD &()
  40461. {
  40462. return *reinterpret_cast<VkShaderStatisticsInfoAMD*>( this );
  40463. }
  40464. bool operator==( ShaderStatisticsInfoAMD const& rhs ) const
  40465. {
  40466. return ( shaderStageMask == rhs.shaderStageMask )
  40467. && ( resourceUsage == rhs.resourceUsage )
  40468. && ( numPhysicalVgprs == rhs.numPhysicalVgprs )
  40469. && ( numPhysicalSgprs == rhs.numPhysicalSgprs )
  40470. && ( numAvailableVgprs == rhs.numAvailableVgprs )
  40471. && ( numAvailableSgprs == rhs.numAvailableSgprs )
  40472. && ( memcmp( computeWorkGroupSize, rhs.computeWorkGroupSize, 3 * sizeof( uint32_t ) ) == 0 );
  40473. }
  40474. bool operator!=( ShaderStatisticsInfoAMD const& rhs ) const
  40475. {
  40476. return !operator==( rhs );
  40477. }
  40478. ShaderStageFlags shaderStageMask;
  40479. ShaderResourceUsageAMD resourceUsage;
  40480. uint32_t numPhysicalVgprs;
  40481. uint32_t numPhysicalSgprs;
  40482. uint32_t numAvailableVgprs;
  40483. uint32_t numAvailableSgprs;
  40484. uint32_t computeWorkGroupSize[3];
  40485. };
  40486. static_assert( sizeof( ShaderStatisticsInfoAMD ) == sizeof( VkShaderStatisticsInfoAMD ), "struct and wrapper have different size!" );
  40487. struct SharedPresentSurfaceCapabilitiesKHR
  40488. {
  40489. operator VkSharedPresentSurfaceCapabilitiesKHR const&() const
  40490. {
  40491. return *reinterpret_cast<const VkSharedPresentSurfaceCapabilitiesKHR*>( this );
  40492. }
  40493. operator VkSharedPresentSurfaceCapabilitiesKHR &()
  40494. {
  40495. return *reinterpret_cast<VkSharedPresentSurfaceCapabilitiesKHR*>( this );
  40496. }
  40497. bool operator==( SharedPresentSurfaceCapabilitiesKHR const& rhs ) const
  40498. {
  40499. return ( sType == rhs.sType )
  40500. && ( pNext == rhs.pNext )
  40501. && ( sharedPresentSupportedUsageFlags == rhs.sharedPresentSupportedUsageFlags );
  40502. }
  40503. bool operator!=( SharedPresentSurfaceCapabilitiesKHR const& rhs ) const
  40504. {
  40505. return !operator==( rhs );
  40506. }
  40507. private:
  40508. StructureType sType = StructureType::eSharedPresentSurfaceCapabilitiesKHR;
  40509. public:
  40510. void* pNext = nullptr;
  40511. ImageUsageFlags sharedPresentSupportedUsageFlags;
  40512. };
  40513. static_assert( sizeof( SharedPresentSurfaceCapabilitiesKHR ) == sizeof( VkSharedPresentSurfaceCapabilitiesKHR ), "struct and wrapper have different size!" );
  40514. struct SparseImageFormatProperties
  40515. {
  40516. operator VkSparseImageFormatProperties const&() const
  40517. {
  40518. return *reinterpret_cast<const VkSparseImageFormatProperties*>( this );
  40519. }
  40520. operator VkSparseImageFormatProperties &()
  40521. {
  40522. return *reinterpret_cast<VkSparseImageFormatProperties*>( this );
  40523. }
  40524. bool operator==( SparseImageFormatProperties const& rhs ) const
  40525. {
  40526. return ( aspectMask == rhs.aspectMask )
  40527. && ( imageGranularity == rhs.imageGranularity )
  40528. && ( flags == rhs.flags );
  40529. }
  40530. bool operator!=( SparseImageFormatProperties const& rhs ) const
  40531. {
  40532. return !operator==( rhs );
  40533. }
  40534. ImageAspectFlags aspectMask;
  40535. Extent3D imageGranularity;
  40536. SparseImageFormatFlags flags;
  40537. };
  40538. static_assert( sizeof( SparseImageFormatProperties ) == sizeof( VkSparseImageFormatProperties ), "struct and wrapper have different size!" );
  40539. struct SparseImageFormatProperties2
  40540. {
  40541. operator VkSparseImageFormatProperties2 const&() const
  40542. {
  40543. return *reinterpret_cast<const VkSparseImageFormatProperties2*>( this );
  40544. }
  40545. operator VkSparseImageFormatProperties2 &()
  40546. {
  40547. return *reinterpret_cast<VkSparseImageFormatProperties2*>( this );
  40548. }
  40549. bool operator==( SparseImageFormatProperties2 const& rhs ) const
  40550. {
  40551. return ( sType == rhs.sType )
  40552. && ( pNext == rhs.pNext )
  40553. && ( properties == rhs.properties );
  40554. }
  40555. bool operator!=( SparseImageFormatProperties2 const& rhs ) const
  40556. {
  40557. return !operator==( rhs );
  40558. }
  40559. private:
  40560. StructureType sType = StructureType::eSparseImageFormatProperties2;
  40561. public:
  40562. void* pNext = nullptr;
  40563. SparseImageFormatProperties properties;
  40564. };
  40565. static_assert( sizeof( SparseImageFormatProperties2 ) == sizeof( VkSparseImageFormatProperties2 ), "struct and wrapper have different size!" );
  40566. struct SparseImageMemoryRequirements
  40567. {
  40568. operator VkSparseImageMemoryRequirements const&() const
  40569. {
  40570. return *reinterpret_cast<const VkSparseImageMemoryRequirements*>( this );
  40571. }
  40572. operator VkSparseImageMemoryRequirements &()
  40573. {
  40574. return *reinterpret_cast<VkSparseImageMemoryRequirements*>( this );
  40575. }
  40576. bool operator==( SparseImageMemoryRequirements const& rhs ) const
  40577. {
  40578. return ( formatProperties == rhs.formatProperties )
  40579. && ( imageMipTailFirstLod == rhs.imageMipTailFirstLod )
  40580. && ( imageMipTailSize == rhs.imageMipTailSize )
  40581. && ( imageMipTailOffset == rhs.imageMipTailOffset )
  40582. && ( imageMipTailStride == rhs.imageMipTailStride );
  40583. }
  40584. bool operator!=( SparseImageMemoryRequirements const& rhs ) const
  40585. {
  40586. return !operator==( rhs );
  40587. }
  40588. SparseImageFormatProperties formatProperties;
  40589. uint32_t imageMipTailFirstLod;
  40590. DeviceSize imageMipTailSize;
  40591. DeviceSize imageMipTailOffset;
  40592. DeviceSize imageMipTailStride;
  40593. };
  40594. static_assert( sizeof( SparseImageMemoryRequirements ) == sizeof( VkSparseImageMemoryRequirements ), "struct and wrapper have different size!" );
  40595. struct SparseImageMemoryRequirements2
  40596. {
  40597. operator VkSparseImageMemoryRequirements2 const&() const
  40598. {
  40599. return *reinterpret_cast<const VkSparseImageMemoryRequirements2*>( this );
  40600. }
  40601. operator VkSparseImageMemoryRequirements2 &()
  40602. {
  40603. return *reinterpret_cast<VkSparseImageMemoryRequirements2*>( this );
  40604. }
  40605. bool operator==( SparseImageMemoryRequirements2 const& rhs ) const
  40606. {
  40607. return ( sType == rhs.sType )
  40608. && ( pNext == rhs.pNext )
  40609. && ( memoryRequirements == rhs.memoryRequirements );
  40610. }
  40611. bool operator!=( SparseImageMemoryRequirements2 const& rhs ) const
  40612. {
  40613. return !operator==( rhs );
  40614. }
  40615. private:
  40616. StructureType sType = StructureType::eSparseImageMemoryRequirements2;
  40617. public:
  40618. void* pNext = nullptr;
  40619. SparseImageMemoryRequirements memoryRequirements;
  40620. };
  40621. static_assert( sizeof( SparseImageMemoryRequirements2 ) == sizeof( VkSparseImageMemoryRequirements2 ), "struct and wrapper have different size!" );
  40622. #ifdef VK_USE_PLATFORM_GGP
  40623. struct StreamDescriptorSurfaceCreateInfoGGP
  40624. {
  40625. StreamDescriptorSurfaceCreateInfoGGP( StreamDescriptorSurfaceCreateFlagsGGP flags_ = StreamDescriptorSurfaceCreateFlagsGGP(),
  40626. GgpStreamDescriptor streamDescriptor_ = 0 )
  40627. : flags( flags_ )
  40628. , streamDescriptor( streamDescriptor_ )
  40629. {}
  40630. StreamDescriptorSurfaceCreateInfoGGP( VkStreamDescriptorSurfaceCreateInfoGGP const & rhs )
  40631. {
  40632. *reinterpret_cast<VkStreamDescriptorSurfaceCreateInfoGGP*>(this) = rhs;
  40633. }
  40634. StreamDescriptorSurfaceCreateInfoGGP& operator=( VkStreamDescriptorSurfaceCreateInfoGGP const & rhs )
  40635. {
  40636. *reinterpret_cast<VkStreamDescriptorSurfaceCreateInfoGGP*>(this) = rhs;
  40637. return *this;
  40638. }
  40639. StreamDescriptorSurfaceCreateInfoGGP & setPNext( const void* pNext_ )
  40640. {
  40641. pNext = pNext_;
  40642. return *this;
  40643. }
  40644. StreamDescriptorSurfaceCreateInfoGGP & setFlags( StreamDescriptorSurfaceCreateFlagsGGP flags_ )
  40645. {
  40646. flags = flags_;
  40647. return *this;
  40648. }
  40649. StreamDescriptorSurfaceCreateInfoGGP & setStreamDescriptor( GgpStreamDescriptor streamDescriptor_ )
  40650. {
  40651. streamDescriptor = streamDescriptor_;
  40652. return *this;
  40653. }
  40654. operator VkStreamDescriptorSurfaceCreateInfoGGP const&() const
  40655. {
  40656. return *reinterpret_cast<const VkStreamDescriptorSurfaceCreateInfoGGP*>( this );
  40657. }
  40658. operator VkStreamDescriptorSurfaceCreateInfoGGP &()
  40659. {
  40660. return *reinterpret_cast<VkStreamDescriptorSurfaceCreateInfoGGP*>( this );
  40661. }
  40662. bool operator==( StreamDescriptorSurfaceCreateInfoGGP const& rhs ) const
  40663. {
  40664. return ( sType == rhs.sType )
  40665. && ( pNext == rhs.pNext )
  40666. && ( flags == rhs.flags )
  40667. && ( streamDescriptor == rhs.streamDescriptor );
  40668. }
  40669. bool operator!=( StreamDescriptorSurfaceCreateInfoGGP const& rhs ) const
  40670. {
  40671. return !operator==( rhs );
  40672. }
  40673. private:
  40674. StructureType sType = StructureType::eStreamDescriptorSurfaceCreateInfoGGP;
  40675. public:
  40676. const void* pNext = nullptr;
  40677. StreamDescriptorSurfaceCreateFlagsGGP flags;
  40678. GgpStreamDescriptor streamDescriptor;
  40679. };
  40680. static_assert( sizeof( StreamDescriptorSurfaceCreateInfoGGP ) == sizeof( VkStreamDescriptorSurfaceCreateInfoGGP ), "struct and wrapper have different size!" );
  40681. #endif /*VK_USE_PLATFORM_GGP*/
  40682. struct SubmitInfo
  40683. {
  40684. SubmitInfo( uint32_t waitSemaphoreCount_ = 0,
  40685. const Semaphore* pWaitSemaphores_ = nullptr,
  40686. const PipelineStageFlags* pWaitDstStageMask_ = nullptr,
  40687. uint32_t commandBufferCount_ = 0,
  40688. const CommandBuffer* pCommandBuffers_ = nullptr,
  40689. uint32_t signalSemaphoreCount_ = 0,
  40690. const Semaphore* pSignalSemaphores_ = nullptr )
  40691. : waitSemaphoreCount( waitSemaphoreCount_ )
  40692. , pWaitSemaphores( pWaitSemaphores_ )
  40693. , pWaitDstStageMask( pWaitDstStageMask_ )
  40694. , commandBufferCount( commandBufferCount_ )
  40695. , pCommandBuffers( pCommandBuffers_ )
  40696. , signalSemaphoreCount( signalSemaphoreCount_ )
  40697. , pSignalSemaphores( pSignalSemaphores_ )
  40698. {}
  40699. SubmitInfo( VkSubmitInfo const & rhs )
  40700. {
  40701. *reinterpret_cast<VkSubmitInfo*>(this) = rhs;
  40702. }
  40703. SubmitInfo& operator=( VkSubmitInfo const & rhs )
  40704. {
  40705. *reinterpret_cast<VkSubmitInfo*>(this) = rhs;
  40706. return *this;
  40707. }
  40708. SubmitInfo & setPNext( const void* pNext_ )
  40709. {
  40710. pNext = pNext_;
  40711. return *this;
  40712. }
  40713. SubmitInfo & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ )
  40714. {
  40715. waitSemaphoreCount = waitSemaphoreCount_;
  40716. return *this;
  40717. }
  40718. SubmitInfo & setPWaitSemaphores( const Semaphore* pWaitSemaphores_ )
  40719. {
  40720. pWaitSemaphores = pWaitSemaphores_;
  40721. return *this;
  40722. }
  40723. SubmitInfo & setPWaitDstStageMask( const PipelineStageFlags* pWaitDstStageMask_ )
  40724. {
  40725. pWaitDstStageMask = pWaitDstStageMask_;
  40726. return *this;
  40727. }
  40728. SubmitInfo & setCommandBufferCount( uint32_t commandBufferCount_ )
  40729. {
  40730. commandBufferCount = commandBufferCount_;
  40731. return *this;
  40732. }
  40733. SubmitInfo & setPCommandBuffers( const CommandBuffer* pCommandBuffers_ )
  40734. {
  40735. pCommandBuffers = pCommandBuffers_;
  40736. return *this;
  40737. }
  40738. SubmitInfo & setSignalSemaphoreCount( uint32_t signalSemaphoreCount_ )
  40739. {
  40740. signalSemaphoreCount = signalSemaphoreCount_;
  40741. return *this;
  40742. }
  40743. SubmitInfo & setPSignalSemaphores( const Semaphore* pSignalSemaphores_ )
  40744. {
  40745. pSignalSemaphores = pSignalSemaphores_;
  40746. return *this;
  40747. }
  40748. operator VkSubmitInfo const&() const
  40749. {
  40750. return *reinterpret_cast<const VkSubmitInfo*>( this );
  40751. }
  40752. operator VkSubmitInfo &()
  40753. {
  40754. return *reinterpret_cast<VkSubmitInfo*>( this );
  40755. }
  40756. bool operator==( SubmitInfo const& rhs ) const
  40757. {
  40758. return ( sType == rhs.sType )
  40759. && ( pNext == rhs.pNext )
  40760. && ( waitSemaphoreCount == rhs.waitSemaphoreCount )
  40761. && ( pWaitSemaphores == rhs.pWaitSemaphores )
  40762. && ( pWaitDstStageMask == rhs.pWaitDstStageMask )
  40763. && ( commandBufferCount == rhs.commandBufferCount )
  40764. && ( pCommandBuffers == rhs.pCommandBuffers )
  40765. && ( signalSemaphoreCount == rhs.signalSemaphoreCount )
  40766. && ( pSignalSemaphores == rhs.pSignalSemaphores );
  40767. }
  40768. bool operator!=( SubmitInfo const& rhs ) const
  40769. {
  40770. return !operator==( rhs );
  40771. }
  40772. private:
  40773. StructureType sType = StructureType::eSubmitInfo;
  40774. public:
  40775. const void* pNext = nullptr;
  40776. uint32_t waitSemaphoreCount;
  40777. const Semaphore* pWaitSemaphores;
  40778. const PipelineStageFlags* pWaitDstStageMask;
  40779. uint32_t commandBufferCount;
  40780. const CommandBuffer* pCommandBuffers;
  40781. uint32_t signalSemaphoreCount;
  40782. const Semaphore* pSignalSemaphores;
  40783. };
  40784. static_assert( sizeof( SubmitInfo ) == sizeof( VkSubmitInfo ), "struct and wrapper have different size!" );
  40785. struct SubpassBeginInfoKHR
  40786. {
  40787. SubpassBeginInfoKHR( SubpassContents contents_ = SubpassContents::eInline )
  40788. : contents( contents_ )
  40789. {}
  40790. SubpassBeginInfoKHR( VkSubpassBeginInfoKHR const & rhs )
  40791. {
  40792. *reinterpret_cast<VkSubpassBeginInfoKHR*>(this) = rhs;
  40793. }
  40794. SubpassBeginInfoKHR& operator=( VkSubpassBeginInfoKHR const & rhs )
  40795. {
  40796. *reinterpret_cast<VkSubpassBeginInfoKHR*>(this) = rhs;
  40797. return *this;
  40798. }
  40799. SubpassBeginInfoKHR & setPNext( const void* pNext_ )
  40800. {
  40801. pNext = pNext_;
  40802. return *this;
  40803. }
  40804. SubpassBeginInfoKHR & setContents( SubpassContents contents_ )
  40805. {
  40806. contents = contents_;
  40807. return *this;
  40808. }
  40809. operator VkSubpassBeginInfoKHR const&() const
  40810. {
  40811. return *reinterpret_cast<const VkSubpassBeginInfoKHR*>( this );
  40812. }
  40813. operator VkSubpassBeginInfoKHR &()
  40814. {
  40815. return *reinterpret_cast<VkSubpassBeginInfoKHR*>( this );
  40816. }
  40817. bool operator==( SubpassBeginInfoKHR const& rhs ) const
  40818. {
  40819. return ( sType == rhs.sType )
  40820. && ( pNext == rhs.pNext )
  40821. && ( contents == rhs.contents );
  40822. }
  40823. bool operator!=( SubpassBeginInfoKHR const& rhs ) const
  40824. {
  40825. return !operator==( rhs );
  40826. }
  40827. private:
  40828. StructureType sType = StructureType::eSubpassBeginInfoKHR;
  40829. public:
  40830. const void* pNext = nullptr;
  40831. SubpassContents contents;
  40832. };
  40833. static_assert( sizeof( SubpassBeginInfoKHR ) == sizeof( VkSubpassBeginInfoKHR ), "struct and wrapper have different size!" );
  40834. struct SubpassDescriptionDepthStencilResolveKHR
  40835. {
  40836. SubpassDescriptionDepthStencilResolveKHR( ResolveModeFlagBitsKHR depthResolveMode_ = ResolveModeFlagBitsKHR::eNone,
  40837. ResolveModeFlagBitsKHR stencilResolveMode_ = ResolveModeFlagBitsKHR::eNone,
  40838. const AttachmentReference2KHR* pDepthStencilResolveAttachment_ = nullptr )
  40839. : depthResolveMode( depthResolveMode_ )
  40840. , stencilResolveMode( stencilResolveMode_ )
  40841. , pDepthStencilResolveAttachment( pDepthStencilResolveAttachment_ )
  40842. {}
  40843. SubpassDescriptionDepthStencilResolveKHR( VkSubpassDescriptionDepthStencilResolveKHR const & rhs )
  40844. {
  40845. *reinterpret_cast<VkSubpassDescriptionDepthStencilResolveKHR*>(this) = rhs;
  40846. }
  40847. SubpassDescriptionDepthStencilResolveKHR& operator=( VkSubpassDescriptionDepthStencilResolveKHR const & rhs )
  40848. {
  40849. *reinterpret_cast<VkSubpassDescriptionDepthStencilResolveKHR*>(this) = rhs;
  40850. return *this;
  40851. }
  40852. SubpassDescriptionDepthStencilResolveKHR & setPNext( const void* pNext_ )
  40853. {
  40854. pNext = pNext_;
  40855. return *this;
  40856. }
  40857. SubpassDescriptionDepthStencilResolveKHR & setDepthResolveMode( ResolveModeFlagBitsKHR depthResolveMode_ )
  40858. {
  40859. depthResolveMode = depthResolveMode_;
  40860. return *this;
  40861. }
  40862. SubpassDescriptionDepthStencilResolveKHR & setStencilResolveMode( ResolveModeFlagBitsKHR stencilResolveMode_ )
  40863. {
  40864. stencilResolveMode = stencilResolveMode_;
  40865. return *this;
  40866. }
  40867. SubpassDescriptionDepthStencilResolveKHR & setPDepthStencilResolveAttachment( const AttachmentReference2KHR* pDepthStencilResolveAttachment_ )
  40868. {
  40869. pDepthStencilResolveAttachment = pDepthStencilResolveAttachment_;
  40870. return *this;
  40871. }
  40872. operator VkSubpassDescriptionDepthStencilResolveKHR const&() const
  40873. {
  40874. return *reinterpret_cast<const VkSubpassDescriptionDepthStencilResolveKHR*>( this );
  40875. }
  40876. operator VkSubpassDescriptionDepthStencilResolveKHR &()
  40877. {
  40878. return *reinterpret_cast<VkSubpassDescriptionDepthStencilResolveKHR*>( this );
  40879. }
  40880. bool operator==( SubpassDescriptionDepthStencilResolveKHR const& rhs ) const
  40881. {
  40882. return ( sType == rhs.sType )
  40883. && ( pNext == rhs.pNext )
  40884. && ( depthResolveMode == rhs.depthResolveMode )
  40885. && ( stencilResolveMode == rhs.stencilResolveMode )
  40886. && ( pDepthStencilResolveAttachment == rhs.pDepthStencilResolveAttachment );
  40887. }
  40888. bool operator!=( SubpassDescriptionDepthStencilResolveKHR const& rhs ) const
  40889. {
  40890. return !operator==( rhs );
  40891. }
  40892. private:
  40893. StructureType sType = StructureType::eSubpassDescriptionDepthStencilResolveKHR;
  40894. public:
  40895. const void* pNext = nullptr;
  40896. ResolveModeFlagBitsKHR depthResolveMode;
  40897. ResolveModeFlagBitsKHR stencilResolveMode;
  40898. const AttachmentReference2KHR* pDepthStencilResolveAttachment;
  40899. };
  40900. static_assert( sizeof( SubpassDescriptionDepthStencilResolveKHR ) == sizeof( VkSubpassDescriptionDepthStencilResolveKHR ), "struct and wrapper have different size!" );
  40901. struct SubpassEndInfoKHR
  40902. {
  40903. SubpassEndInfoKHR( )
  40904. {}
  40905. SubpassEndInfoKHR( VkSubpassEndInfoKHR const & rhs )
  40906. {
  40907. *reinterpret_cast<VkSubpassEndInfoKHR*>(this) = rhs;
  40908. }
  40909. SubpassEndInfoKHR& operator=( VkSubpassEndInfoKHR const & rhs )
  40910. {
  40911. *reinterpret_cast<VkSubpassEndInfoKHR*>(this) = rhs;
  40912. return *this;
  40913. }
  40914. SubpassEndInfoKHR & setPNext( const void* pNext_ )
  40915. {
  40916. pNext = pNext_;
  40917. return *this;
  40918. }
  40919. operator VkSubpassEndInfoKHR const&() const
  40920. {
  40921. return *reinterpret_cast<const VkSubpassEndInfoKHR*>( this );
  40922. }
  40923. operator VkSubpassEndInfoKHR &()
  40924. {
  40925. return *reinterpret_cast<VkSubpassEndInfoKHR*>( this );
  40926. }
  40927. bool operator==( SubpassEndInfoKHR const& rhs ) const
  40928. {
  40929. return ( sType == rhs.sType )
  40930. && ( pNext == rhs.pNext );
  40931. }
  40932. bool operator!=( SubpassEndInfoKHR const& rhs ) const
  40933. {
  40934. return !operator==( rhs );
  40935. }
  40936. private:
  40937. StructureType sType = StructureType::eSubpassEndInfoKHR;
  40938. public:
  40939. const void* pNext = nullptr;
  40940. };
  40941. static_assert( sizeof( SubpassEndInfoKHR ) == sizeof( VkSubpassEndInfoKHR ), "struct and wrapper have different size!" );
  40942. struct SurfaceCapabilities2EXT
  40943. {
  40944. operator VkSurfaceCapabilities2EXT const&() const
  40945. {
  40946. return *reinterpret_cast<const VkSurfaceCapabilities2EXT*>( this );
  40947. }
  40948. operator VkSurfaceCapabilities2EXT &()
  40949. {
  40950. return *reinterpret_cast<VkSurfaceCapabilities2EXT*>( this );
  40951. }
  40952. bool operator==( SurfaceCapabilities2EXT const& rhs ) const
  40953. {
  40954. return ( sType == rhs.sType )
  40955. && ( pNext == rhs.pNext )
  40956. && ( minImageCount == rhs.minImageCount )
  40957. && ( maxImageCount == rhs.maxImageCount )
  40958. && ( currentExtent == rhs.currentExtent )
  40959. && ( minImageExtent == rhs.minImageExtent )
  40960. && ( maxImageExtent == rhs.maxImageExtent )
  40961. && ( maxImageArrayLayers == rhs.maxImageArrayLayers )
  40962. && ( supportedTransforms == rhs.supportedTransforms )
  40963. && ( currentTransform == rhs.currentTransform )
  40964. && ( supportedCompositeAlpha == rhs.supportedCompositeAlpha )
  40965. && ( supportedUsageFlags == rhs.supportedUsageFlags )
  40966. && ( supportedSurfaceCounters == rhs.supportedSurfaceCounters );
  40967. }
  40968. bool operator!=( SurfaceCapabilities2EXT const& rhs ) const
  40969. {
  40970. return !operator==( rhs );
  40971. }
  40972. private:
  40973. StructureType sType = StructureType::eSurfaceCapabilities2EXT;
  40974. public:
  40975. void* pNext = nullptr;
  40976. uint32_t minImageCount;
  40977. uint32_t maxImageCount;
  40978. Extent2D currentExtent;
  40979. Extent2D minImageExtent;
  40980. Extent2D maxImageExtent;
  40981. uint32_t maxImageArrayLayers;
  40982. SurfaceTransformFlagsKHR supportedTransforms;
  40983. SurfaceTransformFlagBitsKHR currentTransform;
  40984. CompositeAlphaFlagsKHR supportedCompositeAlpha;
  40985. ImageUsageFlags supportedUsageFlags;
  40986. SurfaceCounterFlagsEXT supportedSurfaceCounters;
  40987. };
  40988. static_assert( sizeof( SurfaceCapabilities2EXT ) == sizeof( VkSurfaceCapabilities2EXT ), "struct and wrapper have different size!" );
  40989. struct SurfaceCapabilitiesKHR
  40990. {
  40991. operator VkSurfaceCapabilitiesKHR const&() const
  40992. {
  40993. return *reinterpret_cast<const VkSurfaceCapabilitiesKHR*>( this );
  40994. }
  40995. operator VkSurfaceCapabilitiesKHR &()
  40996. {
  40997. return *reinterpret_cast<VkSurfaceCapabilitiesKHR*>( this );
  40998. }
  40999. bool operator==( SurfaceCapabilitiesKHR const& rhs ) const
  41000. {
  41001. return ( minImageCount == rhs.minImageCount )
  41002. && ( maxImageCount == rhs.maxImageCount )
  41003. && ( currentExtent == rhs.currentExtent )
  41004. && ( minImageExtent == rhs.minImageExtent )
  41005. && ( maxImageExtent == rhs.maxImageExtent )
  41006. && ( maxImageArrayLayers == rhs.maxImageArrayLayers )
  41007. && ( supportedTransforms == rhs.supportedTransforms )
  41008. && ( currentTransform == rhs.currentTransform )
  41009. && ( supportedCompositeAlpha == rhs.supportedCompositeAlpha )
  41010. && ( supportedUsageFlags == rhs.supportedUsageFlags );
  41011. }
  41012. bool operator!=( SurfaceCapabilitiesKHR const& rhs ) const
  41013. {
  41014. return !operator==( rhs );
  41015. }
  41016. uint32_t minImageCount;
  41017. uint32_t maxImageCount;
  41018. Extent2D currentExtent;
  41019. Extent2D minImageExtent;
  41020. Extent2D maxImageExtent;
  41021. uint32_t maxImageArrayLayers;
  41022. SurfaceTransformFlagsKHR supportedTransforms;
  41023. SurfaceTransformFlagBitsKHR currentTransform;
  41024. CompositeAlphaFlagsKHR supportedCompositeAlpha;
  41025. ImageUsageFlags supportedUsageFlags;
  41026. };
  41027. static_assert( sizeof( SurfaceCapabilitiesKHR ) == sizeof( VkSurfaceCapabilitiesKHR ), "struct and wrapper have different size!" );
  41028. struct SurfaceCapabilities2KHR
  41029. {
  41030. operator VkSurfaceCapabilities2KHR const&() const
  41031. {
  41032. return *reinterpret_cast<const VkSurfaceCapabilities2KHR*>( this );
  41033. }
  41034. operator VkSurfaceCapabilities2KHR &()
  41035. {
  41036. return *reinterpret_cast<VkSurfaceCapabilities2KHR*>( this );
  41037. }
  41038. bool operator==( SurfaceCapabilities2KHR const& rhs ) const
  41039. {
  41040. return ( sType == rhs.sType )
  41041. && ( pNext == rhs.pNext )
  41042. && ( surfaceCapabilities == rhs.surfaceCapabilities );
  41043. }
  41044. bool operator!=( SurfaceCapabilities2KHR const& rhs ) const
  41045. {
  41046. return !operator==( rhs );
  41047. }
  41048. private:
  41049. StructureType sType = StructureType::eSurfaceCapabilities2KHR;
  41050. public:
  41051. void* pNext = nullptr;
  41052. SurfaceCapabilitiesKHR surfaceCapabilities;
  41053. };
  41054. static_assert( sizeof( SurfaceCapabilities2KHR ) == sizeof( VkSurfaceCapabilities2KHR ), "struct and wrapper have different size!" );
  41055. #ifdef VK_USE_PLATFORM_WIN32_KHR
  41056. struct SurfaceCapabilitiesFullScreenExclusiveEXT
  41057. {
  41058. SurfaceCapabilitiesFullScreenExclusiveEXT( Bool32 fullScreenExclusiveSupported_ = 0 )
  41059. : fullScreenExclusiveSupported( fullScreenExclusiveSupported_ )
  41060. {}
  41061. SurfaceCapabilitiesFullScreenExclusiveEXT( VkSurfaceCapabilitiesFullScreenExclusiveEXT const & rhs )
  41062. {
  41063. *reinterpret_cast<VkSurfaceCapabilitiesFullScreenExclusiveEXT*>(this) = rhs;
  41064. }
  41065. SurfaceCapabilitiesFullScreenExclusiveEXT& operator=( VkSurfaceCapabilitiesFullScreenExclusiveEXT const & rhs )
  41066. {
  41067. *reinterpret_cast<VkSurfaceCapabilitiesFullScreenExclusiveEXT*>(this) = rhs;
  41068. return *this;
  41069. }
  41070. SurfaceCapabilitiesFullScreenExclusiveEXT & setPNext( void* pNext_ )
  41071. {
  41072. pNext = pNext_;
  41073. return *this;
  41074. }
  41075. SurfaceCapabilitiesFullScreenExclusiveEXT & setFullScreenExclusiveSupported( Bool32 fullScreenExclusiveSupported_ )
  41076. {
  41077. fullScreenExclusiveSupported = fullScreenExclusiveSupported_;
  41078. return *this;
  41079. }
  41080. operator VkSurfaceCapabilitiesFullScreenExclusiveEXT const&() const
  41081. {
  41082. return *reinterpret_cast<const VkSurfaceCapabilitiesFullScreenExclusiveEXT*>( this );
  41083. }
  41084. operator VkSurfaceCapabilitiesFullScreenExclusiveEXT &()
  41085. {
  41086. return *reinterpret_cast<VkSurfaceCapabilitiesFullScreenExclusiveEXT*>( this );
  41087. }
  41088. bool operator==( SurfaceCapabilitiesFullScreenExclusiveEXT const& rhs ) const
  41089. {
  41090. return ( sType == rhs.sType )
  41091. && ( pNext == rhs.pNext )
  41092. && ( fullScreenExclusiveSupported == rhs.fullScreenExclusiveSupported );
  41093. }
  41094. bool operator!=( SurfaceCapabilitiesFullScreenExclusiveEXT const& rhs ) const
  41095. {
  41096. return !operator==( rhs );
  41097. }
  41098. private:
  41099. StructureType sType = StructureType::eSurfaceCapabilitiesFullScreenExclusiveEXT;
  41100. public:
  41101. void* pNext = nullptr;
  41102. Bool32 fullScreenExclusiveSupported;
  41103. };
  41104. static_assert( sizeof( SurfaceCapabilitiesFullScreenExclusiveEXT ) == sizeof( VkSurfaceCapabilitiesFullScreenExclusiveEXT ), "struct and wrapper have different size!" );
  41105. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  41106. struct SurfaceFormatKHR
  41107. {
  41108. operator VkSurfaceFormatKHR const&() const
  41109. {
  41110. return *reinterpret_cast<const VkSurfaceFormatKHR*>( this );
  41111. }
  41112. operator VkSurfaceFormatKHR &()
  41113. {
  41114. return *reinterpret_cast<VkSurfaceFormatKHR*>( this );
  41115. }
  41116. bool operator==( SurfaceFormatKHR const& rhs ) const
  41117. {
  41118. return ( format == rhs.format )
  41119. && ( colorSpace == rhs.colorSpace );
  41120. }
  41121. bool operator!=( SurfaceFormatKHR const& rhs ) const
  41122. {
  41123. return !operator==( rhs );
  41124. }
  41125. Format format;
  41126. ColorSpaceKHR colorSpace;
  41127. };
  41128. static_assert( sizeof( SurfaceFormatKHR ) == sizeof( VkSurfaceFormatKHR ), "struct and wrapper have different size!" );
  41129. struct SurfaceFormat2KHR
  41130. {
  41131. operator VkSurfaceFormat2KHR const&() const
  41132. {
  41133. return *reinterpret_cast<const VkSurfaceFormat2KHR*>( this );
  41134. }
  41135. operator VkSurfaceFormat2KHR &()
  41136. {
  41137. return *reinterpret_cast<VkSurfaceFormat2KHR*>( this );
  41138. }
  41139. bool operator==( SurfaceFormat2KHR const& rhs ) const
  41140. {
  41141. return ( sType == rhs.sType )
  41142. && ( pNext == rhs.pNext )
  41143. && ( surfaceFormat == rhs.surfaceFormat );
  41144. }
  41145. bool operator!=( SurfaceFormat2KHR const& rhs ) const
  41146. {
  41147. return !operator==( rhs );
  41148. }
  41149. private:
  41150. StructureType sType = StructureType::eSurfaceFormat2KHR;
  41151. public:
  41152. void* pNext = nullptr;
  41153. SurfaceFormatKHR surfaceFormat;
  41154. };
  41155. static_assert( sizeof( SurfaceFormat2KHR ) == sizeof( VkSurfaceFormat2KHR ), "struct and wrapper have different size!" );
  41156. #ifdef VK_USE_PLATFORM_WIN32_KHR
  41157. struct SurfaceFullScreenExclusiveInfoEXT
  41158. {
  41159. SurfaceFullScreenExclusiveInfoEXT( FullScreenExclusiveEXT fullScreenExclusive_ = FullScreenExclusiveEXT::eDefault )
  41160. : fullScreenExclusive( fullScreenExclusive_ )
  41161. {}
  41162. SurfaceFullScreenExclusiveInfoEXT( VkSurfaceFullScreenExclusiveInfoEXT const & rhs )
  41163. {
  41164. *reinterpret_cast<VkSurfaceFullScreenExclusiveInfoEXT*>(this) = rhs;
  41165. }
  41166. SurfaceFullScreenExclusiveInfoEXT& operator=( VkSurfaceFullScreenExclusiveInfoEXT const & rhs )
  41167. {
  41168. *reinterpret_cast<VkSurfaceFullScreenExclusiveInfoEXT*>(this) = rhs;
  41169. return *this;
  41170. }
  41171. SurfaceFullScreenExclusiveInfoEXT & setPNext( void* pNext_ )
  41172. {
  41173. pNext = pNext_;
  41174. return *this;
  41175. }
  41176. SurfaceFullScreenExclusiveInfoEXT & setFullScreenExclusive( FullScreenExclusiveEXT fullScreenExclusive_ )
  41177. {
  41178. fullScreenExclusive = fullScreenExclusive_;
  41179. return *this;
  41180. }
  41181. operator VkSurfaceFullScreenExclusiveInfoEXT const&() const
  41182. {
  41183. return *reinterpret_cast<const VkSurfaceFullScreenExclusiveInfoEXT*>( this );
  41184. }
  41185. operator VkSurfaceFullScreenExclusiveInfoEXT &()
  41186. {
  41187. return *reinterpret_cast<VkSurfaceFullScreenExclusiveInfoEXT*>( this );
  41188. }
  41189. bool operator==( SurfaceFullScreenExclusiveInfoEXT const& rhs ) const
  41190. {
  41191. return ( sType == rhs.sType )
  41192. && ( pNext == rhs.pNext )
  41193. && ( fullScreenExclusive == rhs.fullScreenExclusive );
  41194. }
  41195. bool operator!=( SurfaceFullScreenExclusiveInfoEXT const& rhs ) const
  41196. {
  41197. return !operator==( rhs );
  41198. }
  41199. private:
  41200. StructureType sType = StructureType::eSurfaceFullScreenExclusiveInfoEXT;
  41201. public:
  41202. void* pNext = nullptr;
  41203. FullScreenExclusiveEXT fullScreenExclusive;
  41204. };
  41205. static_assert( sizeof( SurfaceFullScreenExclusiveInfoEXT ) == sizeof( VkSurfaceFullScreenExclusiveInfoEXT ), "struct and wrapper have different size!" );
  41206. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  41207. #ifdef VK_USE_PLATFORM_WIN32_KHR
  41208. struct SurfaceFullScreenExclusiveWin32InfoEXT
  41209. {
  41210. SurfaceFullScreenExclusiveWin32InfoEXT( HMONITOR hmonitor_ = 0 )
  41211. : hmonitor( hmonitor_ )
  41212. {}
  41213. SurfaceFullScreenExclusiveWin32InfoEXT( VkSurfaceFullScreenExclusiveWin32InfoEXT const & rhs )
  41214. {
  41215. *reinterpret_cast<VkSurfaceFullScreenExclusiveWin32InfoEXT*>(this) = rhs;
  41216. }
  41217. SurfaceFullScreenExclusiveWin32InfoEXT& operator=( VkSurfaceFullScreenExclusiveWin32InfoEXT const & rhs )
  41218. {
  41219. *reinterpret_cast<VkSurfaceFullScreenExclusiveWin32InfoEXT*>(this) = rhs;
  41220. return *this;
  41221. }
  41222. SurfaceFullScreenExclusiveWin32InfoEXT & setPNext( const void* pNext_ )
  41223. {
  41224. pNext = pNext_;
  41225. return *this;
  41226. }
  41227. SurfaceFullScreenExclusiveWin32InfoEXT & setHmonitor( HMONITOR hmonitor_ )
  41228. {
  41229. hmonitor = hmonitor_;
  41230. return *this;
  41231. }
  41232. operator VkSurfaceFullScreenExclusiveWin32InfoEXT const&() const
  41233. {
  41234. return *reinterpret_cast<const VkSurfaceFullScreenExclusiveWin32InfoEXT*>( this );
  41235. }
  41236. operator VkSurfaceFullScreenExclusiveWin32InfoEXT &()
  41237. {
  41238. return *reinterpret_cast<VkSurfaceFullScreenExclusiveWin32InfoEXT*>( this );
  41239. }
  41240. bool operator==( SurfaceFullScreenExclusiveWin32InfoEXT const& rhs ) const
  41241. {
  41242. return ( sType == rhs.sType )
  41243. && ( pNext == rhs.pNext )
  41244. && ( hmonitor == rhs.hmonitor );
  41245. }
  41246. bool operator!=( SurfaceFullScreenExclusiveWin32InfoEXT const& rhs ) const
  41247. {
  41248. return !operator==( rhs );
  41249. }
  41250. private:
  41251. StructureType sType = StructureType::eSurfaceFullScreenExclusiveWin32InfoEXT;
  41252. public:
  41253. const void* pNext = nullptr;
  41254. HMONITOR hmonitor;
  41255. };
  41256. static_assert( sizeof( SurfaceFullScreenExclusiveWin32InfoEXT ) == sizeof( VkSurfaceFullScreenExclusiveWin32InfoEXT ), "struct and wrapper have different size!" );
  41257. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  41258. struct SurfaceProtectedCapabilitiesKHR
  41259. {
  41260. SurfaceProtectedCapabilitiesKHR( Bool32 supportsProtected_ = 0 )
  41261. : supportsProtected( supportsProtected_ )
  41262. {}
  41263. SurfaceProtectedCapabilitiesKHR( VkSurfaceProtectedCapabilitiesKHR const & rhs )
  41264. {
  41265. *reinterpret_cast<VkSurfaceProtectedCapabilitiesKHR*>(this) = rhs;
  41266. }
  41267. SurfaceProtectedCapabilitiesKHR& operator=( VkSurfaceProtectedCapabilitiesKHR const & rhs )
  41268. {
  41269. *reinterpret_cast<VkSurfaceProtectedCapabilitiesKHR*>(this) = rhs;
  41270. return *this;
  41271. }
  41272. SurfaceProtectedCapabilitiesKHR & setPNext( const void* pNext_ )
  41273. {
  41274. pNext = pNext_;
  41275. return *this;
  41276. }
  41277. SurfaceProtectedCapabilitiesKHR & setSupportsProtected( Bool32 supportsProtected_ )
  41278. {
  41279. supportsProtected = supportsProtected_;
  41280. return *this;
  41281. }
  41282. operator VkSurfaceProtectedCapabilitiesKHR const&() const
  41283. {
  41284. return *reinterpret_cast<const VkSurfaceProtectedCapabilitiesKHR*>( this );
  41285. }
  41286. operator VkSurfaceProtectedCapabilitiesKHR &()
  41287. {
  41288. return *reinterpret_cast<VkSurfaceProtectedCapabilitiesKHR*>( this );
  41289. }
  41290. bool operator==( SurfaceProtectedCapabilitiesKHR const& rhs ) const
  41291. {
  41292. return ( sType == rhs.sType )
  41293. && ( pNext == rhs.pNext )
  41294. && ( supportsProtected == rhs.supportsProtected );
  41295. }
  41296. bool operator!=( SurfaceProtectedCapabilitiesKHR const& rhs ) const
  41297. {
  41298. return !operator==( rhs );
  41299. }
  41300. private:
  41301. StructureType sType = StructureType::eSurfaceProtectedCapabilitiesKHR;
  41302. public:
  41303. const void* pNext = nullptr;
  41304. Bool32 supportsProtected;
  41305. };
  41306. static_assert( sizeof( SurfaceProtectedCapabilitiesKHR ) == sizeof( VkSurfaceProtectedCapabilitiesKHR ), "struct and wrapper have different size!" );
  41307. struct SwapchainCounterCreateInfoEXT
  41308. {
  41309. SwapchainCounterCreateInfoEXT( SurfaceCounterFlagsEXT surfaceCounters_ = SurfaceCounterFlagsEXT() )
  41310. : surfaceCounters( surfaceCounters_ )
  41311. {}
  41312. SwapchainCounterCreateInfoEXT( VkSwapchainCounterCreateInfoEXT const & rhs )
  41313. {
  41314. *reinterpret_cast<VkSwapchainCounterCreateInfoEXT*>(this) = rhs;
  41315. }
  41316. SwapchainCounterCreateInfoEXT& operator=( VkSwapchainCounterCreateInfoEXT const & rhs )
  41317. {
  41318. *reinterpret_cast<VkSwapchainCounterCreateInfoEXT*>(this) = rhs;
  41319. return *this;
  41320. }
  41321. SwapchainCounterCreateInfoEXT & setPNext( const void* pNext_ )
  41322. {
  41323. pNext = pNext_;
  41324. return *this;
  41325. }
  41326. SwapchainCounterCreateInfoEXT & setSurfaceCounters( SurfaceCounterFlagsEXT surfaceCounters_ )
  41327. {
  41328. surfaceCounters = surfaceCounters_;
  41329. return *this;
  41330. }
  41331. operator VkSwapchainCounterCreateInfoEXT const&() const
  41332. {
  41333. return *reinterpret_cast<const VkSwapchainCounterCreateInfoEXT*>( this );
  41334. }
  41335. operator VkSwapchainCounterCreateInfoEXT &()
  41336. {
  41337. return *reinterpret_cast<VkSwapchainCounterCreateInfoEXT*>( this );
  41338. }
  41339. bool operator==( SwapchainCounterCreateInfoEXT const& rhs ) const
  41340. {
  41341. return ( sType == rhs.sType )
  41342. && ( pNext == rhs.pNext )
  41343. && ( surfaceCounters == rhs.surfaceCounters );
  41344. }
  41345. bool operator!=( SwapchainCounterCreateInfoEXT const& rhs ) const
  41346. {
  41347. return !operator==( rhs );
  41348. }
  41349. private:
  41350. StructureType sType = StructureType::eSwapchainCounterCreateInfoEXT;
  41351. public:
  41352. const void* pNext = nullptr;
  41353. SurfaceCounterFlagsEXT surfaceCounters;
  41354. };
  41355. static_assert( sizeof( SwapchainCounterCreateInfoEXT ) == sizeof( VkSwapchainCounterCreateInfoEXT ), "struct and wrapper have different size!" );
  41356. struct SwapchainCreateInfoKHR
  41357. {
  41358. SwapchainCreateInfoKHR( SwapchainCreateFlagsKHR flags_ = SwapchainCreateFlagsKHR(),
  41359. SurfaceKHR surface_ = SurfaceKHR(),
  41360. uint32_t minImageCount_ = 0,
  41361. Format imageFormat_ = Format::eUndefined,
  41362. ColorSpaceKHR imageColorSpace_ = ColorSpaceKHR::eSrgbNonlinear,
  41363. Extent2D imageExtent_ = Extent2D(),
  41364. uint32_t imageArrayLayers_ = 0,
  41365. ImageUsageFlags imageUsage_ = ImageUsageFlags(),
  41366. SharingMode imageSharingMode_ = SharingMode::eExclusive,
  41367. uint32_t queueFamilyIndexCount_ = 0,
  41368. const uint32_t* pQueueFamilyIndices_ = nullptr,
  41369. SurfaceTransformFlagBitsKHR preTransform_ = SurfaceTransformFlagBitsKHR::eIdentity,
  41370. CompositeAlphaFlagBitsKHR compositeAlpha_ = CompositeAlphaFlagBitsKHR::eOpaque,
  41371. PresentModeKHR presentMode_ = PresentModeKHR::eImmediate,
  41372. Bool32 clipped_ = 0,
  41373. SwapchainKHR oldSwapchain_ = SwapchainKHR() )
  41374. : flags( flags_ )
  41375. , surface( surface_ )
  41376. , minImageCount( minImageCount_ )
  41377. , imageFormat( imageFormat_ )
  41378. , imageColorSpace( imageColorSpace_ )
  41379. , imageExtent( imageExtent_ )
  41380. , imageArrayLayers( imageArrayLayers_ )
  41381. , imageUsage( imageUsage_ )
  41382. , imageSharingMode( imageSharingMode_ )
  41383. , queueFamilyIndexCount( queueFamilyIndexCount_ )
  41384. , pQueueFamilyIndices( pQueueFamilyIndices_ )
  41385. , preTransform( preTransform_ )
  41386. , compositeAlpha( compositeAlpha_ )
  41387. , presentMode( presentMode_ )
  41388. , clipped( clipped_ )
  41389. , oldSwapchain( oldSwapchain_ )
  41390. {}
  41391. SwapchainCreateInfoKHR( VkSwapchainCreateInfoKHR const & rhs )
  41392. {
  41393. *reinterpret_cast<VkSwapchainCreateInfoKHR*>(this) = rhs;
  41394. }
  41395. SwapchainCreateInfoKHR& operator=( VkSwapchainCreateInfoKHR const & rhs )
  41396. {
  41397. *reinterpret_cast<VkSwapchainCreateInfoKHR*>(this) = rhs;
  41398. return *this;
  41399. }
  41400. SwapchainCreateInfoKHR & setPNext( const void* pNext_ )
  41401. {
  41402. pNext = pNext_;
  41403. return *this;
  41404. }
  41405. SwapchainCreateInfoKHR & setFlags( SwapchainCreateFlagsKHR flags_ )
  41406. {
  41407. flags = flags_;
  41408. return *this;
  41409. }
  41410. SwapchainCreateInfoKHR & setSurface( SurfaceKHR surface_ )
  41411. {
  41412. surface = surface_;
  41413. return *this;
  41414. }
  41415. SwapchainCreateInfoKHR & setMinImageCount( uint32_t minImageCount_ )
  41416. {
  41417. minImageCount = minImageCount_;
  41418. return *this;
  41419. }
  41420. SwapchainCreateInfoKHR & setImageFormat( Format imageFormat_ )
  41421. {
  41422. imageFormat = imageFormat_;
  41423. return *this;
  41424. }
  41425. SwapchainCreateInfoKHR & setImageColorSpace( ColorSpaceKHR imageColorSpace_ )
  41426. {
  41427. imageColorSpace = imageColorSpace_;
  41428. return *this;
  41429. }
  41430. SwapchainCreateInfoKHR & setImageExtent( Extent2D imageExtent_ )
  41431. {
  41432. imageExtent = imageExtent_;
  41433. return *this;
  41434. }
  41435. SwapchainCreateInfoKHR & setImageArrayLayers( uint32_t imageArrayLayers_ )
  41436. {
  41437. imageArrayLayers = imageArrayLayers_;
  41438. return *this;
  41439. }
  41440. SwapchainCreateInfoKHR & setImageUsage( ImageUsageFlags imageUsage_ )
  41441. {
  41442. imageUsage = imageUsage_;
  41443. return *this;
  41444. }
  41445. SwapchainCreateInfoKHR & setImageSharingMode( SharingMode imageSharingMode_ )
  41446. {
  41447. imageSharingMode = imageSharingMode_;
  41448. return *this;
  41449. }
  41450. SwapchainCreateInfoKHR & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ )
  41451. {
  41452. queueFamilyIndexCount = queueFamilyIndexCount_;
  41453. return *this;
  41454. }
  41455. SwapchainCreateInfoKHR & setPQueueFamilyIndices( const uint32_t* pQueueFamilyIndices_ )
  41456. {
  41457. pQueueFamilyIndices = pQueueFamilyIndices_;
  41458. return *this;
  41459. }
  41460. SwapchainCreateInfoKHR & setPreTransform( SurfaceTransformFlagBitsKHR preTransform_ )
  41461. {
  41462. preTransform = preTransform_;
  41463. return *this;
  41464. }
  41465. SwapchainCreateInfoKHR & setCompositeAlpha( CompositeAlphaFlagBitsKHR compositeAlpha_ )
  41466. {
  41467. compositeAlpha = compositeAlpha_;
  41468. return *this;
  41469. }
  41470. SwapchainCreateInfoKHR & setPresentMode( PresentModeKHR presentMode_ )
  41471. {
  41472. presentMode = presentMode_;
  41473. return *this;
  41474. }
  41475. SwapchainCreateInfoKHR & setClipped( Bool32 clipped_ )
  41476. {
  41477. clipped = clipped_;
  41478. return *this;
  41479. }
  41480. SwapchainCreateInfoKHR & setOldSwapchain( SwapchainKHR oldSwapchain_ )
  41481. {
  41482. oldSwapchain = oldSwapchain_;
  41483. return *this;
  41484. }
  41485. operator VkSwapchainCreateInfoKHR const&() const
  41486. {
  41487. return *reinterpret_cast<const VkSwapchainCreateInfoKHR*>( this );
  41488. }
  41489. operator VkSwapchainCreateInfoKHR &()
  41490. {
  41491. return *reinterpret_cast<VkSwapchainCreateInfoKHR*>( this );
  41492. }
  41493. bool operator==( SwapchainCreateInfoKHR const& rhs ) const
  41494. {
  41495. return ( sType == rhs.sType )
  41496. && ( pNext == rhs.pNext )
  41497. && ( flags == rhs.flags )
  41498. && ( surface == rhs.surface )
  41499. && ( minImageCount == rhs.minImageCount )
  41500. && ( imageFormat == rhs.imageFormat )
  41501. && ( imageColorSpace == rhs.imageColorSpace )
  41502. && ( imageExtent == rhs.imageExtent )
  41503. && ( imageArrayLayers == rhs.imageArrayLayers )
  41504. && ( imageUsage == rhs.imageUsage )
  41505. && ( imageSharingMode == rhs.imageSharingMode )
  41506. && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount )
  41507. && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices )
  41508. && ( preTransform == rhs.preTransform )
  41509. && ( compositeAlpha == rhs.compositeAlpha )
  41510. && ( presentMode == rhs.presentMode )
  41511. && ( clipped == rhs.clipped )
  41512. && ( oldSwapchain == rhs.oldSwapchain );
  41513. }
  41514. bool operator!=( SwapchainCreateInfoKHR const& rhs ) const
  41515. {
  41516. return !operator==( rhs );
  41517. }
  41518. private:
  41519. StructureType sType = StructureType::eSwapchainCreateInfoKHR;
  41520. public:
  41521. const void* pNext = nullptr;
  41522. SwapchainCreateFlagsKHR flags;
  41523. SurfaceKHR surface;
  41524. uint32_t minImageCount;
  41525. Format imageFormat;
  41526. ColorSpaceKHR imageColorSpace;
  41527. Extent2D imageExtent;
  41528. uint32_t imageArrayLayers;
  41529. ImageUsageFlags imageUsage;
  41530. SharingMode imageSharingMode;
  41531. uint32_t queueFamilyIndexCount;
  41532. const uint32_t* pQueueFamilyIndices;
  41533. SurfaceTransformFlagBitsKHR preTransform;
  41534. CompositeAlphaFlagBitsKHR compositeAlpha;
  41535. PresentModeKHR presentMode;
  41536. Bool32 clipped;
  41537. SwapchainKHR oldSwapchain;
  41538. };
  41539. static_assert( sizeof( SwapchainCreateInfoKHR ) == sizeof( VkSwapchainCreateInfoKHR ), "struct and wrapper have different size!" );
  41540. struct SwapchainDisplayNativeHdrCreateInfoAMD
  41541. {
  41542. SwapchainDisplayNativeHdrCreateInfoAMD( Bool32 localDimmingEnable_ = 0 )
  41543. : localDimmingEnable( localDimmingEnable_ )
  41544. {}
  41545. SwapchainDisplayNativeHdrCreateInfoAMD( VkSwapchainDisplayNativeHdrCreateInfoAMD const & rhs )
  41546. {
  41547. *reinterpret_cast<VkSwapchainDisplayNativeHdrCreateInfoAMD*>(this) = rhs;
  41548. }
  41549. SwapchainDisplayNativeHdrCreateInfoAMD& operator=( VkSwapchainDisplayNativeHdrCreateInfoAMD const & rhs )
  41550. {
  41551. *reinterpret_cast<VkSwapchainDisplayNativeHdrCreateInfoAMD*>(this) = rhs;
  41552. return *this;
  41553. }
  41554. SwapchainDisplayNativeHdrCreateInfoAMD & setPNext( const void* pNext_ )
  41555. {
  41556. pNext = pNext_;
  41557. return *this;
  41558. }
  41559. SwapchainDisplayNativeHdrCreateInfoAMD & setLocalDimmingEnable( Bool32 localDimmingEnable_ )
  41560. {
  41561. localDimmingEnable = localDimmingEnable_;
  41562. return *this;
  41563. }
  41564. operator VkSwapchainDisplayNativeHdrCreateInfoAMD const&() const
  41565. {
  41566. return *reinterpret_cast<const VkSwapchainDisplayNativeHdrCreateInfoAMD*>( this );
  41567. }
  41568. operator VkSwapchainDisplayNativeHdrCreateInfoAMD &()
  41569. {
  41570. return *reinterpret_cast<VkSwapchainDisplayNativeHdrCreateInfoAMD*>( this );
  41571. }
  41572. bool operator==( SwapchainDisplayNativeHdrCreateInfoAMD const& rhs ) const
  41573. {
  41574. return ( sType == rhs.sType )
  41575. && ( pNext == rhs.pNext )
  41576. && ( localDimmingEnable == rhs.localDimmingEnable );
  41577. }
  41578. bool operator!=( SwapchainDisplayNativeHdrCreateInfoAMD const& rhs ) const
  41579. {
  41580. return !operator==( rhs );
  41581. }
  41582. private:
  41583. StructureType sType = StructureType::eSwapchainDisplayNativeHdrCreateInfoAMD;
  41584. public:
  41585. const void* pNext = nullptr;
  41586. Bool32 localDimmingEnable;
  41587. };
  41588. static_assert( sizeof( SwapchainDisplayNativeHdrCreateInfoAMD ) == sizeof( VkSwapchainDisplayNativeHdrCreateInfoAMD ), "struct and wrapper have different size!" );
  41589. struct TextureLODGatherFormatPropertiesAMD
  41590. {
  41591. operator VkTextureLODGatherFormatPropertiesAMD const&() const
  41592. {
  41593. return *reinterpret_cast<const VkTextureLODGatherFormatPropertiesAMD*>( this );
  41594. }
  41595. operator VkTextureLODGatherFormatPropertiesAMD &()
  41596. {
  41597. return *reinterpret_cast<VkTextureLODGatherFormatPropertiesAMD*>( this );
  41598. }
  41599. bool operator==( TextureLODGatherFormatPropertiesAMD const& rhs ) const
  41600. {
  41601. return ( sType == rhs.sType )
  41602. && ( pNext == rhs.pNext )
  41603. && ( supportsTextureGatherLODBiasAMD == rhs.supportsTextureGatherLODBiasAMD );
  41604. }
  41605. bool operator!=( TextureLODGatherFormatPropertiesAMD const& rhs ) const
  41606. {
  41607. return !operator==( rhs );
  41608. }
  41609. private:
  41610. StructureType sType = StructureType::eTextureLodGatherFormatPropertiesAMD;
  41611. public:
  41612. void* pNext = nullptr;
  41613. Bool32 supportsTextureGatherLODBiasAMD;
  41614. };
  41615. static_assert( sizeof( TextureLODGatherFormatPropertiesAMD ) == sizeof( VkTextureLODGatherFormatPropertiesAMD ), "struct and wrapper have different size!" );
  41616. struct ValidationCacheCreateInfoEXT
  41617. {
  41618. ValidationCacheCreateInfoEXT( ValidationCacheCreateFlagsEXT flags_ = ValidationCacheCreateFlagsEXT(),
  41619. size_t initialDataSize_ = 0,
  41620. const void* pInitialData_ = nullptr )
  41621. : flags( flags_ )
  41622. , initialDataSize( initialDataSize_ )
  41623. , pInitialData( pInitialData_ )
  41624. {}
  41625. ValidationCacheCreateInfoEXT( VkValidationCacheCreateInfoEXT const & rhs )
  41626. {
  41627. *reinterpret_cast<VkValidationCacheCreateInfoEXT*>(this) = rhs;
  41628. }
  41629. ValidationCacheCreateInfoEXT& operator=( VkValidationCacheCreateInfoEXT const & rhs )
  41630. {
  41631. *reinterpret_cast<VkValidationCacheCreateInfoEXT*>(this) = rhs;
  41632. return *this;
  41633. }
  41634. ValidationCacheCreateInfoEXT & setPNext( const void* pNext_ )
  41635. {
  41636. pNext = pNext_;
  41637. return *this;
  41638. }
  41639. ValidationCacheCreateInfoEXT & setFlags( ValidationCacheCreateFlagsEXT flags_ )
  41640. {
  41641. flags = flags_;
  41642. return *this;
  41643. }
  41644. ValidationCacheCreateInfoEXT & setInitialDataSize( size_t initialDataSize_ )
  41645. {
  41646. initialDataSize = initialDataSize_;
  41647. return *this;
  41648. }
  41649. ValidationCacheCreateInfoEXT & setPInitialData( const void* pInitialData_ )
  41650. {
  41651. pInitialData = pInitialData_;
  41652. return *this;
  41653. }
  41654. operator VkValidationCacheCreateInfoEXT const&() const
  41655. {
  41656. return *reinterpret_cast<const VkValidationCacheCreateInfoEXT*>( this );
  41657. }
  41658. operator VkValidationCacheCreateInfoEXT &()
  41659. {
  41660. return *reinterpret_cast<VkValidationCacheCreateInfoEXT*>( this );
  41661. }
  41662. bool operator==( ValidationCacheCreateInfoEXT const& rhs ) const
  41663. {
  41664. return ( sType == rhs.sType )
  41665. && ( pNext == rhs.pNext )
  41666. && ( flags == rhs.flags )
  41667. && ( initialDataSize == rhs.initialDataSize )
  41668. && ( pInitialData == rhs.pInitialData );
  41669. }
  41670. bool operator!=( ValidationCacheCreateInfoEXT const& rhs ) const
  41671. {
  41672. return !operator==( rhs );
  41673. }
  41674. private:
  41675. StructureType sType = StructureType::eValidationCacheCreateInfoEXT;
  41676. public:
  41677. const void* pNext = nullptr;
  41678. ValidationCacheCreateFlagsEXT flags;
  41679. size_t initialDataSize;
  41680. const void* pInitialData;
  41681. };
  41682. static_assert( sizeof( ValidationCacheCreateInfoEXT ) == sizeof( VkValidationCacheCreateInfoEXT ), "struct and wrapper have different size!" );
  41683. struct ValidationFeaturesEXT
  41684. {
  41685. ValidationFeaturesEXT( uint32_t enabledValidationFeatureCount_ = 0,
  41686. const ValidationFeatureEnableEXT* pEnabledValidationFeatures_ = nullptr,
  41687. uint32_t disabledValidationFeatureCount_ = 0,
  41688. const ValidationFeatureDisableEXT* pDisabledValidationFeatures_ = nullptr )
  41689. : enabledValidationFeatureCount( enabledValidationFeatureCount_ )
  41690. , pEnabledValidationFeatures( pEnabledValidationFeatures_ )
  41691. , disabledValidationFeatureCount( disabledValidationFeatureCount_ )
  41692. , pDisabledValidationFeatures( pDisabledValidationFeatures_ )
  41693. {}
  41694. ValidationFeaturesEXT( VkValidationFeaturesEXT const & rhs )
  41695. {
  41696. *reinterpret_cast<VkValidationFeaturesEXT*>(this) = rhs;
  41697. }
  41698. ValidationFeaturesEXT& operator=( VkValidationFeaturesEXT const & rhs )
  41699. {
  41700. *reinterpret_cast<VkValidationFeaturesEXT*>(this) = rhs;
  41701. return *this;
  41702. }
  41703. ValidationFeaturesEXT & setPNext( const void* pNext_ )
  41704. {
  41705. pNext = pNext_;
  41706. return *this;
  41707. }
  41708. ValidationFeaturesEXT & setEnabledValidationFeatureCount( uint32_t enabledValidationFeatureCount_ )
  41709. {
  41710. enabledValidationFeatureCount = enabledValidationFeatureCount_;
  41711. return *this;
  41712. }
  41713. ValidationFeaturesEXT & setPEnabledValidationFeatures( const ValidationFeatureEnableEXT* pEnabledValidationFeatures_ )
  41714. {
  41715. pEnabledValidationFeatures = pEnabledValidationFeatures_;
  41716. return *this;
  41717. }
  41718. ValidationFeaturesEXT & setDisabledValidationFeatureCount( uint32_t disabledValidationFeatureCount_ )
  41719. {
  41720. disabledValidationFeatureCount = disabledValidationFeatureCount_;
  41721. return *this;
  41722. }
  41723. ValidationFeaturesEXT & setPDisabledValidationFeatures( const ValidationFeatureDisableEXT* pDisabledValidationFeatures_ )
  41724. {
  41725. pDisabledValidationFeatures = pDisabledValidationFeatures_;
  41726. return *this;
  41727. }
  41728. operator VkValidationFeaturesEXT const&() const
  41729. {
  41730. return *reinterpret_cast<const VkValidationFeaturesEXT*>( this );
  41731. }
  41732. operator VkValidationFeaturesEXT &()
  41733. {
  41734. return *reinterpret_cast<VkValidationFeaturesEXT*>( this );
  41735. }
  41736. bool operator==( ValidationFeaturesEXT const& rhs ) const
  41737. {
  41738. return ( sType == rhs.sType )
  41739. && ( pNext == rhs.pNext )
  41740. && ( enabledValidationFeatureCount == rhs.enabledValidationFeatureCount )
  41741. && ( pEnabledValidationFeatures == rhs.pEnabledValidationFeatures )
  41742. && ( disabledValidationFeatureCount == rhs.disabledValidationFeatureCount )
  41743. && ( pDisabledValidationFeatures == rhs.pDisabledValidationFeatures );
  41744. }
  41745. bool operator!=( ValidationFeaturesEXT const& rhs ) const
  41746. {
  41747. return !operator==( rhs );
  41748. }
  41749. private:
  41750. StructureType sType = StructureType::eValidationFeaturesEXT;
  41751. public:
  41752. const void* pNext = nullptr;
  41753. uint32_t enabledValidationFeatureCount;
  41754. const ValidationFeatureEnableEXT* pEnabledValidationFeatures;
  41755. uint32_t disabledValidationFeatureCount;
  41756. const ValidationFeatureDisableEXT* pDisabledValidationFeatures;
  41757. };
  41758. static_assert( sizeof( ValidationFeaturesEXT ) == sizeof( VkValidationFeaturesEXT ), "struct and wrapper have different size!" );
  41759. struct ValidationFlagsEXT
  41760. {
  41761. ValidationFlagsEXT( uint32_t disabledValidationCheckCount_ = 0,
  41762. const ValidationCheckEXT* pDisabledValidationChecks_ = nullptr )
  41763. : disabledValidationCheckCount( disabledValidationCheckCount_ )
  41764. , pDisabledValidationChecks( pDisabledValidationChecks_ )
  41765. {}
  41766. ValidationFlagsEXT( VkValidationFlagsEXT const & rhs )
  41767. {
  41768. *reinterpret_cast<VkValidationFlagsEXT*>(this) = rhs;
  41769. }
  41770. ValidationFlagsEXT& operator=( VkValidationFlagsEXT const & rhs )
  41771. {
  41772. *reinterpret_cast<VkValidationFlagsEXT*>(this) = rhs;
  41773. return *this;
  41774. }
  41775. ValidationFlagsEXT & setPNext( const void* pNext_ )
  41776. {
  41777. pNext = pNext_;
  41778. return *this;
  41779. }
  41780. ValidationFlagsEXT & setDisabledValidationCheckCount( uint32_t disabledValidationCheckCount_ )
  41781. {
  41782. disabledValidationCheckCount = disabledValidationCheckCount_;
  41783. return *this;
  41784. }
  41785. ValidationFlagsEXT & setPDisabledValidationChecks( const ValidationCheckEXT* pDisabledValidationChecks_ )
  41786. {
  41787. pDisabledValidationChecks = pDisabledValidationChecks_;
  41788. return *this;
  41789. }
  41790. operator VkValidationFlagsEXT const&() const
  41791. {
  41792. return *reinterpret_cast<const VkValidationFlagsEXT*>( this );
  41793. }
  41794. operator VkValidationFlagsEXT &()
  41795. {
  41796. return *reinterpret_cast<VkValidationFlagsEXT*>( this );
  41797. }
  41798. bool operator==( ValidationFlagsEXT const& rhs ) const
  41799. {
  41800. return ( sType == rhs.sType )
  41801. && ( pNext == rhs.pNext )
  41802. && ( disabledValidationCheckCount == rhs.disabledValidationCheckCount )
  41803. && ( pDisabledValidationChecks == rhs.pDisabledValidationChecks );
  41804. }
  41805. bool operator!=( ValidationFlagsEXT const& rhs ) const
  41806. {
  41807. return !operator==( rhs );
  41808. }
  41809. private:
  41810. StructureType sType = StructureType::eValidationFlagsEXT;
  41811. public:
  41812. const void* pNext = nullptr;
  41813. uint32_t disabledValidationCheckCount;
  41814. const ValidationCheckEXT* pDisabledValidationChecks;
  41815. };
  41816. static_assert( sizeof( ValidationFlagsEXT ) == sizeof( VkValidationFlagsEXT ), "struct and wrapper have different size!" );
  41817. #ifdef VK_USE_PLATFORM_VI_NN
  41818. struct ViSurfaceCreateInfoNN
  41819. {
  41820. ViSurfaceCreateInfoNN( ViSurfaceCreateFlagsNN flags_ = ViSurfaceCreateFlagsNN(),
  41821. void* window_ = nullptr )
  41822. : flags( flags_ )
  41823. , window( window_ )
  41824. {}
  41825. ViSurfaceCreateInfoNN( VkViSurfaceCreateInfoNN const & rhs )
  41826. {
  41827. *reinterpret_cast<VkViSurfaceCreateInfoNN*>(this) = rhs;
  41828. }
  41829. ViSurfaceCreateInfoNN& operator=( VkViSurfaceCreateInfoNN const & rhs )
  41830. {
  41831. *reinterpret_cast<VkViSurfaceCreateInfoNN*>(this) = rhs;
  41832. return *this;
  41833. }
  41834. ViSurfaceCreateInfoNN & setPNext( const void* pNext_ )
  41835. {
  41836. pNext = pNext_;
  41837. return *this;
  41838. }
  41839. ViSurfaceCreateInfoNN & setFlags( ViSurfaceCreateFlagsNN flags_ )
  41840. {
  41841. flags = flags_;
  41842. return *this;
  41843. }
  41844. ViSurfaceCreateInfoNN & setWindow( void* window_ )
  41845. {
  41846. window = window_;
  41847. return *this;
  41848. }
  41849. operator VkViSurfaceCreateInfoNN const&() const
  41850. {
  41851. return *reinterpret_cast<const VkViSurfaceCreateInfoNN*>( this );
  41852. }
  41853. operator VkViSurfaceCreateInfoNN &()
  41854. {
  41855. return *reinterpret_cast<VkViSurfaceCreateInfoNN*>( this );
  41856. }
  41857. bool operator==( ViSurfaceCreateInfoNN const& rhs ) const
  41858. {
  41859. return ( sType == rhs.sType )
  41860. && ( pNext == rhs.pNext )
  41861. && ( flags == rhs.flags )
  41862. && ( window == rhs.window );
  41863. }
  41864. bool operator!=( ViSurfaceCreateInfoNN const& rhs ) const
  41865. {
  41866. return !operator==( rhs );
  41867. }
  41868. private:
  41869. StructureType sType = StructureType::eViSurfaceCreateInfoNN;
  41870. public:
  41871. const void* pNext = nullptr;
  41872. ViSurfaceCreateFlagsNN flags;
  41873. void* window;
  41874. };
  41875. static_assert( sizeof( ViSurfaceCreateInfoNN ) == sizeof( VkViSurfaceCreateInfoNN ), "struct and wrapper have different size!" );
  41876. #endif /*VK_USE_PLATFORM_VI_NN*/
  41877. #ifdef VK_USE_PLATFORM_WAYLAND_KHR
  41878. struct WaylandSurfaceCreateInfoKHR
  41879. {
  41880. WaylandSurfaceCreateInfoKHR( WaylandSurfaceCreateFlagsKHR flags_ = WaylandSurfaceCreateFlagsKHR(),
  41881. struct wl_display* display_ = nullptr,
  41882. struct wl_surface* surface_ = nullptr )
  41883. : flags( flags_ )
  41884. , display( display_ )
  41885. , surface( surface_ )
  41886. {}
  41887. WaylandSurfaceCreateInfoKHR( VkWaylandSurfaceCreateInfoKHR const & rhs )
  41888. {
  41889. *reinterpret_cast<VkWaylandSurfaceCreateInfoKHR*>(this) = rhs;
  41890. }
  41891. WaylandSurfaceCreateInfoKHR& operator=( VkWaylandSurfaceCreateInfoKHR const & rhs )
  41892. {
  41893. *reinterpret_cast<VkWaylandSurfaceCreateInfoKHR*>(this) = rhs;
  41894. return *this;
  41895. }
  41896. WaylandSurfaceCreateInfoKHR & setPNext( const void* pNext_ )
  41897. {
  41898. pNext = pNext_;
  41899. return *this;
  41900. }
  41901. WaylandSurfaceCreateInfoKHR & setFlags( WaylandSurfaceCreateFlagsKHR flags_ )
  41902. {
  41903. flags = flags_;
  41904. return *this;
  41905. }
  41906. WaylandSurfaceCreateInfoKHR & setDisplay( struct wl_display* display_ )
  41907. {
  41908. display = display_;
  41909. return *this;
  41910. }
  41911. WaylandSurfaceCreateInfoKHR & setSurface( struct wl_surface* surface_ )
  41912. {
  41913. surface = surface_;
  41914. return *this;
  41915. }
  41916. operator VkWaylandSurfaceCreateInfoKHR const&() const
  41917. {
  41918. return *reinterpret_cast<const VkWaylandSurfaceCreateInfoKHR*>( this );
  41919. }
  41920. operator VkWaylandSurfaceCreateInfoKHR &()
  41921. {
  41922. return *reinterpret_cast<VkWaylandSurfaceCreateInfoKHR*>( this );
  41923. }
  41924. bool operator==( WaylandSurfaceCreateInfoKHR const& rhs ) const
  41925. {
  41926. return ( sType == rhs.sType )
  41927. && ( pNext == rhs.pNext )
  41928. && ( flags == rhs.flags )
  41929. && ( display == rhs.display )
  41930. && ( surface == rhs.surface );
  41931. }
  41932. bool operator!=( WaylandSurfaceCreateInfoKHR const& rhs ) const
  41933. {
  41934. return !operator==( rhs );
  41935. }
  41936. private:
  41937. StructureType sType = StructureType::eWaylandSurfaceCreateInfoKHR;
  41938. public:
  41939. const void* pNext = nullptr;
  41940. WaylandSurfaceCreateFlagsKHR flags;
  41941. struct wl_display* display;
  41942. struct wl_surface* surface;
  41943. };
  41944. static_assert( sizeof( WaylandSurfaceCreateInfoKHR ) == sizeof( VkWaylandSurfaceCreateInfoKHR ), "struct and wrapper have different size!" );
  41945. #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
  41946. #ifdef VK_USE_PLATFORM_WIN32_KHR
  41947. struct Win32KeyedMutexAcquireReleaseInfoKHR
  41948. {
  41949. Win32KeyedMutexAcquireReleaseInfoKHR( uint32_t acquireCount_ = 0,
  41950. const DeviceMemory* pAcquireSyncs_ = nullptr,
  41951. const uint64_t* pAcquireKeys_ = nullptr,
  41952. const uint32_t* pAcquireTimeouts_ = nullptr,
  41953. uint32_t releaseCount_ = 0,
  41954. const DeviceMemory* pReleaseSyncs_ = nullptr,
  41955. const uint64_t* pReleaseKeys_ = nullptr )
  41956. : acquireCount( acquireCount_ )
  41957. , pAcquireSyncs( pAcquireSyncs_ )
  41958. , pAcquireKeys( pAcquireKeys_ )
  41959. , pAcquireTimeouts( pAcquireTimeouts_ )
  41960. , releaseCount( releaseCount_ )
  41961. , pReleaseSyncs( pReleaseSyncs_ )
  41962. , pReleaseKeys( pReleaseKeys_ )
  41963. {}
  41964. Win32KeyedMutexAcquireReleaseInfoKHR( VkWin32KeyedMutexAcquireReleaseInfoKHR const & rhs )
  41965. {
  41966. *reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoKHR*>(this) = rhs;
  41967. }
  41968. Win32KeyedMutexAcquireReleaseInfoKHR& operator=( VkWin32KeyedMutexAcquireReleaseInfoKHR const & rhs )
  41969. {
  41970. *reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoKHR*>(this) = rhs;
  41971. return *this;
  41972. }
  41973. Win32KeyedMutexAcquireReleaseInfoKHR & setPNext( const void* pNext_ )
  41974. {
  41975. pNext = pNext_;
  41976. return *this;
  41977. }
  41978. Win32KeyedMutexAcquireReleaseInfoKHR & setAcquireCount( uint32_t acquireCount_ )
  41979. {
  41980. acquireCount = acquireCount_;
  41981. return *this;
  41982. }
  41983. Win32KeyedMutexAcquireReleaseInfoKHR & setPAcquireSyncs( const DeviceMemory* pAcquireSyncs_ )
  41984. {
  41985. pAcquireSyncs = pAcquireSyncs_;
  41986. return *this;
  41987. }
  41988. Win32KeyedMutexAcquireReleaseInfoKHR & setPAcquireKeys( const uint64_t* pAcquireKeys_ )
  41989. {
  41990. pAcquireKeys = pAcquireKeys_;
  41991. return *this;
  41992. }
  41993. Win32KeyedMutexAcquireReleaseInfoKHR & setPAcquireTimeouts( const uint32_t* pAcquireTimeouts_ )
  41994. {
  41995. pAcquireTimeouts = pAcquireTimeouts_;
  41996. return *this;
  41997. }
  41998. Win32KeyedMutexAcquireReleaseInfoKHR & setReleaseCount( uint32_t releaseCount_ )
  41999. {
  42000. releaseCount = releaseCount_;
  42001. return *this;
  42002. }
  42003. Win32KeyedMutexAcquireReleaseInfoKHR & setPReleaseSyncs( const DeviceMemory* pReleaseSyncs_ )
  42004. {
  42005. pReleaseSyncs = pReleaseSyncs_;
  42006. return *this;
  42007. }
  42008. Win32KeyedMutexAcquireReleaseInfoKHR & setPReleaseKeys( const uint64_t* pReleaseKeys_ )
  42009. {
  42010. pReleaseKeys = pReleaseKeys_;
  42011. return *this;
  42012. }
  42013. operator VkWin32KeyedMutexAcquireReleaseInfoKHR const&() const
  42014. {
  42015. return *reinterpret_cast<const VkWin32KeyedMutexAcquireReleaseInfoKHR*>( this );
  42016. }
  42017. operator VkWin32KeyedMutexAcquireReleaseInfoKHR &()
  42018. {
  42019. return *reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoKHR*>( this );
  42020. }
  42021. bool operator==( Win32KeyedMutexAcquireReleaseInfoKHR const& rhs ) const
  42022. {
  42023. return ( sType == rhs.sType )
  42024. && ( pNext == rhs.pNext )
  42025. && ( acquireCount == rhs.acquireCount )
  42026. && ( pAcquireSyncs == rhs.pAcquireSyncs )
  42027. && ( pAcquireKeys == rhs.pAcquireKeys )
  42028. && ( pAcquireTimeouts == rhs.pAcquireTimeouts )
  42029. && ( releaseCount == rhs.releaseCount )
  42030. && ( pReleaseSyncs == rhs.pReleaseSyncs )
  42031. && ( pReleaseKeys == rhs.pReleaseKeys );
  42032. }
  42033. bool operator!=( Win32KeyedMutexAcquireReleaseInfoKHR const& rhs ) const
  42034. {
  42035. return !operator==( rhs );
  42036. }
  42037. private:
  42038. StructureType sType = StructureType::eWin32KeyedMutexAcquireReleaseInfoKHR;
  42039. public:
  42040. const void* pNext = nullptr;
  42041. uint32_t acquireCount;
  42042. const DeviceMemory* pAcquireSyncs;
  42043. const uint64_t* pAcquireKeys;
  42044. const uint32_t* pAcquireTimeouts;
  42045. uint32_t releaseCount;
  42046. const DeviceMemory* pReleaseSyncs;
  42047. const uint64_t* pReleaseKeys;
  42048. };
  42049. static_assert( sizeof( Win32KeyedMutexAcquireReleaseInfoKHR ) == sizeof( VkWin32KeyedMutexAcquireReleaseInfoKHR ), "struct and wrapper have different size!" );
  42050. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  42051. #ifdef VK_USE_PLATFORM_WIN32_KHR
  42052. struct Win32KeyedMutexAcquireReleaseInfoNV
  42053. {
  42054. Win32KeyedMutexAcquireReleaseInfoNV( uint32_t acquireCount_ = 0,
  42055. const DeviceMemory* pAcquireSyncs_ = nullptr,
  42056. const uint64_t* pAcquireKeys_ = nullptr,
  42057. const uint32_t* pAcquireTimeoutMilliseconds_ = nullptr,
  42058. uint32_t releaseCount_ = 0,
  42059. const DeviceMemory* pReleaseSyncs_ = nullptr,
  42060. const uint64_t* pReleaseKeys_ = nullptr )
  42061. : acquireCount( acquireCount_ )
  42062. , pAcquireSyncs( pAcquireSyncs_ )
  42063. , pAcquireKeys( pAcquireKeys_ )
  42064. , pAcquireTimeoutMilliseconds( pAcquireTimeoutMilliseconds_ )
  42065. , releaseCount( releaseCount_ )
  42066. , pReleaseSyncs( pReleaseSyncs_ )
  42067. , pReleaseKeys( pReleaseKeys_ )
  42068. {}
  42069. Win32KeyedMutexAcquireReleaseInfoNV( VkWin32KeyedMutexAcquireReleaseInfoNV const & rhs )
  42070. {
  42071. *reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoNV*>(this) = rhs;
  42072. }
  42073. Win32KeyedMutexAcquireReleaseInfoNV& operator=( VkWin32KeyedMutexAcquireReleaseInfoNV const & rhs )
  42074. {
  42075. *reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoNV*>(this) = rhs;
  42076. return *this;
  42077. }
  42078. Win32KeyedMutexAcquireReleaseInfoNV & setPNext( const void* pNext_ )
  42079. {
  42080. pNext = pNext_;
  42081. return *this;
  42082. }
  42083. Win32KeyedMutexAcquireReleaseInfoNV & setAcquireCount( uint32_t acquireCount_ )
  42084. {
  42085. acquireCount = acquireCount_;
  42086. return *this;
  42087. }
  42088. Win32KeyedMutexAcquireReleaseInfoNV & setPAcquireSyncs( const DeviceMemory* pAcquireSyncs_ )
  42089. {
  42090. pAcquireSyncs = pAcquireSyncs_;
  42091. return *this;
  42092. }
  42093. Win32KeyedMutexAcquireReleaseInfoNV & setPAcquireKeys( const uint64_t* pAcquireKeys_ )
  42094. {
  42095. pAcquireKeys = pAcquireKeys_;
  42096. return *this;
  42097. }
  42098. Win32KeyedMutexAcquireReleaseInfoNV & setPAcquireTimeoutMilliseconds( const uint32_t* pAcquireTimeoutMilliseconds_ )
  42099. {
  42100. pAcquireTimeoutMilliseconds = pAcquireTimeoutMilliseconds_;
  42101. return *this;
  42102. }
  42103. Win32KeyedMutexAcquireReleaseInfoNV & setReleaseCount( uint32_t releaseCount_ )
  42104. {
  42105. releaseCount = releaseCount_;
  42106. return *this;
  42107. }
  42108. Win32KeyedMutexAcquireReleaseInfoNV & setPReleaseSyncs( const DeviceMemory* pReleaseSyncs_ )
  42109. {
  42110. pReleaseSyncs = pReleaseSyncs_;
  42111. return *this;
  42112. }
  42113. Win32KeyedMutexAcquireReleaseInfoNV & setPReleaseKeys( const uint64_t* pReleaseKeys_ )
  42114. {
  42115. pReleaseKeys = pReleaseKeys_;
  42116. return *this;
  42117. }
  42118. operator VkWin32KeyedMutexAcquireReleaseInfoNV const&() const
  42119. {
  42120. return *reinterpret_cast<const VkWin32KeyedMutexAcquireReleaseInfoNV*>( this );
  42121. }
  42122. operator VkWin32KeyedMutexAcquireReleaseInfoNV &()
  42123. {
  42124. return *reinterpret_cast<VkWin32KeyedMutexAcquireReleaseInfoNV*>( this );
  42125. }
  42126. bool operator==( Win32KeyedMutexAcquireReleaseInfoNV const& rhs ) const
  42127. {
  42128. return ( sType == rhs.sType )
  42129. && ( pNext == rhs.pNext )
  42130. && ( acquireCount == rhs.acquireCount )
  42131. && ( pAcquireSyncs == rhs.pAcquireSyncs )
  42132. && ( pAcquireKeys == rhs.pAcquireKeys )
  42133. && ( pAcquireTimeoutMilliseconds == rhs.pAcquireTimeoutMilliseconds )
  42134. && ( releaseCount == rhs.releaseCount )
  42135. && ( pReleaseSyncs == rhs.pReleaseSyncs )
  42136. && ( pReleaseKeys == rhs.pReleaseKeys );
  42137. }
  42138. bool operator!=( Win32KeyedMutexAcquireReleaseInfoNV const& rhs ) const
  42139. {
  42140. return !operator==( rhs );
  42141. }
  42142. private:
  42143. StructureType sType = StructureType::eWin32KeyedMutexAcquireReleaseInfoNV;
  42144. public:
  42145. const void* pNext = nullptr;
  42146. uint32_t acquireCount;
  42147. const DeviceMemory* pAcquireSyncs;
  42148. const uint64_t* pAcquireKeys;
  42149. const uint32_t* pAcquireTimeoutMilliseconds;
  42150. uint32_t releaseCount;
  42151. const DeviceMemory* pReleaseSyncs;
  42152. const uint64_t* pReleaseKeys;
  42153. };
  42154. static_assert( sizeof( Win32KeyedMutexAcquireReleaseInfoNV ) == sizeof( VkWin32KeyedMutexAcquireReleaseInfoNV ), "struct and wrapper have different size!" );
  42155. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  42156. #ifdef VK_USE_PLATFORM_WIN32_KHR
  42157. struct Win32SurfaceCreateInfoKHR
  42158. {
  42159. Win32SurfaceCreateInfoKHR( Win32SurfaceCreateFlagsKHR flags_ = Win32SurfaceCreateFlagsKHR(),
  42160. HINSTANCE hinstance_ = 0,
  42161. HWND hwnd_ = 0 )
  42162. : flags( flags_ )
  42163. , hinstance( hinstance_ )
  42164. , hwnd( hwnd_ )
  42165. {}
  42166. Win32SurfaceCreateInfoKHR( VkWin32SurfaceCreateInfoKHR const & rhs )
  42167. {
  42168. *reinterpret_cast<VkWin32SurfaceCreateInfoKHR*>(this) = rhs;
  42169. }
  42170. Win32SurfaceCreateInfoKHR& operator=( VkWin32SurfaceCreateInfoKHR const & rhs )
  42171. {
  42172. *reinterpret_cast<VkWin32SurfaceCreateInfoKHR*>(this) = rhs;
  42173. return *this;
  42174. }
  42175. Win32SurfaceCreateInfoKHR & setPNext( const void* pNext_ )
  42176. {
  42177. pNext = pNext_;
  42178. return *this;
  42179. }
  42180. Win32SurfaceCreateInfoKHR & setFlags( Win32SurfaceCreateFlagsKHR flags_ )
  42181. {
  42182. flags = flags_;
  42183. return *this;
  42184. }
  42185. Win32SurfaceCreateInfoKHR & setHinstance( HINSTANCE hinstance_ )
  42186. {
  42187. hinstance = hinstance_;
  42188. return *this;
  42189. }
  42190. Win32SurfaceCreateInfoKHR & setHwnd( HWND hwnd_ )
  42191. {
  42192. hwnd = hwnd_;
  42193. return *this;
  42194. }
  42195. operator VkWin32SurfaceCreateInfoKHR const&() const
  42196. {
  42197. return *reinterpret_cast<const VkWin32SurfaceCreateInfoKHR*>( this );
  42198. }
  42199. operator VkWin32SurfaceCreateInfoKHR &()
  42200. {
  42201. return *reinterpret_cast<VkWin32SurfaceCreateInfoKHR*>( this );
  42202. }
  42203. bool operator==( Win32SurfaceCreateInfoKHR const& rhs ) const
  42204. {
  42205. return ( sType == rhs.sType )
  42206. && ( pNext == rhs.pNext )
  42207. && ( flags == rhs.flags )
  42208. && ( hinstance == rhs.hinstance )
  42209. && ( hwnd == rhs.hwnd );
  42210. }
  42211. bool operator!=( Win32SurfaceCreateInfoKHR const& rhs ) const
  42212. {
  42213. return !operator==( rhs );
  42214. }
  42215. private:
  42216. StructureType sType = StructureType::eWin32SurfaceCreateInfoKHR;
  42217. public:
  42218. const void* pNext = nullptr;
  42219. Win32SurfaceCreateFlagsKHR flags;
  42220. HINSTANCE hinstance;
  42221. HWND hwnd;
  42222. };
  42223. static_assert( sizeof( Win32SurfaceCreateInfoKHR ) == sizeof( VkWin32SurfaceCreateInfoKHR ), "struct and wrapper have different size!" );
  42224. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  42225. struct WriteDescriptorSet
  42226. {
  42227. WriteDescriptorSet( DescriptorSet dstSet_ = DescriptorSet(),
  42228. uint32_t dstBinding_ = 0,
  42229. uint32_t dstArrayElement_ = 0,
  42230. uint32_t descriptorCount_ = 0,
  42231. DescriptorType descriptorType_ = DescriptorType::eSampler,
  42232. const DescriptorImageInfo* pImageInfo_ = nullptr,
  42233. const DescriptorBufferInfo* pBufferInfo_ = nullptr,
  42234. const BufferView* pTexelBufferView_ = nullptr )
  42235. : dstSet( dstSet_ )
  42236. , dstBinding( dstBinding_ )
  42237. , dstArrayElement( dstArrayElement_ )
  42238. , descriptorCount( descriptorCount_ )
  42239. , descriptorType( descriptorType_ )
  42240. , pImageInfo( pImageInfo_ )
  42241. , pBufferInfo( pBufferInfo_ )
  42242. , pTexelBufferView( pTexelBufferView_ )
  42243. {}
  42244. WriteDescriptorSet( VkWriteDescriptorSet const & rhs )
  42245. {
  42246. *reinterpret_cast<VkWriteDescriptorSet*>(this) = rhs;
  42247. }
  42248. WriteDescriptorSet& operator=( VkWriteDescriptorSet const & rhs )
  42249. {
  42250. *reinterpret_cast<VkWriteDescriptorSet*>(this) = rhs;
  42251. return *this;
  42252. }
  42253. WriteDescriptorSet & setPNext( const void* pNext_ )
  42254. {
  42255. pNext = pNext_;
  42256. return *this;
  42257. }
  42258. WriteDescriptorSet & setDstSet( DescriptorSet dstSet_ )
  42259. {
  42260. dstSet = dstSet_;
  42261. return *this;
  42262. }
  42263. WriteDescriptorSet & setDstBinding( uint32_t dstBinding_ )
  42264. {
  42265. dstBinding = dstBinding_;
  42266. return *this;
  42267. }
  42268. WriteDescriptorSet & setDstArrayElement( uint32_t dstArrayElement_ )
  42269. {
  42270. dstArrayElement = dstArrayElement_;
  42271. return *this;
  42272. }
  42273. WriteDescriptorSet & setDescriptorCount( uint32_t descriptorCount_ )
  42274. {
  42275. descriptorCount = descriptorCount_;
  42276. return *this;
  42277. }
  42278. WriteDescriptorSet & setDescriptorType( DescriptorType descriptorType_ )
  42279. {
  42280. descriptorType = descriptorType_;
  42281. return *this;
  42282. }
  42283. WriteDescriptorSet & setPImageInfo( const DescriptorImageInfo* pImageInfo_ )
  42284. {
  42285. pImageInfo = pImageInfo_;
  42286. return *this;
  42287. }
  42288. WriteDescriptorSet & setPBufferInfo( const DescriptorBufferInfo* pBufferInfo_ )
  42289. {
  42290. pBufferInfo = pBufferInfo_;
  42291. return *this;
  42292. }
  42293. WriteDescriptorSet & setPTexelBufferView( const BufferView* pTexelBufferView_ )
  42294. {
  42295. pTexelBufferView = pTexelBufferView_;
  42296. return *this;
  42297. }
  42298. operator VkWriteDescriptorSet const&() const
  42299. {
  42300. return *reinterpret_cast<const VkWriteDescriptorSet*>( this );
  42301. }
  42302. operator VkWriteDescriptorSet &()
  42303. {
  42304. return *reinterpret_cast<VkWriteDescriptorSet*>( this );
  42305. }
  42306. bool operator==( WriteDescriptorSet const& rhs ) const
  42307. {
  42308. return ( sType == rhs.sType )
  42309. && ( pNext == rhs.pNext )
  42310. && ( dstSet == rhs.dstSet )
  42311. && ( dstBinding == rhs.dstBinding )
  42312. && ( dstArrayElement == rhs.dstArrayElement )
  42313. && ( descriptorCount == rhs.descriptorCount )
  42314. && ( descriptorType == rhs.descriptorType )
  42315. && ( pImageInfo == rhs.pImageInfo )
  42316. && ( pBufferInfo == rhs.pBufferInfo )
  42317. && ( pTexelBufferView == rhs.pTexelBufferView );
  42318. }
  42319. bool operator!=( WriteDescriptorSet const& rhs ) const
  42320. {
  42321. return !operator==( rhs );
  42322. }
  42323. private:
  42324. StructureType sType = StructureType::eWriteDescriptorSet;
  42325. public:
  42326. const void* pNext = nullptr;
  42327. DescriptorSet dstSet;
  42328. uint32_t dstBinding;
  42329. uint32_t dstArrayElement;
  42330. uint32_t descriptorCount;
  42331. DescriptorType descriptorType;
  42332. const DescriptorImageInfo* pImageInfo;
  42333. const DescriptorBufferInfo* pBufferInfo;
  42334. const BufferView* pTexelBufferView;
  42335. };
  42336. static_assert( sizeof( WriteDescriptorSet ) == sizeof( VkWriteDescriptorSet ), "struct and wrapper have different size!" );
  42337. struct WriteDescriptorSetAccelerationStructureNV
  42338. {
  42339. WriteDescriptorSetAccelerationStructureNV( uint32_t accelerationStructureCount_ = 0,
  42340. const AccelerationStructureNV* pAccelerationStructures_ = nullptr )
  42341. : accelerationStructureCount( accelerationStructureCount_ )
  42342. , pAccelerationStructures( pAccelerationStructures_ )
  42343. {}
  42344. WriteDescriptorSetAccelerationStructureNV( VkWriteDescriptorSetAccelerationStructureNV const & rhs )
  42345. {
  42346. *reinterpret_cast<VkWriteDescriptorSetAccelerationStructureNV*>(this) = rhs;
  42347. }
  42348. WriteDescriptorSetAccelerationStructureNV& operator=( VkWriteDescriptorSetAccelerationStructureNV const & rhs )
  42349. {
  42350. *reinterpret_cast<VkWriteDescriptorSetAccelerationStructureNV*>(this) = rhs;
  42351. return *this;
  42352. }
  42353. WriteDescriptorSetAccelerationStructureNV & setPNext( const void* pNext_ )
  42354. {
  42355. pNext = pNext_;
  42356. return *this;
  42357. }
  42358. WriteDescriptorSetAccelerationStructureNV & setAccelerationStructureCount( uint32_t accelerationStructureCount_ )
  42359. {
  42360. accelerationStructureCount = accelerationStructureCount_;
  42361. return *this;
  42362. }
  42363. WriteDescriptorSetAccelerationStructureNV & setPAccelerationStructures( const AccelerationStructureNV* pAccelerationStructures_ )
  42364. {
  42365. pAccelerationStructures = pAccelerationStructures_;
  42366. return *this;
  42367. }
  42368. operator VkWriteDescriptorSetAccelerationStructureNV const&() const
  42369. {
  42370. return *reinterpret_cast<const VkWriteDescriptorSetAccelerationStructureNV*>( this );
  42371. }
  42372. operator VkWriteDescriptorSetAccelerationStructureNV &()
  42373. {
  42374. return *reinterpret_cast<VkWriteDescriptorSetAccelerationStructureNV*>( this );
  42375. }
  42376. bool operator==( WriteDescriptorSetAccelerationStructureNV const& rhs ) const
  42377. {
  42378. return ( sType == rhs.sType )
  42379. && ( pNext == rhs.pNext )
  42380. && ( accelerationStructureCount == rhs.accelerationStructureCount )
  42381. && ( pAccelerationStructures == rhs.pAccelerationStructures );
  42382. }
  42383. bool operator!=( WriteDescriptorSetAccelerationStructureNV const& rhs ) const
  42384. {
  42385. return !operator==( rhs );
  42386. }
  42387. private:
  42388. StructureType sType = StructureType::eWriteDescriptorSetAccelerationStructureNV;
  42389. public:
  42390. const void* pNext = nullptr;
  42391. uint32_t accelerationStructureCount;
  42392. const AccelerationStructureNV* pAccelerationStructures;
  42393. };
  42394. static_assert( sizeof( WriteDescriptorSetAccelerationStructureNV ) == sizeof( VkWriteDescriptorSetAccelerationStructureNV ), "struct and wrapper have different size!" );
  42395. struct WriteDescriptorSetInlineUniformBlockEXT
  42396. {
  42397. WriteDescriptorSetInlineUniformBlockEXT( uint32_t dataSize_ = 0,
  42398. const void* pData_ = nullptr )
  42399. : dataSize( dataSize_ )
  42400. , pData( pData_ )
  42401. {}
  42402. WriteDescriptorSetInlineUniformBlockEXT( VkWriteDescriptorSetInlineUniformBlockEXT const & rhs )
  42403. {
  42404. *reinterpret_cast<VkWriteDescriptorSetInlineUniformBlockEXT*>(this) = rhs;
  42405. }
  42406. WriteDescriptorSetInlineUniformBlockEXT& operator=( VkWriteDescriptorSetInlineUniformBlockEXT const & rhs )
  42407. {
  42408. *reinterpret_cast<VkWriteDescriptorSetInlineUniformBlockEXT*>(this) = rhs;
  42409. return *this;
  42410. }
  42411. WriteDescriptorSetInlineUniformBlockEXT & setPNext( const void* pNext_ )
  42412. {
  42413. pNext = pNext_;
  42414. return *this;
  42415. }
  42416. WriteDescriptorSetInlineUniformBlockEXT & setDataSize( uint32_t dataSize_ )
  42417. {
  42418. dataSize = dataSize_;
  42419. return *this;
  42420. }
  42421. WriteDescriptorSetInlineUniformBlockEXT & setPData( const void* pData_ )
  42422. {
  42423. pData = pData_;
  42424. return *this;
  42425. }
  42426. operator VkWriteDescriptorSetInlineUniformBlockEXT const&() const
  42427. {
  42428. return *reinterpret_cast<const VkWriteDescriptorSetInlineUniformBlockEXT*>( this );
  42429. }
  42430. operator VkWriteDescriptorSetInlineUniformBlockEXT &()
  42431. {
  42432. return *reinterpret_cast<VkWriteDescriptorSetInlineUniformBlockEXT*>( this );
  42433. }
  42434. bool operator==( WriteDescriptorSetInlineUniformBlockEXT const& rhs ) const
  42435. {
  42436. return ( sType == rhs.sType )
  42437. && ( pNext == rhs.pNext )
  42438. && ( dataSize == rhs.dataSize )
  42439. && ( pData == rhs.pData );
  42440. }
  42441. bool operator!=( WriteDescriptorSetInlineUniformBlockEXT const& rhs ) const
  42442. {
  42443. return !operator==( rhs );
  42444. }
  42445. private:
  42446. StructureType sType = StructureType::eWriteDescriptorSetInlineUniformBlockEXT;
  42447. public:
  42448. const void* pNext = nullptr;
  42449. uint32_t dataSize;
  42450. const void* pData;
  42451. };
  42452. static_assert( sizeof( WriteDescriptorSetInlineUniformBlockEXT ) == sizeof( VkWriteDescriptorSetInlineUniformBlockEXT ), "struct and wrapper have different size!" );
  42453. #ifdef VK_USE_PLATFORM_XCB_KHR
  42454. struct XcbSurfaceCreateInfoKHR
  42455. {
  42456. XcbSurfaceCreateInfoKHR( XcbSurfaceCreateFlagsKHR flags_ = XcbSurfaceCreateFlagsKHR(),
  42457. xcb_connection_t* connection_ = nullptr,
  42458. xcb_window_t window_ = 0 )
  42459. : flags( flags_ )
  42460. , connection( connection_ )
  42461. , window( window_ )
  42462. {}
  42463. XcbSurfaceCreateInfoKHR( VkXcbSurfaceCreateInfoKHR const & rhs )
  42464. {
  42465. *reinterpret_cast<VkXcbSurfaceCreateInfoKHR*>(this) = rhs;
  42466. }
  42467. XcbSurfaceCreateInfoKHR& operator=( VkXcbSurfaceCreateInfoKHR const & rhs )
  42468. {
  42469. *reinterpret_cast<VkXcbSurfaceCreateInfoKHR*>(this) = rhs;
  42470. return *this;
  42471. }
  42472. XcbSurfaceCreateInfoKHR & setPNext( const void* pNext_ )
  42473. {
  42474. pNext = pNext_;
  42475. return *this;
  42476. }
  42477. XcbSurfaceCreateInfoKHR & setFlags( XcbSurfaceCreateFlagsKHR flags_ )
  42478. {
  42479. flags = flags_;
  42480. return *this;
  42481. }
  42482. XcbSurfaceCreateInfoKHR & setConnection( xcb_connection_t* connection_ )
  42483. {
  42484. connection = connection_;
  42485. return *this;
  42486. }
  42487. XcbSurfaceCreateInfoKHR & setWindow( xcb_window_t window_ )
  42488. {
  42489. window = window_;
  42490. return *this;
  42491. }
  42492. operator VkXcbSurfaceCreateInfoKHR const&() const
  42493. {
  42494. return *reinterpret_cast<const VkXcbSurfaceCreateInfoKHR*>( this );
  42495. }
  42496. operator VkXcbSurfaceCreateInfoKHR &()
  42497. {
  42498. return *reinterpret_cast<VkXcbSurfaceCreateInfoKHR*>( this );
  42499. }
  42500. bool operator==( XcbSurfaceCreateInfoKHR const& rhs ) const
  42501. {
  42502. return ( sType == rhs.sType )
  42503. && ( pNext == rhs.pNext )
  42504. && ( flags == rhs.flags )
  42505. && ( connection == rhs.connection )
  42506. && ( window == rhs.window );
  42507. }
  42508. bool operator!=( XcbSurfaceCreateInfoKHR const& rhs ) const
  42509. {
  42510. return !operator==( rhs );
  42511. }
  42512. private:
  42513. StructureType sType = StructureType::eXcbSurfaceCreateInfoKHR;
  42514. public:
  42515. const void* pNext = nullptr;
  42516. XcbSurfaceCreateFlagsKHR flags;
  42517. xcb_connection_t* connection;
  42518. xcb_window_t window;
  42519. };
  42520. static_assert( sizeof( XcbSurfaceCreateInfoKHR ) == sizeof( VkXcbSurfaceCreateInfoKHR ), "struct and wrapper have different size!" );
  42521. #endif /*VK_USE_PLATFORM_XCB_KHR*/
  42522. #ifdef VK_USE_PLATFORM_XLIB_KHR
  42523. struct XlibSurfaceCreateInfoKHR
  42524. {
  42525. XlibSurfaceCreateInfoKHR( XlibSurfaceCreateFlagsKHR flags_ = XlibSurfaceCreateFlagsKHR(),
  42526. Display* dpy_ = nullptr,
  42527. Window window_ = 0 )
  42528. : flags( flags_ )
  42529. , dpy( dpy_ )
  42530. , window( window_ )
  42531. {}
  42532. XlibSurfaceCreateInfoKHR( VkXlibSurfaceCreateInfoKHR const & rhs )
  42533. {
  42534. *reinterpret_cast<VkXlibSurfaceCreateInfoKHR*>(this) = rhs;
  42535. }
  42536. XlibSurfaceCreateInfoKHR& operator=( VkXlibSurfaceCreateInfoKHR const & rhs )
  42537. {
  42538. *reinterpret_cast<VkXlibSurfaceCreateInfoKHR*>(this) = rhs;
  42539. return *this;
  42540. }
  42541. XlibSurfaceCreateInfoKHR & setPNext( const void* pNext_ )
  42542. {
  42543. pNext = pNext_;
  42544. return *this;
  42545. }
  42546. XlibSurfaceCreateInfoKHR & setFlags( XlibSurfaceCreateFlagsKHR flags_ )
  42547. {
  42548. flags = flags_;
  42549. return *this;
  42550. }
  42551. XlibSurfaceCreateInfoKHR & setDpy( Display* dpy_ )
  42552. {
  42553. dpy = dpy_;
  42554. return *this;
  42555. }
  42556. XlibSurfaceCreateInfoKHR & setWindow( Window window_ )
  42557. {
  42558. window = window_;
  42559. return *this;
  42560. }
  42561. operator VkXlibSurfaceCreateInfoKHR const&() const
  42562. {
  42563. return *reinterpret_cast<const VkXlibSurfaceCreateInfoKHR*>( this );
  42564. }
  42565. operator VkXlibSurfaceCreateInfoKHR &()
  42566. {
  42567. return *reinterpret_cast<VkXlibSurfaceCreateInfoKHR*>( this );
  42568. }
  42569. bool operator==( XlibSurfaceCreateInfoKHR const& rhs ) const
  42570. {
  42571. return ( sType == rhs.sType )
  42572. && ( pNext == rhs.pNext )
  42573. && ( flags == rhs.flags )
  42574. && ( dpy == rhs.dpy )
  42575. && ( window == rhs.window );
  42576. }
  42577. bool operator!=( XlibSurfaceCreateInfoKHR const& rhs ) const
  42578. {
  42579. return !operator==( rhs );
  42580. }
  42581. private:
  42582. StructureType sType = StructureType::eXlibSurfaceCreateInfoKHR;
  42583. public:
  42584. const void* pNext = nullptr;
  42585. XlibSurfaceCreateFlagsKHR flags;
  42586. Display* dpy;
  42587. Window window;
  42588. };
  42589. static_assert( sizeof( XlibSurfaceCreateInfoKHR ) == sizeof( VkXlibSurfaceCreateInfoKHR ), "struct and wrapper have different size!" );
  42590. #endif /*VK_USE_PLATFORM_XLIB_KHR*/
  42591. template<typename Dispatch>
  42592. VULKAN_HPP_INLINE Result createInstance( const InstanceCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, Instance* pInstance, Dispatch const &d)
  42593. {
  42594. return static_cast<Result>( d.vkCreateInstance( reinterpret_cast<const VkInstanceCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkInstance*>( pInstance ) ) );
  42595. }
  42596. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  42597. template<typename Dispatch>
  42598. VULKAN_HPP_INLINE ResultValueType<Instance>::type createInstance( const InstanceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d )
  42599. {
  42600. Instance instance;
  42601. Result result = static_cast<Result>( d.vkCreateInstance( reinterpret_cast<const VkInstanceCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkInstance*>( &instance ) ) );
  42602. return createResultValue( result, instance, VULKAN_HPP_NAMESPACE_STRING"::createInstance" );
  42603. }
  42604. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  42605. template<typename Dispatch>
  42606. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Instance,Dispatch>>::type createInstanceUnique( const InstanceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d )
  42607. {
  42608. Instance instance;
  42609. Result result = static_cast<Result>( d.vkCreateInstance( reinterpret_cast<const VkInstanceCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkInstance*>( &instance ) ) );
  42610. ObjectDestroy<NoParent,Dispatch> deleter( allocator, d );
  42611. return createResultValue<Instance,Dispatch>( result, instance, VULKAN_HPP_NAMESPACE_STRING"::createInstanceUnique", deleter );
  42612. }
  42613. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  42614. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  42615. template<typename Dispatch>
  42616. VULKAN_HPP_INLINE Result enumerateInstanceExtensionProperties( const char* pLayerName, uint32_t* pPropertyCount, ExtensionProperties* pProperties, Dispatch const &d)
  42617. {
  42618. return static_cast<Result>( d.vkEnumerateInstanceExtensionProperties( pLayerName, pPropertyCount, reinterpret_cast<VkExtensionProperties*>( pProperties ) ) );
  42619. }
  42620. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  42621. template<typename Allocator, typename Dispatch>
  42622. VULKAN_HPP_INLINE typename ResultValueType<std::vector<ExtensionProperties,Allocator>>::type enumerateInstanceExtensionProperties( Optional<const std::string> layerName, Dispatch const &d )
  42623. {
  42624. std::vector<ExtensionProperties,Allocator> properties;
  42625. uint32_t propertyCount;
  42626. Result result;
  42627. do
  42628. {
  42629. result = static_cast<Result>( d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) );
  42630. if ( ( result == Result::eSuccess ) && propertyCount )
  42631. {
  42632. properties.resize( propertyCount );
  42633. result = static_cast<Result>( d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast<VkExtensionProperties*>( properties.data() ) ) );
  42634. }
  42635. } while ( result == Result::eIncomplete );
  42636. if ( result == Result::eSuccess )
  42637. {
  42638. VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
  42639. properties.resize( propertyCount );
  42640. }
  42641. return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::enumerateInstanceExtensionProperties" );
  42642. }
  42643. template<typename Allocator, typename Dispatch>
  42644. VULKAN_HPP_INLINE typename ResultValueType<std::vector<ExtensionProperties,Allocator>>::type enumerateInstanceExtensionProperties( Optional<const std::string> layerName, Allocator const& vectorAllocator, Dispatch const &d )
  42645. {
  42646. std::vector<ExtensionProperties,Allocator> properties( vectorAllocator );
  42647. uint32_t propertyCount;
  42648. Result result;
  42649. do
  42650. {
  42651. result = static_cast<Result>( d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) );
  42652. if ( ( result == Result::eSuccess ) && propertyCount )
  42653. {
  42654. properties.resize( propertyCount );
  42655. result = static_cast<Result>( d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast<VkExtensionProperties*>( properties.data() ) ) );
  42656. }
  42657. } while ( result == Result::eIncomplete );
  42658. if ( result == Result::eSuccess )
  42659. {
  42660. VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
  42661. properties.resize( propertyCount );
  42662. }
  42663. return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::enumerateInstanceExtensionProperties" );
  42664. }
  42665. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  42666. template<typename Dispatch>
  42667. VULKAN_HPP_INLINE Result enumerateInstanceLayerProperties( uint32_t* pPropertyCount, LayerProperties* pProperties, Dispatch const &d)
  42668. {
  42669. return static_cast<Result>( d.vkEnumerateInstanceLayerProperties( pPropertyCount, reinterpret_cast<VkLayerProperties*>( pProperties ) ) );
  42670. }
  42671. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  42672. template<typename Allocator, typename Dispatch>
  42673. VULKAN_HPP_INLINE typename ResultValueType<std::vector<LayerProperties,Allocator>>::type enumerateInstanceLayerProperties(Dispatch const &d )
  42674. {
  42675. std::vector<LayerProperties,Allocator> properties;
  42676. uint32_t propertyCount;
  42677. Result result;
  42678. do
  42679. {
  42680. result = static_cast<Result>( d.vkEnumerateInstanceLayerProperties( &propertyCount, nullptr ) );
  42681. if ( ( result == Result::eSuccess ) && propertyCount )
  42682. {
  42683. properties.resize( propertyCount );
  42684. result = static_cast<Result>( d.vkEnumerateInstanceLayerProperties( &propertyCount, reinterpret_cast<VkLayerProperties*>( properties.data() ) ) );
  42685. }
  42686. } while ( result == Result::eIncomplete );
  42687. if ( result == Result::eSuccess )
  42688. {
  42689. VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
  42690. properties.resize( propertyCount );
  42691. }
  42692. return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::enumerateInstanceLayerProperties" );
  42693. }
  42694. template<typename Allocator, typename Dispatch>
  42695. VULKAN_HPP_INLINE typename ResultValueType<std::vector<LayerProperties,Allocator>>::type enumerateInstanceLayerProperties(Allocator const& vectorAllocator, Dispatch const &d )
  42696. {
  42697. std::vector<LayerProperties,Allocator> properties( vectorAllocator );
  42698. uint32_t propertyCount;
  42699. Result result;
  42700. do
  42701. {
  42702. result = static_cast<Result>( d.vkEnumerateInstanceLayerProperties( &propertyCount, nullptr ) );
  42703. if ( ( result == Result::eSuccess ) && propertyCount )
  42704. {
  42705. properties.resize( propertyCount );
  42706. result = static_cast<Result>( d.vkEnumerateInstanceLayerProperties( &propertyCount, reinterpret_cast<VkLayerProperties*>( properties.data() ) ) );
  42707. }
  42708. } while ( result == Result::eIncomplete );
  42709. if ( result == Result::eSuccess )
  42710. {
  42711. VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
  42712. properties.resize( propertyCount );
  42713. }
  42714. return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::enumerateInstanceLayerProperties" );
  42715. }
  42716. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  42717. template<typename Dispatch>
  42718. VULKAN_HPP_INLINE Result enumerateInstanceVersion( uint32_t* pApiVersion, Dispatch const &d)
  42719. {
  42720. return static_cast<Result>( d.vkEnumerateInstanceVersion( pApiVersion ) );
  42721. }
  42722. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  42723. template<typename Dispatch>
  42724. VULKAN_HPP_INLINE ResultValueType<uint32_t>::type enumerateInstanceVersion(Dispatch const &d )
  42725. {
  42726. uint32_t apiVersion;
  42727. Result result = static_cast<Result>( d.vkEnumerateInstanceVersion( &apiVersion ) );
  42728. return createResultValue( result, apiVersion, VULKAN_HPP_NAMESPACE_STRING"::enumerateInstanceVersion" );
  42729. }
  42730. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  42731. template<typename Dispatch>
  42732. VULKAN_HPP_INLINE Result CommandBuffer::begin( const CommandBufferBeginInfo* pBeginInfo, Dispatch const &d) const
  42733. {
  42734. return static_cast<Result>( d.vkBeginCommandBuffer( m_commandBuffer, reinterpret_cast<const VkCommandBufferBeginInfo*>( pBeginInfo ) ) );
  42735. }
  42736. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  42737. template<typename Dispatch>
  42738. VULKAN_HPP_INLINE ResultValueType<void>::type CommandBuffer::begin( const CommandBufferBeginInfo & beginInfo, Dispatch const &d ) const
  42739. {
  42740. Result result = static_cast<Result>( d.vkBeginCommandBuffer( m_commandBuffer, reinterpret_cast<const VkCommandBufferBeginInfo*>( &beginInfo ) ) );
  42741. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::CommandBuffer::begin" );
  42742. }
  42743. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  42744. template<typename Dispatch>
  42745. VULKAN_HPP_INLINE void CommandBuffer::beginConditionalRenderingEXT( const ConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin, Dispatch const &d) const
  42746. {
  42747. d.vkCmdBeginConditionalRenderingEXT( m_commandBuffer, reinterpret_cast<const VkConditionalRenderingBeginInfoEXT*>( pConditionalRenderingBegin ) );
  42748. }
  42749. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  42750. template<typename Dispatch>
  42751. VULKAN_HPP_INLINE void CommandBuffer::beginConditionalRenderingEXT( const ConditionalRenderingBeginInfoEXT & conditionalRenderingBegin, Dispatch const &d ) const
  42752. {
  42753. d.vkCmdBeginConditionalRenderingEXT( m_commandBuffer, reinterpret_cast<const VkConditionalRenderingBeginInfoEXT*>( &conditionalRenderingBegin ) );
  42754. }
  42755. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  42756. template<typename Dispatch>
  42757. VULKAN_HPP_INLINE void CommandBuffer::beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT* pLabelInfo, Dispatch const &d) const
  42758. {
  42759. d.vkCmdBeginDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast<const VkDebugUtilsLabelEXT*>( pLabelInfo ) );
  42760. }
  42761. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  42762. template<typename Dispatch>
  42763. VULKAN_HPP_INLINE void CommandBuffer::beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const &d ) const
  42764. {
  42765. d.vkCmdBeginDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast<const VkDebugUtilsLabelEXT*>( &labelInfo ) );
  42766. }
  42767. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  42768. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  42769. template<typename Dispatch>
  42770. VULKAN_HPP_INLINE void CommandBuffer::beginQuery( QueryPool queryPool, uint32_t query, QueryControlFlags flags, Dispatch const &d) const
  42771. {
  42772. d.vkCmdBeginQuery( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), query, static_cast<VkQueryControlFlags>( flags ) );
  42773. }
  42774. #else
  42775. template<typename Dispatch>
  42776. VULKAN_HPP_INLINE void CommandBuffer::beginQuery( QueryPool queryPool, uint32_t query, QueryControlFlags flags, Dispatch const &d ) const
  42777. {
  42778. d.vkCmdBeginQuery( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), query, static_cast<VkQueryControlFlags>( flags ) );
  42779. }
  42780. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  42781. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  42782. template<typename Dispatch>
  42783. VULKAN_HPP_INLINE void CommandBuffer::beginQueryIndexedEXT( QueryPool queryPool, uint32_t query, QueryControlFlags flags, uint32_t index, Dispatch const &d) const
  42784. {
  42785. d.vkCmdBeginQueryIndexedEXT( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), query, static_cast<VkQueryControlFlags>( flags ), index );
  42786. }
  42787. #else
  42788. template<typename Dispatch>
  42789. VULKAN_HPP_INLINE void CommandBuffer::beginQueryIndexedEXT( QueryPool queryPool, uint32_t query, QueryControlFlags flags, uint32_t index, Dispatch const &d ) const
  42790. {
  42791. d.vkCmdBeginQueryIndexedEXT( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), query, static_cast<VkQueryControlFlags>( flags ), index );
  42792. }
  42793. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  42794. template<typename Dispatch>
  42795. VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass( const RenderPassBeginInfo* pRenderPassBegin, SubpassContents contents, Dispatch const &d) const
  42796. {
  42797. d.vkCmdBeginRenderPass( m_commandBuffer, reinterpret_cast<const VkRenderPassBeginInfo*>( pRenderPassBegin ), static_cast<VkSubpassContents>( contents ) );
  42798. }
  42799. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  42800. template<typename Dispatch>
  42801. VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass( const RenderPassBeginInfo & renderPassBegin, SubpassContents contents, Dispatch const &d ) const
  42802. {
  42803. d.vkCmdBeginRenderPass( m_commandBuffer, reinterpret_cast<const VkRenderPassBeginInfo*>( &renderPassBegin ), static_cast<VkSubpassContents>( contents ) );
  42804. }
  42805. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  42806. template<typename Dispatch>
  42807. VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass2KHR( const RenderPassBeginInfo* pRenderPassBegin, const SubpassBeginInfoKHR* pSubpassBeginInfo, Dispatch const &d) const
  42808. {
  42809. d.vkCmdBeginRenderPass2KHR( m_commandBuffer, reinterpret_cast<const VkRenderPassBeginInfo*>( pRenderPassBegin ), reinterpret_cast<const VkSubpassBeginInfoKHR*>( pSubpassBeginInfo ) );
  42810. }
  42811. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  42812. template<typename Dispatch>
  42813. VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass2KHR( const RenderPassBeginInfo & renderPassBegin, const SubpassBeginInfoKHR & subpassBeginInfo, Dispatch const &d ) const
  42814. {
  42815. d.vkCmdBeginRenderPass2KHR( m_commandBuffer, reinterpret_cast<const VkRenderPassBeginInfo*>( &renderPassBegin ), reinterpret_cast<const VkSubpassBeginInfoKHR*>( &subpassBeginInfo ) );
  42816. }
  42817. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  42818. template<typename Dispatch>
  42819. VULKAN_HPP_INLINE void CommandBuffer::beginTransformFeedbackEXT( uint32_t firstCounterBuffer, uint32_t counterBufferCount, const Buffer* pCounterBuffers, const DeviceSize* pCounterBufferOffsets, Dispatch const &d) const
  42820. {
  42821. d.vkCmdBeginTransformFeedbackEXT( m_commandBuffer, firstCounterBuffer, counterBufferCount, reinterpret_cast<const VkBuffer*>( pCounterBuffers ), reinterpret_cast<const VkDeviceSize*>( pCounterBufferOffsets ) );
  42822. }
  42823. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  42824. template<typename Dispatch>
  42825. VULKAN_HPP_INLINE void CommandBuffer::beginTransformFeedbackEXT( uint32_t firstCounterBuffer, ArrayProxy<const Buffer> counterBuffers, ArrayProxy<const DeviceSize> counterBufferOffsets, Dispatch const &d ) const
  42826. {
  42827. #ifdef VULKAN_HPP_NO_EXCEPTIONS
  42828. VULKAN_HPP_ASSERT( counterBuffers.size() == counterBufferOffsets.size() );
  42829. #else
  42830. if ( counterBuffers.size() != counterBufferOffsets.size() )
  42831. {
  42832. throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkCommandBuffer::beginTransformFeedbackEXT: counterBuffers.size() != counterBufferOffsets.size()" );
  42833. }
  42834. #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
  42835. d.vkCmdBeginTransformFeedbackEXT( m_commandBuffer, firstCounterBuffer, counterBuffers.size() , reinterpret_cast<const VkBuffer*>( counterBuffers.data() ), reinterpret_cast<const VkDeviceSize*>( counterBufferOffsets.data() ) );
  42836. }
  42837. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  42838. template<typename Dispatch>
  42839. VULKAN_HPP_INLINE void CommandBuffer::bindDescriptorSets( PipelineBindPoint pipelineBindPoint, PipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const DescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets, Dispatch const &d) const
  42840. {
  42841. d.vkCmdBindDescriptorSets( m_commandBuffer, static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipelineLayout>( layout ), firstSet, descriptorSetCount, reinterpret_cast<const VkDescriptorSet*>( pDescriptorSets ), dynamicOffsetCount, pDynamicOffsets );
  42842. }
  42843. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  42844. template<typename Dispatch>
  42845. VULKAN_HPP_INLINE void CommandBuffer::bindDescriptorSets( PipelineBindPoint pipelineBindPoint, PipelineLayout layout, uint32_t firstSet, ArrayProxy<const DescriptorSet> descriptorSets, ArrayProxy<const uint32_t> dynamicOffsets, Dispatch const &d ) const
  42846. {
  42847. d.vkCmdBindDescriptorSets( m_commandBuffer, static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipelineLayout>( layout ), firstSet, descriptorSets.size() , reinterpret_cast<const VkDescriptorSet*>( descriptorSets.data() ), dynamicOffsets.size() , dynamicOffsets.data() );
  42848. }
  42849. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  42850. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  42851. template<typename Dispatch>
  42852. VULKAN_HPP_INLINE void CommandBuffer::bindIndexBuffer( Buffer buffer, DeviceSize offset, IndexType indexType, Dispatch const &d) const
  42853. {
  42854. d.vkCmdBindIndexBuffer( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkIndexType>( indexType ) );
  42855. }
  42856. #else
  42857. template<typename Dispatch>
  42858. VULKAN_HPP_INLINE void CommandBuffer::bindIndexBuffer( Buffer buffer, DeviceSize offset, IndexType indexType, Dispatch const &d ) const
  42859. {
  42860. d.vkCmdBindIndexBuffer( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkIndexType>( indexType ) );
  42861. }
  42862. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  42863. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  42864. template<typename Dispatch>
  42865. VULKAN_HPP_INLINE void CommandBuffer::bindPipeline( PipelineBindPoint pipelineBindPoint, Pipeline pipeline, Dispatch const &d) const
  42866. {
  42867. d.vkCmdBindPipeline( m_commandBuffer, static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipeline>( pipeline ) );
  42868. }
  42869. #else
  42870. template<typename Dispatch>
  42871. VULKAN_HPP_INLINE void CommandBuffer::bindPipeline( PipelineBindPoint pipelineBindPoint, Pipeline pipeline, Dispatch const &d ) const
  42872. {
  42873. d.vkCmdBindPipeline( m_commandBuffer, static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipeline>( pipeline ) );
  42874. }
  42875. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  42876. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  42877. template<typename Dispatch>
  42878. VULKAN_HPP_INLINE void CommandBuffer::bindShadingRateImageNV( ImageView imageView, ImageLayout imageLayout, Dispatch const &d) const
  42879. {
  42880. d.vkCmdBindShadingRateImageNV( m_commandBuffer, static_cast<VkImageView>( imageView ), static_cast<VkImageLayout>( imageLayout ) );
  42881. }
  42882. #else
  42883. template<typename Dispatch>
  42884. VULKAN_HPP_INLINE void CommandBuffer::bindShadingRateImageNV( ImageView imageView, ImageLayout imageLayout, Dispatch const &d ) const
  42885. {
  42886. d.vkCmdBindShadingRateImageNV( m_commandBuffer, static_cast<VkImageView>( imageView ), static_cast<VkImageLayout>( imageLayout ) );
  42887. }
  42888. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  42889. template<typename Dispatch>
  42890. VULKAN_HPP_INLINE void CommandBuffer::bindTransformFeedbackBuffersEXT( uint32_t firstBinding, uint32_t bindingCount, const Buffer* pBuffers, const DeviceSize* pOffsets, const DeviceSize* pSizes, Dispatch const &d) const
  42891. {
  42892. d.vkCmdBindTransformFeedbackBuffersEXT( m_commandBuffer, firstBinding, bindingCount, reinterpret_cast<const VkBuffer*>( pBuffers ), reinterpret_cast<const VkDeviceSize*>( pOffsets ), reinterpret_cast<const VkDeviceSize*>( pSizes ) );
  42893. }
  42894. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  42895. template<typename Dispatch>
  42896. VULKAN_HPP_INLINE void CommandBuffer::bindTransformFeedbackBuffersEXT( uint32_t firstBinding, ArrayProxy<const Buffer> buffers, ArrayProxy<const DeviceSize> offsets, ArrayProxy<const DeviceSize> sizes, Dispatch const &d ) const
  42897. {
  42898. #ifdef VULKAN_HPP_NO_EXCEPTIONS
  42899. VULKAN_HPP_ASSERT( buffers.size() == offsets.size() );
  42900. #else
  42901. if ( buffers.size() != offsets.size() )
  42902. {
  42903. throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkCommandBuffer::bindTransformFeedbackBuffersEXT: buffers.size() != offsets.size()" );
  42904. }
  42905. #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
  42906. #ifdef VULKAN_HPP_NO_EXCEPTIONS
  42907. VULKAN_HPP_ASSERT( buffers.size() == sizes.size() );
  42908. #else
  42909. if ( buffers.size() != sizes.size() )
  42910. {
  42911. throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkCommandBuffer::bindTransformFeedbackBuffersEXT: buffers.size() != sizes.size()" );
  42912. }
  42913. #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
  42914. #ifdef VULKAN_HPP_NO_EXCEPTIONS
  42915. VULKAN_HPP_ASSERT( offsets.size() == sizes.size() );
  42916. #else
  42917. if ( offsets.size() != sizes.size() )
  42918. {
  42919. throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkCommandBuffer::bindTransformFeedbackBuffersEXT: offsets.size() != sizes.size()" );
  42920. }
  42921. #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
  42922. d.vkCmdBindTransformFeedbackBuffersEXT( m_commandBuffer, firstBinding, buffers.size() , reinterpret_cast<const VkBuffer*>( buffers.data() ), reinterpret_cast<const VkDeviceSize*>( offsets.data() ), reinterpret_cast<const VkDeviceSize*>( sizes.data() ) );
  42923. }
  42924. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  42925. template<typename Dispatch>
  42926. VULKAN_HPP_INLINE void CommandBuffer::bindVertexBuffers( uint32_t firstBinding, uint32_t bindingCount, const Buffer* pBuffers, const DeviceSize* pOffsets, Dispatch const &d) const
  42927. {
  42928. d.vkCmdBindVertexBuffers( m_commandBuffer, firstBinding, bindingCount, reinterpret_cast<const VkBuffer*>( pBuffers ), reinterpret_cast<const VkDeviceSize*>( pOffsets ) );
  42929. }
  42930. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  42931. template<typename Dispatch>
  42932. VULKAN_HPP_INLINE void CommandBuffer::bindVertexBuffers( uint32_t firstBinding, ArrayProxy<const Buffer> buffers, ArrayProxy<const DeviceSize> offsets, Dispatch const &d ) const
  42933. {
  42934. #ifdef VULKAN_HPP_NO_EXCEPTIONS
  42935. VULKAN_HPP_ASSERT( buffers.size() == offsets.size() );
  42936. #else
  42937. if ( buffers.size() != offsets.size() )
  42938. {
  42939. throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkCommandBuffer::bindVertexBuffers: buffers.size() != offsets.size()" );
  42940. }
  42941. #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
  42942. d.vkCmdBindVertexBuffers( m_commandBuffer, firstBinding, buffers.size() , reinterpret_cast<const VkBuffer*>( buffers.data() ), reinterpret_cast<const VkDeviceSize*>( offsets.data() ) );
  42943. }
  42944. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  42945. template<typename Dispatch>
  42946. VULKAN_HPP_INLINE void CommandBuffer::blitImage( Image srcImage, ImageLayout srcImageLayout, Image dstImage, ImageLayout dstImageLayout, uint32_t regionCount, const ImageBlit* pRegions, Filter filter, Dispatch const &d) const
  42947. {
  42948. d.vkCmdBlitImage( m_commandBuffer, static_cast<VkImage>( srcImage ), static_cast<VkImageLayout>( srcImageLayout ), static_cast<VkImage>( dstImage ), static_cast<VkImageLayout>( dstImageLayout ), regionCount, reinterpret_cast<const VkImageBlit*>( pRegions ), static_cast<VkFilter>( filter ) );
  42949. }
  42950. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  42951. template<typename Dispatch>
  42952. VULKAN_HPP_INLINE void CommandBuffer::blitImage( Image srcImage, ImageLayout srcImageLayout, Image dstImage, ImageLayout dstImageLayout, ArrayProxy<const ImageBlit> regions, Filter filter, Dispatch const &d ) const
  42953. {
  42954. d.vkCmdBlitImage( m_commandBuffer, static_cast<VkImage>( srcImage ), static_cast<VkImageLayout>( srcImageLayout ), static_cast<VkImage>( dstImage ), static_cast<VkImageLayout>( dstImageLayout ), regions.size() , reinterpret_cast<const VkImageBlit*>( regions.data() ), static_cast<VkFilter>( filter ) );
  42955. }
  42956. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  42957. template<typename Dispatch>
  42958. VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructureNV( const AccelerationStructureInfoNV* pInfo, Buffer instanceData, DeviceSize instanceOffset, Bool32 update, AccelerationStructureNV dst, AccelerationStructureNV src, Buffer scratch, DeviceSize scratchOffset, Dispatch const &d) const
  42959. {
  42960. d.vkCmdBuildAccelerationStructureNV( m_commandBuffer, reinterpret_cast<const VkAccelerationStructureInfoNV*>( pInfo ), static_cast<VkBuffer>( instanceData ), static_cast<VkDeviceSize>( instanceOffset ), static_cast<VkBool32>( update ), static_cast<VkAccelerationStructureNV>( dst ), static_cast<VkAccelerationStructureNV>( src ), static_cast<VkBuffer>( scratch ), static_cast<VkDeviceSize>( scratchOffset ) );
  42961. }
  42962. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  42963. template<typename Dispatch>
  42964. VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructureNV( const AccelerationStructureInfoNV & info, Buffer instanceData, DeviceSize instanceOffset, Bool32 update, AccelerationStructureNV dst, AccelerationStructureNV src, Buffer scratch, DeviceSize scratchOffset, Dispatch const &d ) const
  42965. {
  42966. d.vkCmdBuildAccelerationStructureNV( m_commandBuffer, reinterpret_cast<const VkAccelerationStructureInfoNV*>( &info ), static_cast<VkBuffer>( instanceData ), static_cast<VkDeviceSize>( instanceOffset ), static_cast<VkBool32>( update ), static_cast<VkAccelerationStructureNV>( dst ), static_cast<VkAccelerationStructureNV>( src ), static_cast<VkBuffer>( scratch ), static_cast<VkDeviceSize>( scratchOffset ) );
  42967. }
  42968. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  42969. template<typename Dispatch>
  42970. VULKAN_HPP_INLINE void CommandBuffer::clearAttachments( uint32_t attachmentCount, const ClearAttachment* pAttachments, uint32_t rectCount, const ClearRect* pRects, Dispatch const &d) const
  42971. {
  42972. d.vkCmdClearAttachments( m_commandBuffer, attachmentCount, reinterpret_cast<const VkClearAttachment*>( pAttachments ), rectCount, reinterpret_cast<const VkClearRect*>( pRects ) );
  42973. }
  42974. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  42975. template<typename Dispatch>
  42976. VULKAN_HPP_INLINE void CommandBuffer::clearAttachments( ArrayProxy<const ClearAttachment> attachments, ArrayProxy<const ClearRect> rects, Dispatch const &d ) const
  42977. {
  42978. d.vkCmdClearAttachments( m_commandBuffer, attachments.size() , reinterpret_cast<const VkClearAttachment*>( attachments.data() ), rects.size() , reinterpret_cast<const VkClearRect*>( rects.data() ) );
  42979. }
  42980. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  42981. template<typename Dispatch>
  42982. VULKAN_HPP_INLINE void CommandBuffer::clearColorImage( Image image, ImageLayout imageLayout, const ClearColorValue* pColor, uint32_t rangeCount, const ImageSubresourceRange* pRanges, Dispatch const &d) const
  42983. {
  42984. d.vkCmdClearColorImage( m_commandBuffer, static_cast<VkImage>( image ), static_cast<VkImageLayout>( imageLayout ), reinterpret_cast<const VkClearColorValue*>( pColor ), rangeCount, reinterpret_cast<const VkImageSubresourceRange*>( pRanges ) );
  42985. }
  42986. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  42987. template<typename Dispatch>
  42988. VULKAN_HPP_INLINE void CommandBuffer::clearColorImage( Image image, ImageLayout imageLayout, const ClearColorValue & color, ArrayProxy<const ImageSubresourceRange> ranges, Dispatch const &d ) const
  42989. {
  42990. d.vkCmdClearColorImage( m_commandBuffer, static_cast<VkImage>( image ), static_cast<VkImageLayout>( imageLayout ), reinterpret_cast<const VkClearColorValue*>( &color ), ranges.size() , reinterpret_cast<const VkImageSubresourceRange*>( ranges.data() ) );
  42991. }
  42992. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  42993. template<typename Dispatch>
  42994. VULKAN_HPP_INLINE void CommandBuffer::clearDepthStencilImage( Image image, ImageLayout imageLayout, const ClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const ImageSubresourceRange* pRanges, Dispatch const &d) const
  42995. {
  42996. d.vkCmdClearDepthStencilImage( m_commandBuffer, static_cast<VkImage>( image ), static_cast<VkImageLayout>( imageLayout ), reinterpret_cast<const VkClearDepthStencilValue*>( pDepthStencil ), rangeCount, reinterpret_cast<const VkImageSubresourceRange*>( pRanges ) );
  42997. }
  42998. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  42999. template<typename Dispatch>
  43000. VULKAN_HPP_INLINE void CommandBuffer::clearDepthStencilImage( Image image, ImageLayout imageLayout, const ClearDepthStencilValue & depthStencil, ArrayProxy<const ImageSubresourceRange> ranges, Dispatch const &d ) const
  43001. {
  43002. d.vkCmdClearDepthStencilImage( m_commandBuffer, static_cast<VkImage>( image ), static_cast<VkImageLayout>( imageLayout ), reinterpret_cast<const VkClearDepthStencilValue*>( &depthStencil ), ranges.size() , reinterpret_cast<const VkImageSubresourceRange*>( ranges.data() ) );
  43003. }
  43004. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43005. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43006. template<typename Dispatch>
  43007. VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureNV( AccelerationStructureNV dst, AccelerationStructureNV src, CopyAccelerationStructureModeNV mode, Dispatch const &d) const
  43008. {
  43009. d.vkCmdCopyAccelerationStructureNV( m_commandBuffer, static_cast<VkAccelerationStructureNV>( dst ), static_cast<VkAccelerationStructureNV>( src ), static_cast<VkCopyAccelerationStructureModeNV>( mode ) );
  43010. }
  43011. #else
  43012. template<typename Dispatch>
  43013. VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureNV( AccelerationStructureNV dst, AccelerationStructureNV src, CopyAccelerationStructureModeNV mode, Dispatch const &d ) const
  43014. {
  43015. d.vkCmdCopyAccelerationStructureNV( m_commandBuffer, static_cast<VkAccelerationStructureNV>( dst ), static_cast<VkAccelerationStructureNV>( src ), static_cast<VkCopyAccelerationStructureModeNV>( mode ) );
  43016. }
  43017. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43018. template<typename Dispatch>
  43019. VULKAN_HPP_INLINE void CommandBuffer::copyBuffer( Buffer srcBuffer, Buffer dstBuffer, uint32_t regionCount, const BufferCopy* pRegions, Dispatch const &d) const
  43020. {
  43021. d.vkCmdCopyBuffer( m_commandBuffer, static_cast<VkBuffer>( srcBuffer ), static_cast<VkBuffer>( dstBuffer ), regionCount, reinterpret_cast<const VkBufferCopy*>( pRegions ) );
  43022. }
  43023. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43024. template<typename Dispatch>
  43025. VULKAN_HPP_INLINE void CommandBuffer::copyBuffer( Buffer srcBuffer, Buffer dstBuffer, ArrayProxy<const BufferCopy> regions, Dispatch const &d ) const
  43026. {
  43027. d.vkCmdCopyBuffer( m_commandBuffer, static_cast<VkBuffer>( srcBuffer ), static_cast<VkBuffer>( dstBuffer ), regions.size() , reinterpret_cast<const VkBufferCopy*>( regions.data() ) );
  43028. }
  43029. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43030. template<typename Dispatch>
  43031. VULKAN_HPP_INLINE void CommandBuffer::copyBufferToImage( Buffer srcBuffer, Image dstImage, ImageLayout dstImageLayout, uint32_t regionCount, const BufferImageCopy* pRegions, Dispatch const &d) const
  43032. {
  43033. d.vkCmdCopyBufferToImage( m_commandBuffer, static_cast<VkBuffer>( srcBuffer ), static_cast<VkImage>( dstImage ), static_cast<VkImageLayout>( dstImageLayout ), regionCount, reinterpret_cast<const VkBufferImageCopy*>( pRegions ) );
  43034. }
  43035. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43036. template<typename Dispatch>
  43037. VULKAN_HPP_INLINE void CommandBuffer::copyBufferToImage( Buffer srcBuffer, Image dstImage, ImageLayout dstImageLayout, ArrayProxy<const BufferImageCopy> regions, Dispatch const &d ) const
  43038. {
  43039. d.vkCmdCopyBufferToImage( m_commandBuffer, static_cast<VkBuffer>( srcBuffer ), static_cast<VkImage>( dstImage ), static_cast<VkImageLayout>( dstImageLayout ), regions.size() , reinterpret_cast<const VkBufferImageCopy*>( regions.data() ) );
  43040. }
  43041. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43042. template<typename Dispatch>
  43043. VULKAN_HPP_INLINE void CommandBuffer::copyImage( Image srcImage, ImageLayout srcImageLayout, Image dstImage, ImageLayout dstImageLayout, uint32_t regionCount, const ImageCopy* pRegions, Dispatch const &d) const
  43044. {
  43045. d.vkCmdCopyImage( m_commandBuffer, static_cast<VkImage>( srcImage ), static_cast<VkImageLayout>( srcImageLayout ), static_cast<VkImage>( dstImage ), static_cast<VkImageLayout>( dstImageLayout ), regionCount, reinterpret_cast<const VkImageCopy*>( pRegions ) );
  43046. }
  43047. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43048. template<typename Dispatch>
  43049. VULKAN_HPP_INLINE void CommandBuffer::copyImage( Image srcImage, ImageLayout srcImageLayout, Image dstImage, ImageLayout dstImageLayout, ArrayProxy<const ImageCopy> regions, Dispatch const &d ) const
  43050. {
  43051. d.vkCmdCopyImage( m_commandBuffer, static_cast<VkImage>( srcImage ), static_cast<VkImageLayout>( srcImageLayout ), static_cast<VkImage>( dstImage ), static_cast<VkImageLayout>( dstImageLayout ), regions.size() , reinterpret_cast<const VkImageCopy*>( regions.data() ) );
  43052. }
  43053. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43054. template<typename Dispatch>
  43055. VULKAN_HPP_INLINE void CommandBuffer::copyImageToBuffer( Image srcImage, ImageLayout srcImageLayout, Buffer dstBuffer, uint32_t regionCount, const BufferImageCopy* pRegions, Dispatch const &d) const
  43056. {
  43057. d.vkCmdCopyImageToBuffer( m_commandBuffer, static_cast<VkImage>( srcImage ), static_cast<VkImageLayout>( srcImageLayout ), static_cast<VkBuffer>( dstBuffer ), regionCount, reinterpret_cast<const VkBufferImageCopy*>( pRegions ) );
  43058. }
  43059. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43060. template<typename Dispatch>
  43061. VULKAN_HPP_INLINE void CommandBuffer::copyImageToBuffer( Image srcImage, ImageLayout srcImageLayout, Buffer dstBuffer, ArrayProxy<const BufferImageCopy> regions, Dispatch const &d ) const
  43062. {
  43063. d.vkCmdCopyImageToBuffer( m_commandBuffer, static_cast<VkImage>( srcImage ), static_cast<VkImageLayout>( srcImageLayout ), static_cast<VkBuffer>( dstBuffer ), regions.size() , reinterpret_cast<const VkBufferImageCopy*>( regions.data() ) );
  43064. }
  43065. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43066. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43067. template<typename Dispatch>
  43068. VULKAN_HPP_INLINE void CommandBuffer::copyQueryPoolResults( QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Buffer dstBuffer, DeviceSize dstOffset, DeviceSize stride, QueryResultFlags flags, Dispatch const &d) const
  43069. {
  43070. d.vkCmdCopyQueryPoolResults( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount, static_cast<VkBuffer>( dstBuffer ), static_cast<VkDeviceSize>( dstOffset ), static_cast<VkDeviceSize>( stride ), static_cast<VkQueryResultFlags>( flags ) );
  43071. }
  43072. #else
  43073. template<typename Dispatch>
  43074. VULKAN_HPP_INLINE void CommandBuffer::copyQueryPoolResults( QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Buffer dstBuffer, DeviceSize dstOffset, DeviceSize stride, QueryResultFlags flags, Dispatch const &d ) const
  43075. {
  43076. d.vkCmdCopyQueryPoolResults( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount, static_cast<VkBuffer>( dstBuffer ), static_cast<VkDeviceSize>( dstOffset ), static_cast<VkDeviceSize>( stride ), static_cast<VkQueryResultFlags>( flags ) );
  43077. }
  43078. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43079. template<typename Dispatch>
  43080. VULKAN_HPP_INLINE void CommandBuffer::debugMarkerBeginEXT( const DebugMarkerMarkerInfoEXT* pMarkerInfo, Dispatch const &d) const
  43081. {
  43082. d.vkCmdDebugMarkerBeginEXT( m_commandBuffer, reinterpret_cast<const VkDebugMarkerMarkerInfoEXT*>( pMarkerInfo ) );
  43083. }
  43084. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43085. template<typename Dispatch>
  43086. VULKAN_HPP_INLINE void CommandBuffer::debugMarkerBeginEXT( const DebugMarkerMarkerInfoEXT & markerInfo, Dispatch const &d ) const
  43087. {
  43088. d.vkCmdDebugMarkerBeginEXT( m_commandBuffer, reinterpret_cast<const VkDebugMarkerMarkerInfoEXT*>( &markerInfo ) );
  43089. }
  43090. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43091. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43092. template<typename Dispatch>
  43093. VULKAN_HPP_INLINE void CommandBuffer::debugMarkerEndEXT(Dispatch const &d) const
  43094. {
  43095. d.vkCmdDebugMarkerEndEXT( m_commandBuffer );
  43096. }
  43097. #else
  43098. template<typename Dispatch>
  43099. VULKAN_HPP_INLINE void CommandBuffer::debugMarkerEndEXT(Dispatch const &d ) const
  43100. {
  43101. d.vkCmdDebugMarkerEndEXT( m_commandBuffer );
  43102. }
  43103. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43104. template<typename Dispatch>
  43105. VULKAN_HPP_INLINE void CommandBuffer::debugMarkerInsertEXT( const DebugMarkerMarkerInfoEXT* pMarkerInfo, Dispatch const &d) const
  43106. {
  43107. d.vkCmdDebugMarkerInsertEXT( m_commandBuffer, reinterpret_cast<const VkDebugMarkerMarkerInfoEXT*>( pMarkerInfo ) );
  43108. }
  43109. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43110. template<typename Dispatch>
  43111. VULKAN_HPP_INLINE void CommandBuffer::debugMarkerInsertEXT( const DebugMarkerMarkerInfoEXT & markerInfo, Dispatch const &d ) const
  43112. {
  43113. d.vkCmdDebugMarkerInsertEXT( m_commandBuffer, reinterpret_cast<const VkDebugMarkerMarkerInfoEXT*>( &markerInfo ) );
  43114. }
  43115. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43116. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43117. template<typename Dispatch>
  43118. VULKAN_HPP_INLINE void CommandBuffer::dispatch( uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const &d) const
  43119. {
  43120. d.vkCmdDispatch( m_commandBuffer, groupCountX, groupCountY, groupCountZ );
  43121. }
  43122. #else
  43123. template<typename Dispatch>
  43124. VULKAN_HPP_INLINE void CommandBuffer::dispatch( uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const &d ) const
  43125. {
  43126. d.vkCmdDispatch( m_commandBuffer, groupCountX, groupCountY, groupCountZ );
  43127. }
  43128. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43129. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43130. template<typename Dispatch>
  43131. VULKAN_HPP_INLINE void CommandBuffer::dispatchBase( uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const &d) const
  43132. {
  43133. d.vkCmdDispatchBase( m_commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ );
  43134. }
  43135. #else
  43136. template<typename Dispatch>
  43137. VULKAN_HPP_INLINE void CommandBuffer::dispatchBase( uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const &d ) const
  43138. {
  43139. d.vkCmdDispatchBase( m_commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ );
  43140. }
  43141. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43142. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43143. template<typename Dispatch>
  43144. VULKAN_HPP_INLINE void CommandBuffer::dispatchBaseKHR( uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const &d) const
  43145. {
  43146. d.vkCmdDispatchBaseKHR( m_commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ );
  43147. }
  43148. #else
  43149. template<typename Dispatch>
  43150. VULKAN_HPP_INLINE void CommandBuffer::dispatchBaseKHR( uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const &d ) const
  43151. {
  43152. d.vkCmdDispatchBaseKHR( m_commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ );
  43153. }
  43154. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43155. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43156. template<typename Dispatch>
  43157. VULKAN_HPP_INLINE void CommandBuffer::dispatchIndirect( Buffer buffer, DeviceSize offset, Dispatch const &d) const
  43158. {
  43159. d.vkCmdDispatchIndirect( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ) );
  43160. }
  43161. #else
  43162. template<typename Dispatch>
  43163. VULKAN_HPP_INLINE void CommandBuffer::dispatchIndirect( Buffer buffer, DeviceSize offset, Dispatch const &d ) const
  43164. {
  43165. d.vkCmdDispatchIndirect( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ) );
  43166. }
  43167. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43168. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43169. template<typename Dispatch>
  43170. VULKAN_HPP_INLINE void CommandBuffer::draw( uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance, Dispatch const &d) const
  43171. {
  43172. d.vkCmdDraw( m_commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance );
  43173. }
  43174. #else
  43175. template<typename Dispatch>
  43176. VULKAN_HPP_INLINE void CommandBuffer::draw( uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance, Dispatch const &d ) const
  43177. {
  43178. d.vkCmdDraw( m_commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance );
  43179. }
  43180. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43181. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43182. template<typename Dispatch>
  43183. VULKAN_HPP_INLINE void CommandBuffer::drawIndexed( uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance, Dispatch const &d) const
  43184. {
  43185. d.vkCmdDrawIndexed( m_commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance );
  43186. }
  43187. #else
  43188. template<typename Dispatch>
  43189. VULKAN_HPP_INLINE void CommandBuffer::drawIndexed( uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance, Dispatch const &d ) const
  43190. {
  43191. d.vkCmdDrawIndexed( m_commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance );
  43192. }
  43193. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43194. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43195. template<typename Dispatch>
  43196. VULKAN_HPP_INLINE void CommandBuffer::drawIndexedIndirect( Buffer buffer, DeviceSize offset, uint32_t drawCount, uint32_t stride, Dispatch const &d) const
  43197. {
  43198. d.vkCmdDrawIndexedIndirect( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), drawCount, stride );
  43199. }
  43200. #else
  43201. template<typename Dispatch>
  43202. VULKAN_HPP_INLINE void CommandBuffer::drawIndexedIndirect( Buffer buffer, DeviceSize offset, uint32_t drawCount, uint32_t stride, Dispatch const &d ) const
  43203. {
  43204. d.vkCmdDrawIndexedIndirect( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), drawCount, stride );
  43205. }
  43206. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43207. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43208. template<typename Dispatch>
  43209. VULKAN_HPP_INLINE void CommandBuffer::drawIndexedIndirectCountAMD( Buffer buffer, DeviceSize offset, Buffer countBuffer, DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const &d) const
  43210. {
  43211. d.vkCmdDrawIndexedIndirectCountAMD( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
  43212. }
  43213. #else
  43214. template<typename Dispatch>
  43215. VULKAN_HPP_INLINE void CommandBuffer::drawIndexedIndirectCountAMD( Buffer buffer, DeviceSize offset, Buffer countBuffer, DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const &d ) const
  43216. {
  43217. d.vkCmdDrawIndexedIndirectCountAMD( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
  43218. }
  43219. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43220. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43221. template<typename Dispatch>
  43222. VULKAN_HPP_INLINE void CommandBuffer::drawIndexedIndirectCountKHR( Buffer buffer, DeviceSize offset, Buffer countBuffer, DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const &d) const
  43223. {
  43224. d.vkCmdDrawIndexedIndirectCountKHR( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
  43225. }
  43226. #else
  43227. template<typename Dispatch>
  43228. VULKAN_HPP_INLINE void CommandBuffer::drawIndexedIndirectCountKHR( Buffer buffer, DeviceSize offset, Buffer countBuffer, DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const &d ) const
  43229. {
  43230. d.vkCmdDrawIndexedIndirectCountKHR( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
  43231. }
  43232. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43233. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43234. template<typename Dispatch>
  43235. VULKAN_HPP_INLINE void CommandBuffer::drawIndirect( Buffer buffer, DeviceSize offset, uint32_t drawCount, uint32_t stride, Dispatch const &d) const
  43236. {
  43237. d.vkCmdDrawIndirect( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), drawCount, stride );
  43238. }
  43239. #else
  43240. template<typename Dispatch>
  43241. VULKAN_HPP_INLINE void CommandBuffer::drawIndirect( Buffer buffer, DeviceSize offset, uint32_t drawCount, uint32_t stride, Dispatch const &d ) const
  43242. {
  43243. d.vkCmdDrawIndirect( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), drawCount, stride );
  43244. }
  43245. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43246. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43247. template<typename Dispatch>
  43248. VULKAN_HPP_INLINE void CommandBuffer::drawIndirectByteCountEXT( uint32_t instanceCount, uint32_t firstInstance, Buffer counterBuffer, DeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride, Dispatch const &d) const
  43249. {
  43250. d.vkCmdDrawIndirectByteCountEXT( m_commandBuffer, instanceCount, firstInstance, static_cast<VkBuffer>( counterBuffer ), static_cast<VkDeviceSize>( counterBufferOffset ), counterOffset, vertexStride );
  43251. }
  43252. #else
  43253. template<typename Dispatch>
  43254. VULKAN_HPP_INLINE void CommandBuffer::drawIndirectByteCountEXT( uint32_t instanceCount, uint32_t firstInstance, Buffer counterBuffer, DeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride, Dispatch const &d ) const
  43255. {
  43256. d.vkCmdDrawIndirectByteCountEXT( m_commandBuffer, instanceCount, firstInstance, static_cast<VkBuffer>( counterBuffer ), static_cast<VkDeviceSize>( counterBufferOffset ), counterOffset, vertexStride );
  43257. }
  43258. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43259. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43260. template<typename Dispatch>
  43261. VULKAN_HPP_INLINE void CommandBuffer::drawIndirectCountAMD( Buffer buffer, DeviceSize offset, Buffer countBuffer, DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const &d) const
  43262. {
  43263. d.vkCmdDrawIndirectCountAMD( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
  43264. }
  43265. #else
  43266. template<typename Dispatch>
  43267. VULKAN_HPP_INLINE void CommandBuffer::drawIndirectCountAMD( Buffer buffer, DeviceSize offset, Buffer countBuffer, DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const &d ) const
  43268. {
  43269. d.vkCmdDrawIndirectCountAMD( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
  43270. }
  43271. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43272. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43273. template<typename Dispatch>
  43274. VULKAN_HPP_INLINE void CommandBuffer::drawIndirectCountKHR( Buffer buffer, DeviceSize offset, Buffer countBuffer, DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const &d) const
  43275. {
  43276. d.vkCmdDrawIndirectCountKHR( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
  43277. }
  43278. #else
  43279. template<typename Dispatch>
  43280. VULKAN_HPP_INLINE void CommandBuffer::drawIndirectCountKHR( Buffer buffer, DeviceSize offset, Buffer countBuffer, DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const &d ) const
  43281. {
  43282. d.vkCmdDrawIndirectCountKHR( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
  43283. }
  43284. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43285. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43286. template<typename Dispatch>
  43287. VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksIndirectCountNV( Buffer buffer, DeviceSize offset, Buffer countBuffer, DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const &d) const
  43288. {
  43289. d.vkCmdDrawMeshTasksIndirectCountNV( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
  43290. }
  43291. #else
  43292. template<typename Dispatch>
  43293. VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksIndirectCountNV( Buffer buffer, DeviceSize offset, Buffer countBuffer, DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const &d ) const
  43294. {
  43295. d.vkCmdDrawMeshTasksIndirectCountNV( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), static_cast<VkBuffer>( countBuffer ), static_cast<VkDeviceSize>( countBufferOffset ), maxDrawCount, stride );
  43296. }
  43297. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43298. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43299. template<typename Dispatch>
  43300. VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksIndirectNV( Buffer buffer, DeviceSize offset, uint32_t drawCount, uint32_t stride, Dispatch const &d) const
  43301. {
  43302. d.vkCmdDrawMeshTasksIndirectNV( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), drawCount, stride );
  43303. }
  43304. #else
  43305. template<typename Dispatch>
  43306. VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksIndirectNV( Buffer buffer, DeviceSize offset, uint32_t drawCount, uint32_t stride, Dispatch const &d ) const
  43307. {
  43308. d.vkCmdDrawMeshTasksIndirectNV( m_commandBuffer, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), drawCount, stride );
  43309. }
  43310. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43311. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43312. template<typename Dispatch>
  43313. VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksNV( uint32_t taskCount, uint32_t firstTask, Dispatch const &d) const
  43314. {
  43315. d.vkCmdDrawMeshTasksNV( m_commandBuffer, taskCount, firstTask );
  43316. }
  43317. #else
  43318. template<typename Dispatch>
  43319. VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksNV( uint32_t taskCount, uint32_t firstTask, Dispatch const &d ) const
  43320. {
  43321. d.vkCmdDrawMeshTasksNV( m_commandBuffer, taskCount, firstTask );
  43322. }
  43323. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43324. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43325. template<typename Dispatch>
  43326. VULKAN_HPP_INLINE void CommandBuffer::endConditionalRenderingEXT(Dispatch const &d) const
  43327. {
  43328. d.vkCmdEndConditionalRenderingEXT( m_commandBuffer );
  43329. }
  43330. #else
  43331. template<typename Dispatch>
  43332. VULKAN_HPP_INLINE void CommandBuffer::endConditionalRenderingEXT(Dispatch const &d ) const
  43333. {
  43334. d.vkCmdEndConditionalRenderingEXT( m_commandBuffer );
  43335. }
  43336. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43337. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43338. template<typename Dispatch>
  43339. VULKAN_HPP_INLINE void CommandBuffer::endDebugUtilsLabelEXT(Dispatch const &d) const
  43340. {
  43341. d.vkCmdEndDebugUtilsLabelEXT( m_commandBuffer );
  43342. }
  43343. #else
  43344. template<typename Dispatch>
  43345. VULKAN_HPP_INLINE void CommandBuffer::endDebugUtilsLabelEXT(Dispatch const &d ) const
  43346. {
  43347. d.vkCmdEndDebugUtilsLabelEXT( m_commandBuffer );
  43348. }
  43349. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43350. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43351. template<typename Dispatch>
  43352. VULKAN_HPP_INLINE void CommandBuffer::endQuery( QueryPool queryPool, uint32_t query, Dispatch const &d) const
  43353. {
  43354. d.vkCmdEndQuery( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), query );
  43355. }
  43356. #else
  43357. template<typename Dispatch>
  43358. VULKAN_HPP_INLINE void CommandBuffer::endQuery( QueryPool queryPool, uint32_t query, Dispatch const &d ) const
  43359. {
  43360. d.vkCmdEndQuery( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), query );
  43361. }
  43362. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43363. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43364. template<typename Dispatch>
  43365. VULKAN_HPP_INLINE void CommandBuffer::endQueryIndexedEXT( QueryPool queryPool, uint32_t query, uint32_t index, Dispatch const &d) const
  43366. {
  43367. d.vkCmdEndQueryIndexedEXT( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), query, index );
  43368. }
  43369. #else
  43370. template<typename Dispatch>
  43371. VULKAN_HPP_INLINE void CommandBuffer::endQueryIndexedEXT( QueryPool queryPool, uint32_t query, uint32_t index, Dispatch const &d ) const
  43372. {
  43373. d.vkCmdEndQueryIndexedEXT( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), query, index );
  43374. }
  43375. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43376. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43377. template<typename Dispatch>
  43378. VULKAN_HPP_INLINE void CommandBuffer::endRenderPass(Dispatch const &d) const
  43379. {
  43380. d.vkCmdEndRenderPass( m_commandBuffer );
  43381. }
  43382. #else
  43383. template<typename Dispatch>
  43384. VULKAN_HPP_INLINE void CommandBuffer::endRenderPass(Dispatch const &d ) const
  43385. {
  43386. d.vkCmdEndRenderPass( m_commandBuffer );
  43387. }
  43388. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43389. template<typename Dispatch>
  43390. VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2KHR( const SubpassEndInfoKHR* pSubpassEndInfo, Dispatch const &d) const
  43391. {
  43392. d.vkCmdEndRenderPass2KHR( m_commandBuffer, reinterpret_cast<const VkSubpassEndInfoKHR*>( pSubpassEndInfo ) );
  43393. }
  43394. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43395. template<typename Dispatch>
  43396. VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2KHR( const SubpassEndInfoKHR & subpassEndInfo, Dispatch const &d ) const
  43397. {
  43398. d.vkCmdEndRenderPass2KHR( m_commandBuffer, reinterpret_cast<const VkSubpassEndInfoKHR*>( &subpassEndInfo ) );
  43399. }
  43400. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43401. template<typename Dispatch>
  43402. VULKAN_HPP_INLINE void CommandBuffer::endTransformFeedbackEXT( uint32_t firstCounterBuffer, uint32_t counterBufferCount, const Buffer* pCounterBuffers, const DeviceSize* pCounterBufferOffsets, Dispatch const &d) const
  43403. {
  43404. d.vkCmdEndTransformFeedbackEXT( m_commandBuffer, firstCounterBuffer, counterBufferCount, reinterpret_cast<const VkBuffer*>( pCounterBuffers ), reinterpret_cast<const VkDeviceSize*>( pCounterBufferOffsets ) );
  43405. }
  43406. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43407. template<typename Dispatch>
  43408. VULKAN_HPP_INLINE void CommandBuffer::endTransformFeedbackEXT( uint32_t firstCounterBuffer, ArrayProxy<const Buffer> counterBuffers, ArrayProxy<const DeviceSize> counterBufferOffsets, Dispatch const &d ) const
  43409. {
  43410. #ifdef VULKAN_HPP_NO_EXCEPTIONS
  43411. VULKAN_HPP_ASSERT( counterBuffers.size() == counterBufferOffsets.size() );
  43412. #else
  43413. if ( counterBuffers.size() != counterBufferOffsets.size() )
  43414. {
  43415. throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkCommandBuffer::endTransformFeedbackEXT: counterBuffers.size() != counterBufferOffsets.size()" );
  43416. }
  43417. #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
  43418. d.vkCmdEndTransformFeedbackEXT( m_commandBuffer, firstCounterBuffer, counterBuffers.size() , reinterpret_cast<const VkBuffer*>( counterBuffers.data() ), reinterpret_cast<const VkDeviceSize*>( counterBufferOffsets.data() ) );
  43419. }
  43420. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43421. template<typename Dispatch>
  43422. VULKAN_HPP_INLINE void CommandBuffer::executeCommands( uint32_t commandBufferCount, const CommandBuffer* pCommandBuffers, Dispatch const &d) const
  43423. {
  43424. d.vkCmdExecuteCommands( m_commandBuffer, commandBufferCount, reinterpret_cast<const VkCommandBuffer*>( pCommandBuffers ) );
  43425. }
  43426. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43427. template<typename Dispatch>
  43428. VULKAN_HPP_INLINE void CommandBuffer::executeCommands( ArrayProxy<const CommandBuffer> commandBuffers, Dispatch const &d ) const
  43429. {
  43430. d.vkCmdExecuteCommands( m_commandBuffer, commandBuffers.size() , reinterpret_cast<const VkCommandBuffer*>( commandBuffers.data() ) );
  43431. }
  43432. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43433. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43434. template<typename Dispatch>
  43435. VULKAN_HPP_INLINE void CommandBuffer::fillBuffer( Buffer dstBuffer, DeviceSize dstOffset, DeviceSize size, uint32_t data, Dispatch const &d) const
  43436. {
  43437. d.vkCmdFillBuffer( m_commandBuffer, static_cast<VkBuffer>( dstBuffer ), static_cast<VkDeviceSize>( dstOffset ), static_cast<VkDeviceSize>( size ), data );
  43438. }
  43439. #else
  43440. template<typename Dispatch>
  43441. VULKAN_HPP_INLINE void CommandBuffer::fillBuffer( Buffer dstBuffer, DeviceSize dstOffset, DeviceSize size, uint32_t data, Dispatch const &d ) const
  43442. {
  43443. d.vkCmdFillBuffer( m_commandBuffer, static_cast<VkBuffer>( dstBuffer ), static_cast<VkDeviceSize>( dstOffset ), static_cast<VkDeviceSize>( size ), data );
  43444. }
  43445. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43446. template<typename Dispatch>
  43447. VULKAN_HPP_INLINE void CommandBuffer::insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT* pLabelInfo, Dispatch const &d) const
  43448. {
  43449. d.vkCmdInsertDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast<const VkDebugUtilsLabelEXT*>( pLabelInfo ) );
  43450. }
  43451. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43452. template<typename Dispatch>
  43453. VULKAN_HPP_INLINE void CommandBuffer::insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const &d ) const
  43454. {
  43455. d.vkCmdInsertDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast<const VkDebugUtilsLabelEXT*>( &labelInfo ) );
  43456. }
  43457. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43458. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43459. template<typename Dispatch>
  43460. VULKAN_HPP_INLINE void CommandBuffer::nextSubpass( SubpassContents contents, Dispatch const &d) const
  43461. {
  43462. d.vkCmdNextSubpass( m_commandBuffer, static_cast<VkSubpassContents>( contents ) );
  43463. }
  43464. #else
  43465. template<typename Dispatch>
  43466. VULKAN_HPP_INLINE void CommandBuffer::nextSubpass( SubpassContents contents, Dispatch const &d ) const
  43467. {
  43468. d.vkCmdNextSubpass( m_commandBuffer, static_cast<VkSubpassContents>( contents ) );
  43469. }
  43470. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43471. template<typename Dispatch>
  43472. VULKAN_HPP_INLINE void CommandBuffer::nextSubpass2KHR( const SubpassBeginInfoKHR* pSubpassBeginInfo, const SubpassEndInfoKHR* pSubpassEndInfo, Dispatch const &d) const
  43473. {
  43474. d.vkCmdNextSubpass2KHR( m_commandBuffer, reinterpret_cast<const VkSubpassBeginInfoKHR*>( pSubpassBeginInfo ), reinterpret_cast<const VkSubpassEndInfoKHR*>( pSubpassEndInfo ) );
  43475. }
  43476. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43477. template<typename Dispatch>
  43478. VULKAN_HPP_INLINE void CommandBuffer::nextSubpass2KHR( const SubpassBeginInfoKHR & subpassBeginInfo, const SubpassEndInfoKHR & subpassEndInfo, Dispatch const &d ) const
  43479. {
  43480. d.vkCmdNextSubpass2KHR( m_commandBuffer, reinterpret_cast<const VkSubpassBeginInfoKHR*>( &subpassBeginInfo ), reinterpret_cast<const VkSubpassEndInfoKHR*>( &subpassEndInfo ) );
  43481. }
  43482. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43483. template<typename Dispatch>
  43484. VULKAN_HPP_INLINE void CommandBuffer::pipelineBarrier( PipelineStageFlags srcStageMask, PipelineStageFlags dstStageMask, DependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const MemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const BufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const ImageMemoryBarrier* pImageMemoryBarriers, Dispatch const &d) const
  43485. {
  43486. d.vkCmdPipelineBarrier( m_commandBuffer, static_cast<VkPipelineStageFlags>( srcStageMask ), static_cast<VkPipelineStageFlags>( dstStageMask ), static_cast<VkDependencyFlags>( dependencyFlags ), memoryBarrierCount, reinterpret_cast<const VkMemoryBarrier*>( pMemoryBarriers ), bufferMemoryBarrierCount, reinterpret_cast<const VkBufferMemoryBarrier*>( pBufferMemoryBarriers ), imageMemoryBarrierCount, reinterpret_cast<const VkImageMemoryBarrier*>( pImageMemoryBarriers ) );
  43487. }
  43488. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43489. template<typename Dispatch>
  43490. VULKAN_HPP_INLINE void CommandBuffer::pipelineBarrier( PipelineStageFlags srcStageMask, PipelineStageFlags dstStageMask, DependencyFlags dependencyFlags, ArrayProxy<const MemoryBarrier> memoryBarriers, ArrayProxy<const BufferMemoryBarrier> bufferMemoryBarriers, ArrayProxy<const ImageMemoryBarrier> imageMemoryBarriers, Dispatch const &d ) const
  43491. {
  43492. d.vkCmdPipelineBarrier( m_commandBuffer, static_cast<VkPipelineStageFlags>( srcStageMask ), static_cast<VkPipelineStageFlags>( dstStageMask ), static_cast<VkDependencyFlags>( dependencyFlags ), memoryBarriers.size() , reinterpret_cast<const VkMemoryBarrier*>( memoryBarriers.data() ), bufferMemoryBarriers.size() , reinterpret_cast<const VkBufferMemoryBarrier*>( bufferMemoryBarriers.data() ), imageMemoryBarriers.size() , reinterpret_cast<const VkImageMemoryBarrier*>( imageMemoryBarriers.data() ) );
  43493. }
  43494. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43495. template<typename Dispatch>
  43496. VULKAN_HPP_INLINE void CommandBuffer::processCommandsNVX( const CmdProcessCommandsInfoNVX* pProcessCommandsInfo, Dispatch const &d) const
  43497. {
  43498. d.vkCmdProcessCommandsNVX( m_commandBuffer, reinterpret_cast<const VkCmdProcessCommandsInfoNVX*>( pProcessCommandsInfo ) );
  43499. }
  43500. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43501. template<typename Dispatch>
  43502. VULKAN_HPP_INLINE void CommandBuffer::processCommandsNVX( const CmdProcessCommandsInfoNVX & processCommandsInfo, Dispatch const &d ) const
  43503. {
  43504. d.vkCmdProcessCommandsNVX( m_commandBuffer, reinterpret_cast<const VkCmdProcessCommandsInfoNVX*>( &processCommandsInfo ) );
  43505. }
  43506. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43507. template<typename Dispatch>
  43508. VULKAN_HPP_INLINE void CommandBuffer::pushConstants( PipelineLayout layout, ShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues, Dispatch const &d) const
  43509. {
  43510. d.vkCmdPushConstants( m_commandBuffer, static_cast<VkPipelineLayout>( layout ), static_cast<VkShaderStageFlags>( stageFlags ), offset, size, pValues );
  43511. }
  43512. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43513. template<typename T, typename Dispatch>
  43514. VULKAN_HPP_INLINE void CommandBuffer::pushConstants( PipelineLayout layout, ShaderStageFlags stageFlags, uint32_t offset, ArrayProxy<const T> values, Dispatch const &d ) const
  43515. {
  43516. d.vkCmdPushConstants( m_commandBuffer, static_cast<VkPipelineLayout>( layout ), static_cast<VkShaderStageFlags>( stageFlags ), offset, values.size() * sizeof( T ) , reinterpret_cast<const void*>( values.data() ) );
  43517. }
  43518. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43519. template<typename Dispatch>
  43520. VULKAN_HPP_INLINE void CommandBuffer::pushDescriptorSetKHR( PipelineBindPoint pipelineBindPoint, PipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const WriteDescriptorSet* pDescriptorWrites, Dispatch const &d) const
  43521. {
  43522. d.vkCmdPushDescriptorSetKHR( m_commandBuffer, static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipelineLayout>( layout ), set, descriptorWriteCount, reinterpret_cast<const VkWriteDescriptorSet*>( pDescriptorWrites ) );
  43523. }
  43524. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43525. template<typename Dispatch>
  43526. VULKAN_HPP_INLINE void CommandBuffer::pushDescriptorSetKHR( PipelineBindPoint pipelineBindPoint, PipelineLayout layout, uint32_t set, ArrayProxy<const WriteDescriptorSet> descriptorWrites, Dispatch const &d ) const
  43527. {
  43528. d.vkCmdPushDescriptorSetKHR( m_commandBuffer, static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipelineLayout>( layout ), set, descriptorWrites.size() , reinterpret_cast<const VkWriteDescriptorSet*>( descriptorWrites.data() ) );
  43529. }
  43530. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43531. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43532. template<typename Dispatch>
  43533. VULKAN_HPP_INLINE void CommandBuffer::pushDescriptorSetWithTemplateKHR( DescriptorUpdateTemplate descriptorUpdateTemplate, PipelineLayout layout, uint32_t set, const void* pData, Dispatch const &d) const
  43534. {
  43535. d.vkCmdPushDescriptorSetWithTemplateKHR( m_commandBuffer, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), static_cast<VkPipelineLayout>( layout ), set, pData );
  43536. }
  43537. #else
  43538. template<typename Dispatch>
  43539. VULKAN_HPP_INLINE void CommandBuffer::pushDescriptorSetWithTemplateKHR( DescriptorUpdateTemplate descriptorUpdateTemplate, PipelineLayout layout, uint32_t set, const void* pData, Dispatch const &d ) const
  43540. {
  43541. d.vkCmdPushDescriptorSetWithTemplateKHR( m_commandBuffer, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), static_cast<VkPipelineLayout>( layout ), set, pData );
  43542. }
  43543. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43544. template<typename Dispatch>
  43545. VULKAN_HPP_INLINE void CommandBuffer::reserveSpaceForCommandsNVX( const CmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo, Dispatch const &d) const
  43546. {
  43547. d.vkCmdReserveSpaceForCommandsNVX( m_commandBuffer, reinterpret_cast<const VkCmdReserveSpaceForCommandsInfoNVX*>( pReserveSpaceInfo ) );
  43548. }
  43549. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43550. template<typename Dispatch>
  43551. VULKAN_HPP_INLINE void CommandBuffer::reserveSpaceForCommandsNVX( const CmdReserveSpaceForCommandsInfoNVX & reserveSpaceInfo, Dispatch const &d ) const
  43552. {
  43553. d.vkCmdReserveSpaceForCommandsNVX( m_commandBuffer, reinterpret_cast<const VkCmdReserveSpaceForCommandsInfoNVX*>( &reserveSpaceInfo ) );
  43554. }
  43555. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43556. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43557. template<typename Dispatch>
  43558. VULKAN_HPP_INLINE void CommandBuffer::resetEvent( Event event, PipelineStageFlags stageMask, Dispatch const &d) const
  43559. {
  43560. d.vkCmdResetEvent( m_commandBuffer, static_cast<VkEvent>( event ), static_cast<VkPipelineStageFlags>( stageMask ) );
  43561. }
  43562. #else
  43563. template<typename Dispatch>
  43564. VULKAN_HPP_INLINE void CommandBuffer::resetEvent( Event event, PipelineStageFlags stageMask, Dispatch const &d ) const
  43565. {
  43566. d.vkCmdResetEvent( m_commandBuffer, static_cast<VkEvent>( event ), static_cast<VkPipelineStageFlags>( stageMask ) );
  43567. }
  43568. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43569. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43570. template<typename Dispatch>
  43571. VULKAN_HPP_INLINE void CommandBuffer::resetQueryPool( QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const &d) const
  43572. {
  43573. d.vkCmdResetQueryPool( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount );
  43574. }
  43575. #else
  43576. template<typename Dispatch>
  43577. VULKAN_HPP_INLINE void CommandBuffer::resetQueryPool( QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const &d ) const
  43578. {
  43579. d.vkCmdResetQueryPool( m_commandBuffer, static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount );
  43580. }
  43581. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43582. template<typename Dispatch>
  43583. VULKAN_HPP_INLINE void CommandBuffer::resolveImage( Image srcImage, ImageLayout srcImageLayout, Image dstImage, ImageLayout dstImageLayout, uint32_t regionCount, const ImageResolve* pRegions, Dispatch const &d) const
  43584. {
  43585. d.vkCmdResolveImage( m_commandBuffer, static_cast<VkImage>( srcImage ), static_cast<VkImageLayout>( srcImageLayout ), static_cast<VkImage>( dstImage ), static_cast<VkImageLayout>( dstImageLayout ), regionCount, reinterpret_cast<const VkImageResolve*>( pRegions ) );
  43586. }
  43587. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43588. template<typename Dispatch>
  43589. VULKAN_HPP_INLINE void CommandBuffer::resolveImage( Image srcImage, ImageLayout srcImageLayout, Image dstImage, ImageLayout dstImageLayout, ArrayProxy<const ImageResolve> regions, Dispatch const &d ) const
  43590. {
  43591. d.vkCmdResolveImage( m_commandBuffer, static_cast<VkImage>( srcImage ), static_cast<VkImageLayout>( srcImageLayout ), static_cast<VkImage>( dstImage ), static_cast<VkImageLayout>( dstImageLayout ), regions.size() , reinterpret_cast<const VkImageResolve*>( regions.data() ) );
  43592. }
  43593. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43594. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43595. template<typename Dispatch>
  43596. VULKAN_HPP_INLINE void CommandBuffer::setBlendConstants( const float blendConstants[4], Dispatch const &d) const
  43597. {
  43598. d.vkCmdSetBlendConstants( m_commandBuffer, blendConstants );
  43599. }
  43600. #else
  43601. template<typename Dispatch>
  43602. VULKAN_HPP_INLINE void CommandBuffer::setBlendConstants( const float blendConstants[4], Dispatch const &d ) const
  43603. {
  43604. d.vkCmdSetBlendConstants( m_commandBuffer, blendConstants );
  43605. }
  43606. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43607. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43608. template<typename Dispatch>
  43609. VULKAN_HPP_INLINE void CommandBuffer::setCheckpointNV( const void* pCheckpointMarker, Dispatch const &d) const
  43610. {
  43611. d.vkCmdSetCheckpointNV( m_commandBuffer, pCheckpointMarker );
  43612. }
  43613. #else
  43614. template<typename Dispatch>
  43615. VULKAN_HPP_INLINE void CommandBuffer::setCheckpointNV( const void* pCheckpointMarker, Dispatch const &d ) const
  43616. {
  43617. d.vkCmdSetCheckpointNV( m_commandBuffer, pCheckpointMarker );
  43618. }
  43619. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43620. template<typename Dispatch>
  43621. VULKAN_HPP_INLINE void CommandBuffer::setCoarseSampleOrderNV( CoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const CoarseSampleOrderCustomNV* pCustomSampleOrders, Dispatch const &d) const
  43622. {
  43623. d.vkCmdSetCoarseSampleOrderNV( m_commandBuffer, static_cast<VkCoarseSampleOrderTypeNV>( sampleOrderType ), customSampleOrderCount, reinterpret_cast<const VkCoarseSampleOrderCustomNV*>( pCustomSampleOrders ) );
  43624. }
  43625. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43626. template<typename Dispatch>
  43627. VULKAN_HPP_INLINE void CommandBuffer::setCoarseSampleOrderNV( CoarseSampleOrderTypeNV sampleOrderType, ArrayProxy<const CoarseSampleOrderCustomNV> customSampleOrders, Dispatch const &d ) const
  43628. {
  43629. d.vkCmdSetCoarseSampleOrderNV( m_commandBuffer, static_cast<VkCoarseSampleOrderTypeNV>( sampleOrderType ), customSampleOrders.size() , reinterpret_cast<const VkCoarseSampleOrderCustomNV*>( customSampleOrders.data() ) );
  43630. }
  43631. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43632. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43633. template<typename Dispatch>
  43634. VULKAN_HPP_INLINE void CommandBuffer::setDepthBias( float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor, Dispatch const &d) const
  43635. {
  43636. d.vkCmdSetDepthBias( m_commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor );
  43637. }
  43638. #else
  43639. template<typename Dispatch>
  43640. VULKAN_HPP_INLINE void CommandBuffer::setDepthBias( float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor, Dispatch const &d ) const
  43641. {
  43642. d.vkCmdSetDepthBias( m_commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor );
  43643. }
  43644. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43645. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43646. template<typename Dispatch>
  43647. VULKAN_HPP_INLINE void CommandBuffer::setDepthBounds( float minDepthBounds, float maxDepthBounds, Dispatch const &d) const
  43648. {
  43649. d.vkCmdSetDepthBounds( m_commandBuffer, minDepthBounds, maxDepthBounds );
  43650. }
  43651. #else
  43652. template<typename Dispatch>
  43653. VULKAN_HPP_INLINE void CommandBuffer::setDepthBounds( float minDepthBounds, float maxDepthBounds, Dispatch const &d ) const
  43654. {
  43655. d.vkCmdSetDepthBounds( m_commandBuffer, minDepthBounds, maxDepthBounds );
  43656. }
  43657. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43658. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43659. template<typename Dispatch>
  43660. VULKAN_HPP_INLINE void CommandBuffer::setDeviceMask( uint32_t deviceMask, Dispatch const &d) const
  43661. {
  43662. d.vkCmdSetDeviceMask( m_commandBuffer, deviceMask );
  43663. }
  43664. #else
  43665. template<typename Dispatch>
  43666. VULKAN_HPP_INLINE void CommandBuffer::setDeviceMask( uint32_t deviceMask, Dispatch const &d ) const
  43667. {
  43668. d.vkCmdSetDeviceMask( m_commandBuffer, deviceMask );
  43669. }
  43670. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43671. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43672. template<typename Dispatch>
  43673. VULKAN_HPP_INLINE void CommandBuffer::setDeviceMaskKHR( uint32_t deviceMask, Dispatch const &d) const
  43674. {
  43675. d.vkCmdSetDeviceMaskKHR( m_commandBuffer, deviceMask );
  43676. }
  43677. #else
  43678. template<typename Dispatch>
  43679. VULKAN_HPP_INLINE void CommandBuffer::setDeviceMaskKHR( uint32_t deviceMask, Dispatch const &d ) const
  43680. {
  43681. d.vkCmdSetDeviceMaskKHR( m_commandBuffer, deviceMask );
  43682. }
  43683. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43684. template<typename Dispatch>
  43685. VULKAN_HPP_INLINE void CommandBuffer::setDiscardRectangleEXT( uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const Rect2D* pDiscardRectangles, Dispatch const &d) const
  43686. {
  43687. d.vkCmdSetDiscardRectangleEXT( m_commandBuffer, firstDiscardRectangle, discardRectangleCount, reinterpret_cast<const VkRect2D*>( pDiscardRectangles ) );
  43688. }
  43689. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43690. template<typename Dispatch>
  43691. VULKAN_HPP_INLINE void CommandBuffer::setDiscardRectangleEXT( uint32_t firstDiscardRectangle, ArrayProxy<const Rect2D> discardRectangles, Dispatch const &d ) const
  43692. {
  43693. d.vkCmdSetDiscardRectangleEXT( m_commandBuffer, firstDiscardRectangle, discardRectangles.size() , reinterpret_cast<const VkRect2D*>( discardRectangles.data() ) );
  43694. }
  43695. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43696. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43697. template<typename Dispatch>
  43698. VULKAN_HPP_INLINE void CommandBuffer::setEvent( Event event, PipelineStageFlags stageMask, Dispatch const &d) const
  43699. {
  43700. d.vkCmdSetEvent( m_commandBuffer, static_cast<VkEvent>( event ), static_cast<VkPipelineStageFlags>( stageMask ) );
  43701. }
  43702. #else
  43703. template<typename Dispatch>
  43704. VULKAN_HPP_INLINE void CommandBuffer::setEvent( Event event, PipelineStageFlags stageMask, Dispatch const &d ) const
  43705. {
  43706. d.vkCmdSetEvent( m_commandBuffer, static_cast<VkEvent>( event ), static_cast<VkPipelineStageFlags>( stageMask ) );
  43707. }
  43708. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43709. template<typename Dispatch>
  43710. VULKAN_HPP_INLINE void CommandBuffer::setExclusiveScissorNV( uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const Rect2D* pExclusiveScissors, Dispatch const &d) const
  43711. {
  43712. d.vkCmdSetExclusiveScissorNV( m_commandBuffer, firstExclusiveScissor, exclusiveScissorCount, reinterpret_cast<const VkRect2D*>( pExclusiveScissors ) );
  43713. }
  43714. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43715. template<typename Dispatch>
  43716. VULKAN_HPP_INLINE void CommandBuffer::setExclusiveScissorNV( uint32_t firstExclusiveScissor, ArrayProxy<const Rect2D> exclusiveScissors, Dispatch const &d ) const
  43717. {
  43718. d.vkCmdSetExclusiveScissorNV( m_commandBuffer, firstExclusiveScissor, exclusiveScissors.size() , reinterpret_cast<const VkRect2D*>( exclusiveScissors.data() ) );
  43719. }
  43720. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43721. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43722. template<typename Dispatch>
  43723. VULKAN_HPP_INLINE void CommandBuffer::setLineWidth( float lineWidth, Dispatch const &d) const
  43724. {
  43725. d.vkCmdSetLineWidth( m_commandBuffer, lineWidth );
  43726. }
  43727. #else
  43728. template<typename Dispatch>
  43729. VULKAN_HPP_INLINE void CommandBuffer::setLineWidth( float lineWidth, Dispatch const &d ) const
  43730. {
  43731. d.vkCmdSetLineWidth( m_commandBuffer, lineWidth );
  43732. }
  43733. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43734. template<typename Dispatch>
  43735. VULKAN_HPP_INLINE Result CommandBuffer::setPerformanceMarkerINTEL( const PerformanceMarkerInfoINTEL* pMarkerInfo, Dispatch const &d) const
  43736. {
  43737. return static_cast<Result>( d.vkCmdSetPerformanceMarkerINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceMarkerInfoINTEL*>( pMarkerInfo ) ) );
  43738. }
  43739. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43740. template<typename Dispatch>
  43741. VULKAN_HPP_INLINE ResultValueType<void>::type CommandBuffer::setPerformanceMarkerINTEL( const PerformanceMarkerInfoINTEL & markerInfo, Dispatch const &d ) const
  43742. {
  43743. Result result = static_cast<Result>( d.vkCmdSetPerformanceMarkerINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceMarkerInfoINTEL*>( &markerInfo ) ) );
  43744. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::CommandBuffer::setPerformanceMarkerINTEL" );
  43745. }
  43746. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43747. template<typename Dispatch>
  43748. VULKAN_HPP_INLINE Result CommandBuffer::setPerformanceOverrideINTEL( const PerformanceOverrideInfoINTEL* pOverrideInfo, Dispatch const &d) const
  43749. {
  43750. return static_cast<Result>( d.vkCmdSetPerformanceOverrideINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceOverrideInfoINTEL*>( pOverrideInfo ) ) );
  43751. }
  43752. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43753. template<typename Dispatch>
  43754. VULKAN_HPP_INLINE ResultValueType<void>::type CommandBuffer::setPerformanceOverrideINTEL( const PerformanceOverrideInfoINTEL & overrideInfo, Dispatch const &d ) const
  43755. {
  43756. Result result = static_cast<Result>( d.vkCmdSetPerformanceOverrideINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceOverrideInfoINTEL*>( &overrideInfo ) ) );
  43757. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::CommandBuffer::setPerformanceOverrideINTEL" );
  43758. }
  43759. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43760. template<typename Dispatch>
  43761. VULKAN_HPP_INLINE Result CommandBuffer::setPerformanceStreamMarkerINTEL( const PerformanceStreamMarkerInfoINTEL* pMarkerInfo, Dispatch const &d) const
  43762. {
  43763. return static_cast<Result>( d.vkCmdSetPerformanceStreamMarkerINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceStreamMarkerInfoINTEL*>( pMarkerInfo ) ) );
  43764. }
  43765. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43766. template<typename Dispatch>
  43767. VULKAN_HPP_INLINE ResultValueType<void>::type CommandBuffer::setPerformanceStreamMarkerINTEL( const PerformanceStreamMarkerInfoINTEL & markerInfo, Dispatch const &d ) const
  43768. {
  43769. Result result = static_cast<Result>( d.vkCmdSetPerformanceStreamMarkerINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceStreamMarkerInfoINTEL*>( &markerInfo ) ) );
  43770. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::CommandBuffer::setPerformanceStreamMarkerINTEL" );
  43771. }
  43772. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43773. template<typename Dispatch>
  43774. VULKAN_HPP_INLINE void CommandBuffer::setSampleLocationsEXT( const SampleLocationsInfoEXT* pSampleLocationsInfo, Dispatch const &d) const
  43775. {
  43776. d.vkCmdSetSampleLocationsEXT( m_commandBuffer, reinterpret_cast<const VkSampleLocationsInfoEXT*>( pSampleLocationsInfo ) );
  43777. }
  43778. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43779. template<typename Dispatch>
  43780. VULKAN_HPP_INLINE void CommandBuffer::setSampleLocationsEXT( const SampleLocationsInfoEXT & sampleLocationsInfo, Dispatch const &d ) const
  43781. {
  43782. d.vkCmdSetSampleLocationsEXT( m_commandBuffer, reinterpret_cast<const VkSampleLocationsInfoEXT*>( &sampleLocationsInfo ) );
  43783. }
  43784. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43785. template<typename Dispatch>
  43786. VULKAN_HPP_INLINE void CommandBuffer::setScissor( uint32_t firstScissor, uint32_t scissorCount, const Rect2D* pScissors, Dispatch const &d) const
  43787. {
  43788. d.vkCmdSetScissor( m_commandBuffer, firstScissor, scissorCount, reinterpret_cast<const VkRect2D*>( pScissors ) );
  43789. }
  43790. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43791. template<typename Dispatch>
  43792. VULKAN_HPP_INLINE void CommandBuffer::setScissor( uint32_t firstScissor, ArrayProxy<const Rect2D> scissors, Dispatch const &d ) const
  43793. {
  43794. d.vkCmdSetScissor( m_commandBuffer, firstScissor, scissors.size() , reinterpret_cast<const VkRect2D*>( scissors.data() ) );
  43795. }
  43796. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43797. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43798. template<typename Dispatch>
  43799. VULKAN_HPP_INLINE void CommandBuffer::setStencilCompareMask( StencilFaceFlags faceMask, uint32_t compareMask, Dispatch const &d) const
  43800. {
  43801. d.vkCmdSetStencilCompareMask( m_commandBuffer, static_cast<VkStencilFaceFlags>( faceMask ), compareMask );
  43802. }
  43803. #else
  43804. template<typename Dispatch>
  43805. VULKAN_HPP_INLINE void CommandBuffer::setStencilCompareMask( StencilFaceFlags faceMask, uint32_t compareMask, Dispatch const &d ) const
  43806. {
  43807. d.vkCmdSetStencilCompareMask( m_commandBuffer, static_cast<VkStencilFaceFlags>( faceMask ), compareMask );
  43808. }
  43809. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43810. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43811. template<typename Dispatch>
  43812. VULKAN_HPP_INLINE void CommandBuffer::setStencilReference( StencilFaceFlags faceMask, uint32_t reference, Dispatch const &d) const
  43813. {
  43814. d.vkCmdSetStencilReference( m_commandBuffer, static_cast<VkStencilFaceFlags>( faceMask ), reference );
  43815. }
  43816. #else
  43817. template<typename Dispatch>
  43818. VULKAN_HPP_INLINE void CommandBuffer::setStencilReference( StencilFaceFlags faceMask, uint32_t reference, Dispatch const &d ) const
  43819. {
  43820. d.vkCmdSetStencilReference( m_commandBuffer, static_cast<VkStencilFaceFlags>( faceMask ), reference );
  43821. }
  43822. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43823. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43824. template<typename Dispatch>
  43825. VULKAN_HPP_INLINE void CommandBuffer::setStencilWriteMask( StencilFaceFlags faceMask, uint32_t writeMask, Dispatch const &d) const
  43826. {
  43827. d.vkCmdSetStencilWriteMask( m_commandBuffer, static_cast<VkStencilFaceFlags>( faceMask ), writeMask );
  43828. }
  43829. #else
  43830. template<typename Dispatch>
  43831. VULKAN_HPP_INLINE void CommandBuffer::setStencilWriteMask( StencilFaceFlags faceMask, uint32_t writeMask, Dispatch const &d ) const
  43832. {
  43833. d.vkCmdSetStencilWriteMask( m_commandBuffer, static_cast<VkStencilFaceFlags>( faceMask ), writeMask );
  43834. }
  43835. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43836. template<typename Dispatch>
  43837. VULKAN_HPP_INLINE void CommandBuffer::setViewport( uint32_t firstViewport, uint32_t viewportCount, const Viewport* pViewports, Dispatch const &d) const
  43838. {
  43839. d.vkCmdSetViewport( m_commandBuffer, firstViewport, viewportCount, reinterpret_cast<const VkViewport*>( pViewports ) );
  43840. }
  43841. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43842. template<typename Dispatch>
  43843. VULKAN_HPP_INLINE void CommandBuffer::setViewport( uint32_t firstViewport, ArrayProxy<const Viewport> viewports, Dispatch const &d ) const
  43844. {
  43845. d.vkCmdSetViewport( m_commandBuffer, firstViewport, viewports.size() , reinterpret_cast<const VkViewport*>( viewports.data() ) );
  43846. }
  43847. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43848. template<typename Dispatch>
  43849. VULKAN_HPP_INLINE void CommandBuffer::setViewportShadingRatePaletteNV( uint32_t firstViewport, uint32_t viewportCount, const ShadingRatePaletteNV* pShadingRatePalettes, Dispatch const &d) const
  43850. {
  43851. d.vkCmdSetViewportShadingRatePaletteNV( m_commandBuffer, firstViewport, viewportCount, reinterpret_cast<const VkShadingRatePaletteNV*>( pShadingRatePalettes ) );
  43852. }
  43853. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43854. template<typename Dispatch>
  43855. VULKAN_HPP_INLINE void CommandBuffer::setViewportShadingRatePaletteNV( uint32_t firstViewport, ArrayProxy<const ShadingRatePaletteNV> shadingRatePalettes, Dispatch const &d ) const
  43856. {
  43857. d.vkCmdSetViewportShadingRatePaletteNV( m_commandBuffer, firstViewport, shadingRatePalettes.size() , reinterpret_cast<const VkShadingRatePaletteNV*>( shadingRatePalettes.data() ) );
  43858. }
  43859. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43860. template<typename Dispatch>
  43861. VULKAN_HPP_INLINE void CommandBuffer::setViewportWScalingNV( uint32_t firstViewport, uint32_t viewportCount, const ViewportWScalingNV* pViewportWScalings, Dispatch const &d) const
  43862. {
  43863. d.vkCmdSetViewportWScalingNV( m_commandBuffer, firstViewport, viewportCount, reinterpret_cast<const VkViewportWScalingNV*>( pViewportWScalings ) );
  43864. }
  43865. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43866. template<typename Dispatch>
  43867. VULKAN_HPP_INLINE void CommandBuffer::setViewportWScalingNV( uint32_t firstViewport, ArrayProxy<const ViewportWScalingNV> viewportWScalings, Dispatch const &d ) const
  43868. {
  43869. d.vkCmdSetViewportWScalingNV( m_commandBuffer, firstViewport, viewportWScalings.size() , reinterpret_cast<const VkViewportWScalingNV*>( viewportWScalings.data() ) );
  43870. }
  43871. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43872. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43873. template<typename Dispatch>
  43874. VULKAN_HPP_INLINE void CommandBuffer::traceRaysNV( Buffer raygenShaderBindingTableBuffer, DeviceSize raygenShaderBindingOffset, Buffer missShaderBindingTableBuffer, DeviceSize missShaderBindingOffset, DeviceSize missShaderBindingStride, Buffer hitShaderBindingTableBuffer, DeviceSize hitShaderBindingOffset, DeviceSize hitShaderBindingStride, Buffer callableShaderBindingTableBuffer, DeviceSize callableShaderBindingOffset, DeviceSize callableShaderBindingStride, uint32_t width, uint32_t height, uint32_t depth, Dispatch const &d) const
  43875. {
  43876. d.vkCmdTraceRaysNV( m_commandBuffer, static_cast<VkBuffer>( raygenShaderBindingTableBuffer ), static_cast<VkDeviceSize>( raygenShaderBindingOffset ), static_cast<VkBuffer>( missShaderBindingTableBuffer ), static_cast<VkDeviceSize>( missShaderBindingOffset ), static_cast<VkDeviceSize>( missShaderBindingStride ), static_cast<VkBuffer>( hitShaderBindingTableBuffer ), static_cast<VkDeviceSize>( hitShaderBindingOffset ), static_cast<VkDeviceSize>( hitShaderBindingStride ), static_cast<VkBuffer>( callableShaderBindingTableBuffer ), static_cast<VkDeviceSize>( callableShaderBindingOffset ), static_cast<VkDeviceSize>( callableShaderBindingStride ), width, height, depth );
  43877. }
  43878. #else
  43879. template<typename Dispatch>
  43880. VULKAN_HPP_INLINE void CommandBuffer::traceRaysNV( Buffer raygenShaderBindingTableBuffer, DeviceSize raygenShaderBindingOffset, Buffer missShaderBindingTableBuffer, DeviceSize missShaderBindingOffset, DeviceSize missShaderBindingStride, Buffer hitShaderBindingTableBuffer, DeviceSize hitShaderBindingOffset, DeviceSize hitShaderBindingStride, Buffer callableShaderBindingTableBuffer, DeviceSize callableShaderBindingOffset, DeviceSize callableShaderBindingStride, uint32_t width, uint32_t height, uint32_t depth, Dispatch const &d ) const
  43881. {
  43882. d.vkCmdTraceRaysNV( m_commandBuffer, static_cast<VkBuffer>( raygenShaderBindingTableBuffer ), static_cast<VkDeviceSize>( raygenShaderBindingOffset ), static_cast<VkBuffer>( missShaderBindingTableBuffer ), static_cast<VkDeviceSize>( missShaderBindingOffset ), static_cast<VkDeviceSize>( missShaderBindingStride ), static_cast<VkBuffer>( hitShaderBindingTableBuffer ), static_cast<VkDeviceSize>( hitShaderBindingOffset ), static_cast<VkDeviceSize>( hitShaderBindingStride ), static_cast<VkBuffer>( callableShaderBindingTableBuffer ), static_cast<VkDeviceSize>( callableShaderBindingOffset ), static_cast<VkDeviceSize>( callableShaderBindingStride ), width, height, depth );
  43883. }
  43884. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43885. template<typename Dispatch>
  43886. VULKAN_HPP_INLINE void CommandBuffer::updateBuffer( Buffer dstBuffer, DeviceSize dstOffset, DeviceSize dataSize, const void* pData, Dispatch const &d) const
  43887. {
  43888. d.vkCmdUpdateBuffer( m_commandBuffer, static_cast<VkBuffer>( dstBuffer ), static_cast<VkDeviceSize>( dstOffset ), static_cast<VkDeviceSize>( dataSize ), pData );
  43889. }
  43890. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43891. template<typename T, typename Dispatch>
  43892. VULKAN_HPP_INLINE void CommandBuffer::updateBuffer( Buffer dstBuffer, DeviceSize dstOffset, ArrayProxy<const T> data, Dispatch const &d ) const
  43893. {
  43894. d.vkCmdUpdateBuffer( m_commandBuffer, static_cast<VkBuffer>( dstBuffer ), static_cast<VkDeviceSize>( dstOffset ), data.size() * sizeof( T ) , reinterpret_cast<const void*>( data.data() ) );
  43895. }
  43896. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43897. template<typename Dispatch>
  43898. VULKAN_HPP_INLINE void CommandBuffer::waitEvents( uint32_t eventCount, const Event* pEvents, PipelineStageFlags srcStageMask, PipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const MemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const BufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const ImageMemoryBarrier* pImageMemoryBarriers, Dispatch const &d) const
  43899. {
  43900. d.vkCmdWaitEvents( m_commandBuffer, eventCount, reinterpret_cast<const VkEvent*>( pEvents ), static_cast<VkPipelineStageFlags>( srcStageMask ), static_cast<VkPipelineStageFlags>( dstStageMask ), memoryBarrierCount, reinterpret_cast<const VkMemoryBarrier*>( pMemoryBarriers ), bufferMemoryBarrierCount, reinterpret_cast<const VkBufferMemoryBarrier*>( pBufferMemoryBarriers ), imageMemoryBarrierCount, reinterpret_cast<const VkImageMemoryBarrier*>( pImageMemoryBarriers ) );
  43901. }
  43902. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43903. template<typename Dispatch>
  43904. VULKAN_HPP_INLINE void CommandBuffer::waitEvents( ArrayProxy<const Event> events, PipelineStageFlags srcStageMask, PipelineStageFlags dstStageMask, ArrayProxy<const MemoryBarrier> memoryBarriers, ArrayProxy<const BufferMemoryBarrier> bufferMemoryBarriers, ArrayProxy<const ImageMemoryBarrier> imageMemoryBarriers, Dispatch const &d ) const
  43905. {
  43906. d.vkCmdWaitEvents( m_commandBuffer, events.size() , reinterpret_cast<const VkEvent*>( events.data() ), static_cast<VkPipelineStageFlags>( srcStageMask ), static_cast<VkPipelineStageFlags>( dstStageMask ), memoryBarriers.size() , reinterpret_cast<const VkMemoryBarrier*>( memoryBarriers.data() ), bufferMemoryBarriers.size() , reinterpret_cast<const VkBufferMemoryBarrier*>( bufferMemoryBarriers.data() ), imageMemoryBarriers.size() , reinterpret_cast<const VkImageMemoryBarrier*>( imageMemoryBarriers.data() ) );
  43907. }
  43908. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43909. template<typename Dispatch>
  43910. VULKAN_HPP_INLINE void CommandBuffer::writeAccelerationStructuresPropertiesNV( uint32_t accelerationStructureCount, const AccelerationStructureNV* pAccelerationStructures, QueryType queryType, QueryPool queryPool, uint32_t firstQuery, Dispatch const &d) const
  43911. {
  43912. d.vkCmdWriteAccelerationStructuresPropertiesNV( m_commandBuffer, accelerationStructureCount, reinterpret_cast<const VkAccelerationStructureNV*>( pAccelerationStructures ), static_cast<VkQueryType>( queryType ), static_cast<VkQueryPool>( queryPool ), firstQuery );
  43913. }
  43914. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43915. template<typename Dispatch>
  43916. VULKAN_HPP_INLINE void CommandBuffer::writeAccelerationStructuresPropertiesNV( ArrayProxy<const AccelerationStructureNV> accelerationStructures, QueryType queryType, QueryPool queryPool, uint32_t firstQuery, Dispatch const &d ) const
  43917. {
  43918. d.vkCmdWriteAccelerationStructuresPropertiesNV( m_commandBuffer, accelerationStructures.size() , reinterpret_cast<const VkAccelerationStructureNV*>( accelerationStructures.data() ), static_cast<VkQueryType>( queryType ), static_cast<VkQueryPool>( queryPool ), firstQuery );
  43919. }
  43920. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43921. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43922. template<typename Dispatch>
  43923. VULKAN_HPP_INLINE void CommandBuffer::writeBufferMarkerAMD( PipelineStageFlagBits pipelineStage, Buffer dstBuffer, DeviceSize dstOffset, uint32_t marker, Dispatch const &d) const
  43924. {
  43925. d.vkCmdWriteBufferMarkerAMD( m_commandBuffer, static_cast<VkPipelineStageFlagBits>( pipelineStage ), static_cast<VkBuffer>( dstBuffer ), static_cast<VkDeviceSize>( dstOffset ), marker );
  43926. }
  43927. #else
  43928. template<typename Dispatch>
  43929. VULKAN_HPP_INLINE void CommandBuffer::writeBufferMarkerAMD( PipelineStageFlagBits pipelineStage, Buffer dstBuffer, DeviceSize dstOffset, uint32_t marker, Dispatch const &d ) const
  43930. {
  43931. d.vkCmdWriteBufferMarkerAMD( m_commandBuffer, static_cast<VkPipelineStageFlagBits>( pipelineStage ), static_cast<VkBuffer>( dstBuffer ), static_cast<VkDeviceSize>( dstOffset ), marker );
  43932. }
  43933. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43934. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43935. template<typename Dispatch>
  43936. VULKAN_HPP_INLINE void CommandBuffer::writeTimestamp( PipelineStageFlagBits pipelineStage, QueryPool queryPool, uint32_t query, Dispatch const &d) const
  43937. {
  43938. d.vkCmdWriteTimestamp( m_commandBuffer, static_cast<VkPipelineStageFlagBits>( pipelineStage ), static_cast<VkQueryPool>( queryPool ), query );
  43939. }
  43940. #else
  43941. template<typename Dispatch>
  43942. VULKAN_HPP_INLINE void CommandBuffer::writeTimestamp( PipelineStageFlagBits pipelineStage, QueryPool queryPool, uint32_t query, Dispatch const &d ) const
  43943. {
  43944. d.vkCmdWriteTimestamp( m_commandBuffer, static_cast<VkPipelineStageFlagBits>( pipelineStage ), static_cast<VkQueryPool>( queryPool ), query );
  43945. }
  43946. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43947. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43948. template<typename Dispatch>
  43949. VULKAN_HPP_INLINE Result CommandBuffer::end(Dispatch const &d) const
  43950. {
  43951. return static_cast<Result>( d.vkEndCommandBuffer( m_commandBuffer ) );
  43952. }
  43953. #else
  43954. template<typename Dispatch>
  43955. VULKAN_HPP_INLINE ResultValueType<void>::type CommandBuffer::end(Dispatch const &d ) const
  43956. {
  43957. Result result = static_cast<Result>( d.vkEndCommandBuffer( m_commandBuffer ) );
  43958. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::CommandBuffer::end" );
  43959. }
  43960. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43961. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43962. template<typename Dispatch>
  43963. VULKAN_HPP_INLINE Result CommandBuffer::reset( CommandBufferResetFlags flags, Dispatch const &d) const
  43964. {
  43965. return static_cast<Result>( d.vkResetCommandBuffer( m_commandBuffer, static_cast<VkCommandBufferResetFlags>( flags ) ) );
  43966. }
  43967. #else
  43968. template<typename Dispatch>
  43969. VULKAN_HPP_INLINE ResultValueType<void>::type CommandBuffer::reset( CommandBufferResetFlags flags, Dispatch const &d ) const
  43970. {
  43971. Result result = static_cast<Result>( d.vkResetCommandBuffer( m_commandBuffer, static_cast<VkCommandBufferResetFlags>( flags ) ) );
  43972. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::CommandBuffer::reset" );
  43973. }
  43974. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43975. #ifdef VK_USE_PLATFORM_WIN32_KHR
  43976. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43977. template<typename Dispatch>
  43978. VULKAN_HPP_INLINE Result Device::acquireFullScreenExclusiveModeEXT( SwapchainKHR swapchain, Dispatch const &d) const
  43979. {
  43980. return static_cast<Result>( d.vkAcquireFullScreenExclusiveModeEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
  43981. }
  43982. #else
  43983. template<typename Dispatch>
  43984. VULKAN_HPP_INLINE ResultValueType<void>::type Device::acquireFullScreenExclusiveModeEXT( SwapchainKHR swapchain, Dispatch const &d ) const
  43985. {
  43986. Result result = static_cast<Result>( d.vkAcquireFullScreenExclusiveModeEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
  43987. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::acquireFullScreenExclusiveModeEXT" );
  43988. }
  43989. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  43990. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  43991. template<typename Dispatch>
  43992. VULKAN_HPP_INLINE Result Device::acquireNextImage2KHR( const AcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex, Dispatch const &d) const
  43993. {
  43994. return static_cast<Result>( d.vkAcquireNextImage2KHR( m_device, reinterpret_cast<const VkAcquireNextImageInfoKHR*>( pAcquireInfo ), pImageIndex ) );
  43995. }
  43996. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  43997. template<typename Dispatch>
  43998. VULKAN_HPP_INLINE ResultValue<uint32_t> Device::acquireNextImage2KHR( const AcquireNextImageInfoKHR & acquireInfo, Dispatch const &d ) const
  43999. {
  44000. uint32_t imageIndex;
  44001. Result result = static_cast<Result>( d.vkAcquireNextImage2KHR( m_device, reinterpret_cast<const VkAcquireNextImageInfoKHR*>( &acquireInfo ), &imageIndex ) );
  44002. return createResultValue( result, imageIndex, VULKAN_HPP_NAMESPACE_STRING"::Device::acquireNextImage2KHR", { Result::eSuccess, Result::eTimeout, Result::eNotReady, Result::eSuboptimalKHR } );
  44003. }
  44004. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  44005. template<typename Dispatch>
  44006. VULKAN_HPP_INLINE Result Device::acquireNextImageKHR( SwapchainKHR swapchain, uint64_t timeout, Semaphore semaphore, Fence fence, uint32_t* pImageIndex, Dispatch const &d) const
  44007. {
  44008. return static_cast<Result>( d.vkAcquireNextImageKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), timeout, static_cast<VkSemaphore>( semaphore ), static_cast<VkFence>( fence ), pImageIndex ) );
  44009. }
  44010. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  44011. template<typename Dispatch>
  44012. VULKAN_HPP_INLINE ResultValue<uint32_t> Device::acquireNextImageKHR( SwapchainKHR swapchain, uint64_t timeout, Semaphore semaphore, Fence fence, Dispatch const &d ) const
  44013. {
  44014. uint32_t imageIndex;
  44015. Result result = static_cast<Result>( d.vkAcquireNextImageKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), timeout, static_cast<VkSemaphore>( semaphore ), static_cast<VkFence>( fence ), &imageIndex ) );
  44016. return createResultValue( result, imageIndex, VULKAN_HPP_NAMESPACE_STRING"::Device::acquireNextImageKHR", { Result::eSuccess, Result::eTimeout, Result::eNotReady, Result::eSuboptimalKHR } );
  44017. }
  44018. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  44019. template<typename Dispatch>
  44020. VULKAN_HPP_INLINE Result Device::acquirePerformanceConfigurationINTEL( const PerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, PerformanceConfigurationINTEL* pConfiguration, Dispatch const &d) const
  44021. {
  44022. return static_cast<Result>( d.vkAcquirePerformanceConfigurationINTEL( m_device, reinterpret_cast<const VkPerformanceConfigurationAcquireInfoINTEL*>( pAcquireInfo ), reinterpret_cast<VkPerformanceConfigurationINTEL*>( pConfiguration ) ) );
  44023. }
  44024. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  44025. template<typename Dispatch>
  44026. VULKAN_HPP_INLINE ResultValueType<PerformanceConfigurationINTEL>::type Device::acquirePerformanceConfigurationINTEL( const PerformanceConfigurationAcquireInfoINTEL & acquireInfo, Dispatch const &d ) const
  44027. {
  44028. PerformanceConfigurationINTEL configuration;
  44029. Result result = static_cast<Result>( d.vkAcquirePerformanceConfigurationINTEL( m_device, reinterpret_cast<const VkPerformanceConfigurationAcquireInfoINTEL*>( &acquireInfo ), reinterpret_cast<VkPerformanceConfigurationINTEL*>( &configuration ) ) );
  44030. return createResultValue( result, configuration, VULKAN_HPP_NAMESPACE_STRING"::Device::acquirePerformanceConfigurationINTEL" );
  44031. }
  44032. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  44033. template<typename Dispatch>
  44034. VULKAN_HPP_INLINE Result Device::allocateCommandBuffers( const CommandBufferAllocateInfo* pAllocateInfo, CommandBuffer* pCommandBuffers, Dispatch const &d) const
  44035. {
  44036. return static_cast<Result>( d.vkAllocateCommandBuffers( m_device, reinterpret_cast<const VkCommandBufferAllocateInfo*>( pAllocateInfo ), reinterpret_cast<VkCommandBuffer*>( pCommandBuffers ) ) );
  44037. }
  44038. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  44039. template<typename Allocator, typename Dispatch>
  44040. VULKAN_HPP_INLINE typename ResultValueType<std::vector<CommandBuffer,Allocator>>::type Device::allocateCommandBuffers( const CommandBufferAllocateInfo & allocateInfo, Dispatch const &d ) const
  44041. {
  44042. std::vector<CommandBuffer,Allocator> commandBuffers( allocateInfo.commandBufferCount );
  44043. Result result = static_cast<Result>( d.vkAllocateCommandBuffers( m_device, reinterpret_cast<const VkCommandBufferAllocateInfo*>( &allocateInfo ), reinterpret_cast<VkCommandBuffer*>( commandBuffers.data() ) ) );
  44044. return createResultValue( result, commandBuffers, VULKAN_HPP_NAMESPACE_STRING"::Device::allocateCommandBuffers" );
  44045. }
  44046. template<typename Allocator, typename Dispatch>
  44047. VULKAN_HPP_INLINE typename ResultValueType<std::vector<CommandBuffer,Allocator>>::type Device::allocateCommandBuffers( const CommandBufferAllocateInfo & allocateInfo, Allocator const& vectorAllocator, Dispatch const &d ) const
  44048. {
  44049. std::vector<CommandBuffer,Allocator> commandBuffers( allocateInfo.commandBufferCount, vectorAllocator );
  44050. Result result = static_cast<Result>( d.vkAllocateCommandBuffers( m_device, reinterpret_cast<const VkCommandBufferAllocateInfo*>( &allocateInfo ), reinterpret_cast<VkCommandBuffer*>( commandBuffers.data() ) ) );
  44051. return createResultValue( result, commandBuffers, VULKAN_HPP_NAMESPACE_STRING"::Device::allocateCommandBuffers" );
  44052. }
  44053. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  44054. template<typename Allocator, typename Dispatch>
  44055. VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<CommandBuffer,Dispatch>,Allocator>>::type Device::allocateCommandBuffersUnique( const CommandBufferAllocateInfo & allocateInfo, Dispatch const &d ) const
  44056. {
  44057. static_assert( sizeof( CommandBuffer ) <= sizeof( UniqueHandle<CommandBuffer, Dispatch> ), "CommandBuffer is greater than UniqueHandle<CommandBuffer, Dispatch>!" );
  44058. std::vector<UniqueHandle<CommandBuffer, Dispatch>, Allocator> commandBuffers;
  44059. commandBuffers.reserve( allocateInfo.commandBufferCount );
  44060. CommandBuffer* buffer = reinterpret_cast<CommandBuffer*>( reinterpret_cast<char*>( commandBuffers.data() ) + allocateInfo.commandBufferCount * ( sizeof( UniqueHandle<CommandBuffer, Dispatch> ) - sizeof( CommandBuffer ) ) );
  44061. Result result = static_cast<Result>(d.vkAllocateCommandBuffers( m_device, reinterpret_cast<const VkCommandBufferAllocateInfo*>( &allocateInfo ), reinterpret_cast<VkCommandBuffer*>( buffer ) ) );
  44062. if (result == vk::Result::eSuccess)
  44063. {
  44064. PoolFree<Device,CommandPool,Dispatch> deleter( *this, allocateInfo.commandPool, d );
  44065. for ( size_t i=0 ; i<allocateInfo.commandBufferCount ; i++ )
  44066. {
  44067. commandBuffers.push_back( UniqueHandle<CommandBuffer, Dispatch>( buffer[i], deleter ) );
  44068. }
  44069. }
  44070. return createResultValue( result, commandBuffers, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateCommandBuffersUnique" );
  44071. }
  44072. template<typename Allocator, typename Dispatch>
  44073. VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<CommandBuffer,Dispatch>,Allocator>>::type Device::allocateCommandBuffersUnique( const CommandBufferAllocateInfo & allocateInfo, Allocator const& vectorAllocator, Dispatch const &d ) const
  44074. {
  44075. static_assert( sizeof( CommandBuffer ) <= sizeof( UniqueHandle<CommandBuffer, Dispatch> ), "CommandBuffer is greater than UniqueHandle<CommandBuffer, Dispatch>!" );
  44076. std::vector<UniqueHandle<CommandBuffer, Dispatch>, Allocator> commandBuffers( vectorAllocator );
  44077. commandBuffers.reserve( allocateInfo.commandBufferCount );
  44078. CommandBuffer* buffer = reinterpret_cast<CommandBuffer*>( reinterpret_cast<char*>( commandBuffers.data() ) + allocateInfo.commandBufferCount * ( sizeof( UniqueHandle<CommandBuffer, Dispatch> ) - sizeof( CommandBuffer ) ) );
  44079. Result result = static_cast<Result>(d.vkAllocateCommandBuffers( m_device, reinterpret_cast<const VkCommandBufferAllocateInfo*>( &allocateInfo ), reinterpret_cast<VkCommandBuffer*>( buffer ) ) );
  44080. if (result == vk::Result::eSuccess)
  44081. {
  44082. PoolFree<Device,CommandPool,Dispatch> deleter( *this, allocateInfo.commandPool, d );
  44083. for ( size_t i=0 ; i<allocateInfo.commandBufferCount ; i++ )
  44084. {
  44085. commandBuffers.push_back( UniqueHandle<CommandBuffer, Dispatch>( buffer[i], deleter ) );
  44086. }
  44087. }
  44088. return createResultValue( result, commandBuffers, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateCommandBuffersUnique" );
  44089. }
  44090. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  44091. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  44092. template<typename Dispatch>
  44093. VULKAN_HPP_INLINE Result Device::allocateDescriptorSets( const DescriptorSetAllocateInfo* pAllocateInfo, DescriptorSet* pDescriptorSets, Dispatch const &d) const
  44094. {
  44095. return static_cast<Result>( d.vkAllocateDescriptorSets( m_device, reinterpret_cast<const VkDescriptorSetAllocateInfo*>( pAllocateInfo ), reinterpret_cast<VkDescriptorSet*>( pDescriptorSets ) ) );
  44096. }
  44097. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  44098. template<typename Allocator, typename Dispatch>
  44099. VULKAN_HPP_INLINE typename ResultValueType<std::vector<DescriptorSet,Allocator>>::type Device::allocateDescriptorSets( const DescriptorSetAllocateInfo & allocateInfo, Dispatch const &d ) const
  44100. {
  44101. std::vector<DescriptorSet,Allocator> descriptorSets( allocateInfo.descriptorSetCount );
  44102. Result result = static_cast<Result>( d.vkAllocateDescriptorSets( m_device, reinterpret_cast<const VkDescriptorSetAllocateInfo*>( &allocateInfo ), reinterpret_cast<VkDescriptorSet*>( descriptorSets.data() ) ) );
  44103. return createResultValue( result, descriptorSets, VULKAN_HPP_NAMESPACE_STRING"::Device::allocateDescriptorSets" );
  44104. }
  44105. template<typename Allocator, typename Dispatch>
  44106. VULKAN_HPP_INLINE typename ResultValueType<std::vector<DescriptorSet,Allocator>>::type Device::allocateDescriptorSets( const DescriptorSetAllocateInfo & allocateInfo, Allocator const& vectorAllocator, Dispatch const &d ) const
  44107. {
  44108. std::vector<DescriptorSet,Allocator> descriptorSets( allocateInfo.descriptorSetCount, vectorAllocator );
  44109. Result result = static_cast<Result>( d.vkAllocateDescriptorSets( m_device, reinterpret_cast<const VkDescriptorSetAllocateInfo*>( &allocateInfo ), reinterpret_cast<VkDescriptorSet*>( descriptorSets.data() ) ) );
  44110. return createResultValue( result, descriptorSets, VULKAN_HPP_NAMESPACE_STRING"::Device::allocateDescriptorSets" );
  44111. }
  44112. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  44113. template<typename Allocator, typename Dispatch>
  44114. VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<DescriptorSet,Dispatch>,Allocator>>::type Device::allocateDescriptorSetsUnique( const DescriptorSetAllocateInfo & allocateInfo, Dispatch const &d ) const
  44115. {
  44116. static_assert( sizeof( DescriptorSet ) <= sizeof( UniqueHandle<DescriptorSet, Dispatch> ), "DescriptorSet is greater than UniqueHandle<DescriptorSet, Dispatch>!" );
  44117. std::vector<UniqueHandle<DescriptorSet, Dispatch>, Allocator> descriptorSets;
  44118. descriptorSets.reserve( allocateInfo.descriptorSetCount );
  44119. DescriptorSet* buffer = reinterpret_cast<DescriptorSet*>( reinterpret_cast<char*>( descriptorSets.data() ) + allocateInfo.descriptorSetCount * ( sizeof( UniqueHandle<DescriptorSet, Dispatch> ) - sizeof( DescriptorSet ) ) );
  44120. Result result = static_cast<Result>(d.vkAllocateDescriptorSets( m_device, reinterpret_cast<const VkDescriptorSetAllocateInfo*>( &allocateInfo ), reinterpret_cast<VkDescriptorSet*>( buffer ) ) );
  44121. if (result == vk::Result::eSuccess)
  44122. {
  44123. PoolFree<Device,DescriptorPool,Dispatch> deleter( *this, allocateInfo.descriptorPool, d );
  44124. for ( size_t i=0 ; i<allocateInfo.descriptorSetCount ; i++ )
  44125. {
  44126. descriptorSets.push_back( UniqueHandle<DescriptorSet, Dispatch>( buffer[i], deleter ) );
  44127. }
  44128. }
  44129. return createResultValue( result, descriptorSets, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateDescriptorSetsUnique" );
  44130. }
  44131. template<typename Allocator, typename Dispatch>
  44132. VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<DescriptorSet,Dispatch>,Allocator>>::type Device::allocateDescriptorSetsUnique( const DescriptorSetAllocateInfo & allocateInfo, Allocator const& vectorAllocator, Dispatch const &d ) const
  44133. {
  44134. static_assert( sizeof( DescriptorSet ) <= sizeof( UniqueHandle<DescriptorSet, Dispatch> ), "DescriptorSet is greater than UniqueHandle<DescriptorSet, Dispatch>!" );
  44135. std::vector<UniqueHandle<DescriptorSet, Dispatch>, Allocator> descriptorSets( vectorAllocator );
  44136. descriptorSets.reserve( allocateInfo.descriptorSetCount );
  44137. DescriptorSet* buffer = reinterpret_cast<DescriptorSet*>( reinterpret_cast<char*>( descriptorSets.data() ) + allocateInfo.descriptorSetCount * ( sizeof( UniqueHandle<DescriptorSet, Dispatch> ) - sizeof( DescriptorSet ) ) );
  44138. Result result = static_cast<Result>(d.vkAllocateDescriptorSets( m_device, reinterpret_cast<const VkDescriptorSetAllocateInfo*>( &allocateInfo ), reinterpret_cast<VkDescriptorSet*>( buffer ) ) );
  44139. if (result == vk::Result::eSuccess)
  44140. {
  44141. PoolFree<Device,DescriptorPool,Dispatch> deleter( *this, allocateInfo.descriptorPool, d );
  44142. for ( size_t i=0 ; i<allocateInfo.descriptorSetCount ; i++ )
  44143. {
  44144. descriptorSets.push_back( UniqueHandle<DescriptorSet, Dispatch>( buffer[i], deleter ) );
  44145. }
  44146. }
  44147. return createResultValue( result, descriptorSets, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateDescriptorSetsUnique" );
  44148. }
  44149. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  44150. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  44151. template<typename Dispatch>
  44152. VULKAN_HPP_INLINE Result Device::allocateMemory( const MemoryAllocateInfo* pAllocateInfo, const AllocationCallbacks* pAllocator, DeviceMemory* pMemory, Dispatch const &d) const
  44153. {
  44154. return static_cast<Result>( d.vkAllocateMemory( m_device, reinterpret_cast<const VkMemoryAllocateInfo*>( pAllocateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkDeviceMemory*>( pMemory ) ) );
  44155. }
  44156. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  44157. template<typename Dispatch>
  44158. VULKAN_HPP_INLINE ResultValueType<DeviceMemory>::type Device::allocateMemory( const MemoryAllocateInfo & allocateInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44159. {
  44160. DeviceMemory memory;
  44161. Result result = static_cast<Result>( d.vkAllocateMemory( m_device, reinterpret_cast<const VkMemoryAllocateInfo*>( &allocateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDeviceMemory*>( &memory ) ) );
  44162. return createResultValue( result, memory, VULKAN_HPP_NAMESPACE_STRING"::Device::allocateMemory" );
  44163. }
  44164. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  44165. template<typename Dispatch>
  44166. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<DeviceMemory,Dispatch>>::type Device::allocateMemoryUnique( const MemoryAllocateInfo & allocateInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44167. {
  44168. DeviceMemory memory;
  44169. Result result = static_cast<Result>( d.vkAllocateMemory( m_device, reinterpret_cast<const VkMemoryAllocateInfo*>( &allocateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDeviceMemory*>( &memory ) ) );
  44170. ObjectFree<Device,Dispatch> deleter( *this, allocator, d );
  44171. return createResultValue<DeviceMemory,Dispatch>( result, memory, VULKAN_HPP_NAMESPACE_STRING"::Device::allocateMemoryUnique", deleter );
  44172. }
  44173. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  44174. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  44175. template<typename Dispatch>
  44176. VULKAN_HPP_INLINE Result Device::bindAccelerationStructureMemoryNV( uint32_t bindInfoCount, const BindAccelerationStructureMemoryInfoNV* pBindInfos, Dispatch const &d) const
  44177. {
  44178. return static_cast<Result>( d.vkBindAccelerationStructureMemoryNV( m_device, bindInfoCount, reinterpret_cast<const VkBindAccelerationStructureMemoryInfoNV*>( pBindInfos ) ) );
  44179. }
  44180. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  44181. template<typename Dispatch>
  44182. VULKAN_HPP_INLINE ResultValueType<void>::type Device::bindAccelerationStructureMemoryNV( ArrayProxy<const BindAccelerationStructureMemoryInfoNV> bindInfos, Dispatch const &d ) const
  44183. {
  44184. Result result = static_cast<Result>( d.vkBindAccelerationStructureMemoryNV( m_device, bindInfos.size() , reinterpret_cast<const VkBindAccelerationStructureMemoryInfoNV*>( bindInfos.data() ) ) );
  44185. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::bindAccelerationStructureMemoryNV" );
  44186. }
  44187. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  44188. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  44189. template<typename Dispatch>
  44190. VULKAN_HPP_INLINE Result Device::bindBufferMemory( Buffer buffer, DeviceMemory memory, DeviceSize memoryOffset, Dispatch const &d) const
  44191. {
  44192. return static_cast<Result>( d.vkBindBufferMemory( m_device, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceMemory>( memory ), static_cast<VkDeviceSize>( memoryOffset ) ) );
  44193. }
  44194. #else
  44195. template<typename Dispatch>
  44196. VULKAN_HPP_INLINE ResultValueType<void>::type Device::bindBufferMemory( Buffer buffer, DeviceMemory memory, DeviceSize memoryOffset, Dispatch const &d ) const
  44197. {
  44198. Result result = static_cast<Result>( d.vkBindBufferMemory( m_device, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceMemory>( memory ), static_cast<VkDeviceSize>( memoryOffset ) ) );
  44199. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::bindBufferMemory" );
  44200. }
  44201. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  44202. template<typename Dispatch>
  44203. VULKAN_HPP_INLINE Result Device::bindBufferMemory2( uint32_t bindInfoCount, const BindBufferMemoryInfo* pBindInfos, Dispatch const &d) const
  44204. {
  44205. return static_cast<Result>( d.vkBindBufferMemory2( m_device, bindInfoCount, reinterpret_cast<const VkBindBufferMemoryInfo*>( pBindInfos ) ) );
  44206. }
  44207. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  44208. template<typename Dispatch>
  44209. VULKAN_HPP_INLINE ResultValueType<void>::type Device::bindBufferMemory2( ArrayProxy<const BindBufferMemoryInfo> bindInfos, Dispatch const &d ) const
  44210. {
  44211. Result result = static_cast<Result>( d.vkBindBufferMemory2( m_device, bindInfos.size() , reinterpret_cast<const VkBindBufferMemoryInfo*>( bindInfos.data() ) ) );
  44212. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::bindBufferMemory2" );
  44213. }
  44214. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  44215. template<typename Dispatch>
  44216. VULKAN_HPP_INLINE Result Device::bindBufferMemory2KHR( uint32_t bindInfoCount, const BindBufferMemoryInfo* pBindInfos, Dispatch const &d) const
  44217. {
  44218. return static_cast<Result>( d.vkBindBufferMemory2KHR( m_device, bindInfoCount, reinterpret_cast<const VkBindBufferMemoryInfo*>( pBindInfos ) ) );
  44219. }
  44220. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  44221. template<typename Dispatch>
  44222. VULKAN_HPP_INLINE ResultValueType<void>::type Device::bindBufferMemory2KHR( ArrayProxy<const BindBufferMemoryInfo> bindInfos, Dispatch const &d ) const
  44223. {
  44224. Result result = static_cast<Result>( d.vkBindBufferMemory2KHR( m_device, bindInfos.size() , reinterpret_cast<const VkBindBufferMemoryInfo*>( bindInfos.data() ) ) );
  44225. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::bindBufferMemory2KHR" );
  44226. }
  44227. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  44228. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  44229. template<typename Dispatch>
  44230. VULKAN_HPP_INLINE Result Device::bindImageMemory( Image image, DeviceMemory memory, DeviceSize memoryOffset, Dispatch const &d) const
  44231. {
  44232. return static_cast<Result>( d.vkBindImageMemory( m_device, static_cast<VkImage>( image ), static_cast<VkDeviceMemory>( memory ), static_cast<VkDeviceSize>( memoryOffset ) ) );
  44233. }
  44234. #else
  44235. template<typename Dispatch>
  44236. VULKAN_HPP_INLINE ResultValueType<void>::type Device::bindImageMemory( Image image, DeviceMemory memory, DeviceSize memoryOffset, Dispatch const &d ) const
  44237. {
  44238. Result result = static_cast<Result>( d.vkBindImageMemory( m_device, static_cast<VkImage>( image ), static_cast<VkDeviceMemory>( memory ), static_cast<VkDeviceSize>( memoryOffset ) ) );
  44239. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::bindImageMemory" );
  44240. }
  44241. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  44242. template<typename Dispatch>
  44243. VULKAN_HPP_INLINE Result Device::bindImageMemory2( uint32_t bindInfoCount, const BindImageMemoryInfo* pBindInfos, Dispatch const &d) const
  44244. {
  44245. return static_cast<Result>( d.vkBindImageMemory2( m_device, bindInfoCount, reinterpret_cast<const VkBindImageMemoryInfo*>( pBindInfos ) ) );
  44246. }
  44247. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  44248. template<typename Dispatch>
  44249. VULKAN_HPP_INLINE ResultValueType<void>::type Device::bindImageMemory2( ArrayProxy<const BindImageMemoryInfo> bindInfos, Dispatch const &d ) const
  44250. {
  44251. Result result = static_cast<Result>( d.vkBindImageMemory2( m_device, bindInfos.size() , reinterpret_cast<const VkBindImageMemoryInfo*>( bindInfos.data() ) ) );
  44252. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::bindImageMemory2" );
  44253. }
  44254. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  44255. template<typename Dispatch>
  44256. VULKAN_HPP_INLINE Result Device::bindImageMemory2KHR( uint32_t bindInfoCount, const BindImageMemoryInfo* pBindInfos, Dispatch const &d) const
  44257. {
  44258. return static_cast<Result>( d.vkBindImageMemory2KHR( m_device, bindInfoCount, reinterpret_cast<const VkBindImageMemoryInfo*>( pBindInfos ) ) );
  44259. }
  44260. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  44261. template<typename Dispatch>
  44262. VULKAN_HPP_INLINE ResultValueType<void>::type Device::bindImageMemory2KHR( ArrayProxy<const BindImageMemoryInfo> bindInfos, Dispatch const &d ) const
  44263. {
  44264. Result result = static_cast<Result>( d.vkBindImageMemory2KHR( m_device, bindInfos.size() , reinterpret_cast<const VkBindImageMemoryInfo*>( bindInfos.data() ) ) );
  44265. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::bindImageMemory2KHR" );
  44266. }
  44267. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  44268. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  44269. template<typename Dispatch>
  44270. VULKAN_HPP_INLINE Result Device::compileDeferredNV( Pipeline pipeline, uint32_t shader, Dispatch const &d) const
  44271. {
  44272. return static_cast<Result>( d.vkCompileDeferredNV( m_device, static_cast<VkPipeline>( pipeline ), shader ) );
  44273. }
  44274. #else
  44275. template<typename Dispatch>
  44276. VULKAN_HPP_INLINE ResultValueType<void>::type Device::compileDeferredNV( Pipeline pipeline, uint32_t shader, Dispatch const &d ) const
  44277. {
  44278. Result result = static_cast<Result>( d.vkCompileDeferredNV( m_device, static_cast<VkPipeline>( pipeline ), shader ) );
  44279. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::compileDeferredNV" );
  44280. }
  44281. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  44282. template<typename Dispatch>
  44283. VULKAN_HPP_INLINE Result Device::createAccelerationStructureNV( const AccelerationStructureCreateInfoNV* pCreateInfo, const AllocationCallbacks* pAllocator, AccelerationStructureNV* pAccelerationStructure, Dispatch const &d) const
  44284. {
  44285. return static_cast<Result>( d.vkCreateAccelerationStructureNV( m_device, reinterpret_cast<const VkAccelerationStructureCreateInfoNV*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkAccelerationStructureNV*>( pAccelerationStructure ) ) );
  44286. }
  44287. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  44288. template<typename Dispatch>
  44289. VULKAN_HPP_INLINE ResultValueType<AccelerationStructureNV>::type Device::createAccelerationStructureNV( const AccelerationStructureCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44290. {
  44291. AccelerationStructureNV accelerationStructure;
  44292. Result result = static_cast<Result>( d.vkCreateAccelerationStructureNV( m_device, reinterpret_cast<const VkAccelerationStructureCreateInfoNV*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkAccelerationStructureNV*>( &accelerationStructure ) ) );
  44293. return createResultValue( result, accelerationStructure, VULKAN_HPP_NAMESPACE_STRING"::Device::createAccelerationStructureNV" );
  44294. }
  44295. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  44296. template<typename Dispatch>
  44297. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<AccelerationStructureNV,Dispatch>>::type Device::createAccelerationStructureNVUnique( const AccelerationStructureCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44298. {
  44299. AccelerationStructureNV accelerationStructure;
  44300. Result result = static_cast<Result>( d.vkCreateAccelerationStructureNV( m_device, reinterpret_cast<const VkAccelerationStructureCreateInfoNV*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkAccelerationStructureNV*>( &accelerationStructure ) ) );
  44301. ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
  44302. return createResultValue<AccelerationStructureNV,Dispatch>( result, accelerationStructure, VULKAN_HPP_NAMESPACE_STRING"::Device::createAccelerationStructureNVUnique", deleter );
  44303. }
  44304. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  44305. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  44306. template<typename Dispatch>
  44307. VULKAN_HPP_INLINE Result Device::createBuffer( const BufferCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, Buffer* pBuffer, Dispatch const &d) const
  44308. {
  44309. return static_cast<Result>( d.vkCreateBuffer( m_device, reinterpret_cast<const VkBufferCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkBuffer*>( pBuffer ) ) );
  44310. }
  44311. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  44312. template<typename Dispatch>
  44313. VULKAN_HPP_INLINE ResultValueType<Buffer>::type Device::createBuffer( const BufferCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44314. {
  44315. Buffer buffer;
  44316. Result result = static_cast<Result>( d.vkCreateBuffer( m_device, reinterpret_cast<const VkBufferCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkBuffer*>( &buffer ) ) );
  44317. return createResultValue( result, buffer, VULKAN_HPP_NAMESPACE_STRING"::Device::createBuffer" );
  44318. }
  44319. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  44320. template<typename Dispatch>
  44321. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Buffer,Dispatch>>::type Device::createBufferUnique( const BufferCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44322. {
  44323. Buffer buffer;
  44324. Result result = static_cast<Result>( d.vkCreateBuffer( m_device, reinterpret_cast<const VkBufferCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkBuffer*>( &buffer ) ) );
  44325. ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
  44326. return createResultValue<Buffer,Dispatch>( result, buffer, VULKAN_HPP_NAMESPACE_STRING"::Device::createBufferUnique", deleter );
  44327. }
  44328. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  44329. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  44330. template<typename Dispatch>
  44331. VULKAN_HPP_INLINE Result Device::createBufferView( const BufferViewCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, BufferView* pView, Dispatch const &d) const
  44332. {
  44333. return static_cast<Result>( d.vkCreateBufferView( m_device, reinterpret_cast<const VkBufferViewCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkBufferView*>( pView ) ) );
  44334. }
  44335. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  44336. template<typename Dispatch>
  44337. VULKAN_HPP_INLINE ResultValueType<BufferView>::type Device::createBufferView( const BufferViewCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44338. {
  44339. BufferView view;
  44340. Result result = static_cast<Result>( d.vkCreateBufferView( m_device, reinterpret_cast<const VkBufferViewCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkBufferView*>( &view ) ) );
  44341. return createResultValue( result, view, VULKAN_HPP_NAMESPACE_STRING"::Device::createBufferView" );
  44342. }
  44343. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  44344. template<typename Dispatch>
  44345. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<BufferView,Dispatch>>::type Device::createBufferViewUnique( const BufferViewCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44346. {
  44347. BufferView view;
  44348. Result result = static_cast<Result>( d.vkCreateBufferView( m_device, reinterpret_cast<const VkBufferViewCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkBufferView*>( &view ) ) );
  44349. ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
  44350. return createResultValue<BufferView,Dispatch>( result, view, VULKAN_HPP_NAMESPACE_STRING"::Device::createBufferViewUnique", deleter );
  44351. }
  44352. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  44353. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  44354. template<typename Dispatch>
  44355. VULKAN_HPP_INLINE Result Device::createCommandPool( const CommandPoolCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, CommandPool* pCommandPool, Dispatch const &d) const
  44356. {
  44357. return static_cast<Result>( d.vkCreateCommandPool( m_device, reinterpret_cast<const VkCommandPoolCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkCommandPool*>( pCommandPool ) ) );
  44358. }
  44359. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  44360. template<typename Dispatch>
  44361. VULKAN_HPP_INLINE ResultValueType<CommandPool>::type Device::createCommandPool( const CommandPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44362. {
  44363. CommandPool commandPool;
  44364. Result result = static_cast<Result>( d.vkCreateCommandPool( m_device, reinterpret_cast<const VkCommandPoolCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkCommandPool*>( &commandPool ) ) );
  44365. return createResultValue( result, commandPool, VULKAN_HPP_NAMESPACE_STRING"::Device::createCommandPool" );
  44366. }
  44367. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  44368. template<typename Dispatch>
  44369. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<CommandPool,Dispatch>>::type Device::createCommandPoolUnique( const CommandPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44370. {
  44371. CommandPool commandPool;
  44372. Result result = static_cast<Result>( d.vkCreateCommandPool( m_device, reinterpret_cast<const VkCommandPoolCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkCommandPool*>( &commandPool ) ) );
  44373. ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
  44374. return createResultValue<CommandPool,Dispatch>( result, commandPool, VULKAN_HPP_NAMESPACE_STRING"::Device::createCommandPoolUnique", deleter );
  44375. }
  44376. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  44377. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  44378. template<typename Dispatch>
  44379. VULKAN_HPP_INLINE Result Device::createComputePipelines( PipelineCache pipelineCache, uint32_t createInfoCount, const ComputePipelineCreateInfo* pCreateInfos, const AllocationCallbacks* pAllocator, Pipeline* pPipelines, Dispatch const &d) const
  44380. {
  44381. return static_cast<Result>( d.vkCreateComputePipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfoCount, reinterpret_cast<const VkComputePipelineCreateInfo*>( pCreateInfos ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkPipeline*>( pPipelines ) ) );
  44382. }
  44383. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  44384. template<typename Allocator, typename Dispatch>
  44385. VULKAN_HPP_INLINE typename ResultValueType<std::vector<Pipeline,Allocator>>::type Device::createComputePipelines( PipelineCache pipelineCache, ArrayProxy<const ComputePipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44386. {
  44387. std::vector<Pipeline,Allocator> pipelines( createInfos.size() );
  44388. Result result = static_cast<Result>( d.vkCreateComputePipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size() , reinterpret_cast<const VkComputePipelineCreateInfo*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( pipelines.data() ) ) );
  44389. return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING"::Device::createComputePipelines" );
  44390. }
  44391. template<typename Allocator, typename Dispatch>
  44392. VULKAN_HPP_INLINE typename ResultValueType<std::vector<Pipeline,Allocator>>::type Device::createComputePipelines( PipelineCache pipelineCache, ArrayProxy<const ComputePipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const
  44393. {
  44394. std::vector<Pipeline,Allocator> pipelines( createInfos.size(), vectorAllocator );
  44395. Result result = static_cast<Result>( d.vkCreateComputePipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size() , reinterpret_cast<const VkComputePipelineCreateInfo*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( pipelines.data() ) ) );
  44396. return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING"::Device::createComputePipelines" );
  44397. }
  44398. template<typename Dispatch>
  44399. VULKAN_HPP_INLINE ResultValueType<Pipeline>::type Device::createComputePipeline( PipelineCache pipelineCache, const ComputePipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44400. {
  44401. Pipeline pipeline;
  44402. Result result = static_cast<Result>( d.vkCreateComputePipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), 1 , reinterpret_cast<const VkComputePipelineCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( &pipeline ) ) );
  44403. return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING"::Device::createComputePipeline" );
  44404. }
  44405. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  44406. template<typename Allocator, typename Dispatch>
  44407. VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>>::type Device::createComputePipelinesUnique( PipelineCache pipelineCache, ArrayProxy<const ComputePipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44408. {
  44409. static_assert( sizeof( Pipeline ) <= sizeof( UniqueHandle<Pipeline, Dispatch> ), "Pipeline is greater than UniqueHandle<Pipeline, Dispatch>!" );
  44410. std::vector<UniqueHandle<Pipeline, Dispatch>, Allocator> pipelines;
  44411. pipelines.reserve( createInfos.size() );
  44412. Pipeline* buffer = reinterpret_cast<Pipeline*>( reinterpret_cast<char*>( pipelines.data() ) + createInfos.size() * ( sizeof( UniqueHandle<Pipeline, Dispatch> ) - sizeof( Pipeline ) ) );
  44413. Result result = static_cast<Result>(d.vkCreateComputePipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size() , reinterpret_cast<const VkComputePipelineCreateInfo*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( buffer ) ) );
  44414. if (result == vk::Result::eSuccess)
  44415. {
  44416. ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
  44417. for ( size_t i=0 ; i<createInfos.size() ; i++ )
  44418. {
  44419. pipelines.push_back( UniqueHandle<Pipeline, Dispatch>( buffer[i], deleter ) );
  44420. }
  44421. }
  44422. return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelinesUnique" );
  44423. }
  44424. template<typename Allocator, typename Dispatch>
  44425. VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>>::type Device::createComputePipelinesUnique( PipelineCache pipelineCache, ArrayProxy<const ComputePipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const
  44426. {
  44427. static_assert( sizeof( Pipeline ) <= sizeof( UniqueHandle<Pipeline, Dispatch> ), "Pipeline is greater than UniqueHandle<Pipeline, Dispatch>!" );
  44428. std::vector<UniqueHandle<Pipeline, Dispatch>, Allocator> pipelines( vectorAllocator );
  44429. pipelines.reserve( createInfos.size() );
  44430. Pipeline* buffer = reinterpret_cast<Pipeline*>( reinterpret_cast<char*>( pipelines.data() ) + createInfos.size() * ( sizeof( UniqueHandle<Pipeline, Dispatch> ) - sizeof( Pipeline ) ) );
  44431. Result result = static_cast<Result>(d.vkCreateComputePipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size() , reinterpret_cast<const VkComputePipelineCreateInfo*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( buffer ) ) );
  44432. if (result == vk::Result::eSuccess)
  44433. {
  44434. ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
  44435. for ( size_t i=0 ; i<createInfos.size() ; i++ )
  44436. {
  44437. pipelines.push_back( UniqueHandle<Pipeline, Dispatch>( buffer[i], deleter ) );
  44438. }
  44439. }
  44440. return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelinesUnique" );
  44441. }
  44442. template<typename Dispatch>
  44443. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Pipeline,Dispatch>>::type Device::createComputePipelineUnique( PipelineCache pipelineCache, const ComputePipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44444. {
  44445. Pipeline pipeline;
  44446. Result result = static_cast<Result>( d.vkCreateComputePipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), 1 , reinterpret_cast<const VkComputePipelineCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( &pipeline ) ) );
  44447. ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
  44448. return createResultValue<Pipeline,Dispatch>( result, pipeline, VULKAN_HPP_NAMESPACE_STRING"::Device::createComputePipelineUnique", deleter );
  44449. }
  44450. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  44451. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  44452. template<typename Dispatch>
  44453. VULKAN_HPP_INLINE Result Device::createDescriptorPool( const DescriptorPoolCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, DescriptorPool* pDescriptorPool, Dispatch const &d) const
  44454. {
  44455. return static_cast<Result>( d.vkCreateDescriptorPool( m_device, reinterpret_cast<const VkDescriptorPoolCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkDescriptorPool*>( pDescriptorPool ) ) );
  44456. }
  44457. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  44458. template<typename Dispatch>
  44459. VULKAN_HPP_INLINE ResultValueType<DescriptorPool>::type Device::createDescriptorPool( const DescriptorPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44460. {
  44461. DescriptorPool descriptorPool;
  44462. Result result = static_cast<Result>( d.vkCreateDescriptorPool( m_device, reinterpret_cast<const VkDescriptorPoolCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDescriptorPool*>( &descriptorPool ) ) );
  44463. return createResultValue( result, descriptorPool, VULKAN_HPP_NAMESPACE_STRING"::Device::createDescriptorPool" );
  44464. }
  44465. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  44466. template<typename Dispatch>
  44467. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<DescriptorPool,Dispatch>>::type Device::createDescriptorPoolUnique( const DescriptorPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44468. {
  44469. DescriptorPool descriptorPool;
  44470. Result result = static_cast<Result>( d.vkCreateDescriptorPool( m_device, reinterpret_cast<const VkDescriptorPoolCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDescriptorPool*>( &descriptorPool ) ) );
  44471. ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
  44472. return createResultValue<DescriptorPool,Dispatch>( result, descriptorPool, VULKAN_HPP_NAMESPACE_STRING"::Device::createDescriptorPoolUnique", deleter );
  44473. }
  44474. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  44475. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  44476. template<typename Dispatch>
  44477. VULKAN_HPP_INLINE Result Device::createDescriptorSetLayout( const DescriptorSetLayoutCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, DescriptorSetLayout* pSetLayout, Dispatch const &d) const
  44478. {
  44479. return static_cast<Result>( d.vkCreateDescriptorSetLayout( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkDescriptorSetLayout*>( pSetLayout ) ) );
  44480. }
  44481. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  44482. template<typename Dispatch>
  44483. VULKAN_HPP_INLINE ResultValueType<DescriptorSetLayout>::type Device::createDescriptorSetLayout( const DescriptorSetLayoutCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44484. {
  44485. DescriptorSetLayout setLayout;
  44486. Result result = static_cast<Result>( d.vkCreateDescriptorSetLayout( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDescriptorSetLayout*>( &setLayout ) ) );
  44487. return createResultValue( result, setLayout, VULKAN_HPP_NAMESPACE_STRING"::Device::createDescriptorSetLayout" );
  44488. }
  44489. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  44490. template<typename Dispatch>
  44491. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<DescriptorSetLayout,Dispatch>>::type Device::createDescriptorSetLayoutUnique( const DescriptorSetLayoutCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44492. {
  44493. DescriptorSetLayout setLayout;
  44494. Result result = static_cast<Result>( d.vkCreateDescriptorSetLayout( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDescriptorSetLayout*>( &setLayout ) ) );
  44495. ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
  44496. return createResultValue<DescriptorSetLayout,Dispatch>( result, setLayout, VULKAN_HPP_NAMESPACE_STRING"::Device::createDescriptorSetLayoutUnique", deleter );
  44497. }
  44498. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  44499. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  44500. template<typename Dispatch>
  44501. VULKAN_HPP_INLINE Result Device::createDescriptorUpdateTemplate( const DescriptorUpdateTemplateCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, DescriptorUpdateTemplate* pDescriptorUpdateTemplate, Dispatch const &d) const
  44502. {
  44503. return static_cast<Result>( d.vkCreateDescriptorUpdateTemplate( m_device, reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkDescriptorUpdateTemplate*>( pDescriptorUpdateTemplate ) ) );
  44504. }
  44505. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  44506. template<typename Dispatch>
  44507. VULKAN_HPP_INLINE ResultValueType<DescriptorUpdateTemplate>::type Device::createDescriptorUpdateTemplate( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44508. {
  44509. DescriptorUpdateTemplate descriptorUpdateTemplate;
  44510. Result result = static_cast<Result>( d.vkCreateDescriptorUpdateTemplate( m_device, reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDescriptorUpdateTemplate*>( &descriptorUpdateTemplate ) ) );
  44511. return createResultValue( result, descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE_STRING"::Device::createDescriptorUpdateTemplate" );
  44512. }
  44513. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  44514. template<typename Dispatch>
  44515. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<DescriptorUpdateTemplate,Dispatch>>::type Device::createDescriptorUpdateTemplateUnique( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44516. {
  44517. DescriptorUpdateTemplate descriptorUpdateTemplate;
  44518. Result result = static_cast<Result>( d.vkCreateDescriptorUpdateTemplate( m_device, reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDescriptorUpdateTemplate*>( &descriptorUpdateTemplate ) ) );
  44519. ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
  44520. return createResultValue<DescriptorUpdateTemplate,Dispatch>( result, descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE_STRING"::Device::createDescriptorUpdateTemplateUnique", deleter );
  44521. }
  44522. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  44523. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  44524. template<typename Dispatch>
  44525. VULKAN_HPP_INLINE Result Device::createDescriptorUpdateTemplateKHR( const DescriptorUpdateTemplateCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, DescriptorUpdateTemplate* pDescriptorUpdateTemplate, Dispatch const &d) const
  44526. {
  44527. return static_cast<Result>( d.vkCreateDescriptorUpdateTemplateKHR( m_device, reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkDescriptorUpdateTemplate*>( pDescriptorUpdateTemplate ) ) );
  44528. }
  44529. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  44530. template<typename Dispatch>
  44531. VULKAN_HPP_INLINE ResultValueType<DescriptorUpdateTemplate>::type Device::createDescriptorUpdateTemplateKHR( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44532. {
  44533. DescriptorUpdateTemplate descriptorUpdateTemplate;
  44534. Result result = static_cast<Result>( d.vkCreateDescriptorUpdateTemplateKHR( m_device, reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDescriptorUpdateTemplate*>( &descriptorUpdateTemplate ) ) );
  44535. return createResultValue( result, descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE_STRING"::Device::createDescriptorUpdateTemplateKHR" );
  44536. }
  44537. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  44538. template<typename Dispatch>
  44539. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<DescriptorUpdateTemplate,Dispatch>>::type Device::createDescriptorUpdateTemplateKHRUnique( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44540. {
  44541. DescriptorUpdateTemplate descriptorUpdateTemplate;
  44542. Result result = static_cast<Result>( d.vkCreateDescriptorUpdateTemplateKHR( m_device, reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDescriptorUpdateTemplate*>( &descriptorUpdateTemplate ) ) );
  44543. ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
  44544. return createResultValue<DescriptorUpdateTemplate,Dispatch>( result, descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE_STRING"::Device::createDescriptorUpdateTemplateKHRUnique", deleter );
  44545. }
  44546. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  44547. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  44548. template<typename Dispatch>
  44549. VULKAN_HPP_INLINE Result Device::createEvent( const EventCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, Event* pEvent, Dispatch const &d) const
  44550. {
  44551. return static_cast<Result>( d.vkCreateEvent( m_device, reinterpret_cast<const VkEventCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkEvent*>( pEvent ) ) );
  44552. }
  44553. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  44554. template<typename Dispatch>
  44555. VULKAN_HPP_INLINE ResultValueType<Event>::type Device::createEvent( const EventCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44556. {
  44557. Event event;
  44558. Result result = static_cast<Result>( d.vkCreateEvent( m_device, reinterpret_cast<const VkEventCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkEvent*>( &event ) ) );
  44559. return createResultValue( result, event, VULKAN_HPP_NAMESPACE_STRING"::Device::createEvent" );
  44560. }
  44561. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  44562. template<typename Dispatch>
  44563. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Event,Dispatch>>::type Device::createEventUnique( const EventCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44564. {
  44565. Event event;
  44566. Result result = static_cast<Result>( d.vkCreateEvent( m_device, reinterpret_cast<const VkEventCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkEvent*>( &event ) ) );
  44567. ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
  44568. return createResultValue<Event,Dispatch>( result, event, VULKAN_HPP_NAMESPACE_STRING"::Device::createEventUnique", deleter );
  44569. }
  44570. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  44571. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  44572. template<typename Dispatch>
  44573. VULKAN_HPP_INLINE Result Device::createFence( const FenceCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, Fence* pFence, Dispatch const &d) const
  44574. {
  44575. return static_cast<Result>( d.vkCreateFence( m_device, reinterpret_cast<const VkFenceCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkFence*>( pFence ) ) );
  44576. }
  44577. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  44578. template<typename Dispatch>
  44579. VULKAN_HPP_INLINE ResultValueType<Fence>::type Device::createFence( const FenceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44580. {
  44581. Fence fence;
  44582. Result result = static_cast<Result>( d.vkCreateFence( m_device, reinterpret_cast<const VkFenceCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkFence*>( &fence ) ) );
  44583. return createResultValue( result, fence, VULKAN_HPP_NAMESPACE_STRING"::Device::createFence" );
  44584. }
  44585. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  44586. template<typename Dispatch>
  44587. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Fence,Dispatch>>::type Device::createFenceUnique( const FenceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44588. {
  44589. Fence fence;
  44590. Result result = static_cast<Result>( d.vkCreateFence( m_device, reinterpret_cast<const VkFenceCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkFence*>( &fence ) ) );
  44591. ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
  44592. return createResultValue<Fence,Dispatch>( result, fence, VULKAN_HPP_NAMESPACE_STRING"::Device::createFenceUnique", deleter );
  44593. }
  44594. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  44595. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  44596. template<typename Dispatch>
  44597. VULKAN_HPP_INLINE Result Device::createFramebuffer( const FramebufferCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, Framebuffer* pFramebuffer, Dispatch const &d) const
  44598. {
  44599. return static_cast<Result>( d.vkCreateFramebuffer( m_device, reinterpret_cast<const VkFramebufferCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkFramebuffer*>( pFramebuffer ) ) );
  44600. }
  44601. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  44602. template<typename Dispatch>
  44603. VULKAN_HPP_INLINE ResultValueType<Framebuffer>::type Device::createFramebuffer( const FramebufferCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44604. {
  44605. Framebuffer framebuffer;
  44606. Result result = static_cast<Result>( d.vkCreateFramebuffer( m_device, reinterpret_cast<const VkFramebufferCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkFramebuffer*>( &framebuffer ) ) );
  44607. return createResultValue( result, framebuffer, VULKAN_HPP_NAMESPACE_STRING"::Device::createFramebuffer" );
  44608. }
  44609. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  44610. template<typename Dispatch>
  44611. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Framebuffer,Dispatch>>::type Device::createFramebufferUnique( const FramebufferCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44612. {
  44613. Framebuffer framebuffer;
  44614. Result result = static_cast<Result>( d.vkCreateFramebuffer( m_device, reinterpret_cast<const VkFramebufferCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkFramebuffer*>( &framebuffer ) ) );
  44615. ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
  44616. return createResultValue<Framebuffer,Dispatch>( result, framebuffer, VULKAN_HPP_NAMESPACE_STRING"::Device::createFramebufferUnique", deleter );
  44617. }
  44618. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  44619. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  44620. template<typename Dispatch>
  44621. VULKAN_HPP_INLINE Result Device::createGraphicsPipelines( PipelineCache pipelineCache, uint32_t createInfoCount, const GraphicsPipelineCreateInfo* pCreateInfos, const AllocationCallbacks* pAllocator, Pipeline* pPipelines, Dispatch const &d) const
  44622. {
  44623. return static_cast<Result>( d.vkCreateGraphicsPipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfoCount, reinterpret_cast<const VkGraphicsPipelineCreateInfo*>( pCreateInfos ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkPipeline*>( pPipelines ) ) );
  44624. }
  44625. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  44626. template<typename Allocator, typename Dispatch>
  44627. VULKAN_HPP_INLINE typename ResultValueType<std::vector<Pipeline,Allocator>>::type Device::createGraphicsPipelines( PipelineCache pipelineCache, ArrayProxy<const GraphicsPipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44628. {
  44629. std::vector<Pipeline,Allocator> pipelines( createInfos.size() );
  44630. Result result = static_cast<Result>( d.vkCreateGraphicsPipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size() , reinterpret_cast<const VkGraphicsPipelineCreateInfo*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( pipelines.data() ) ) );
  44631. return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING"::Device::createGraphicsPipelines" );
  44632. }
  44633. template<typename Allocator, typename Dispatch>
  44634. VULKAN_HPP_INLINE typename ResultValueType<std::vector<Pipeline,Allocator>>::type Device::createGraphicsPipelines( PipelineCache pipelineCache, ArrayProxy<const GraphicsPipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const
  44635. {
  44636. std::vector<Pipeline,Allocator> pipelines( createInfos.size(), vectorAllocator );
  44637. Result result = static_cast<Result>( d.vkCreateGraphicsPipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size() , reinterpret_cast<const VkGraphicsPipelineCreateInfo*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( pipelines.data() ) ) );
  44638. return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING"::Device::createGraphicsPipelines" );
  44639. }
  44640. template<typename Dispatch>
  44641. VULKAN_HPP_INLINE ResultValueType<Pipeline>::type Device::createGraphicsPipeline( PipelineCache pipelineCache, const GraphicsPipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44642. {
  44643. Pipeline pipeline;
  44644. Result result = static_cast<Result>( d.vkCreateGraphicsPipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), 1 , reinterpret_cast<const VkGraphicsPipelineCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( &pipeline ) ) );
  44645. return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING"::Device::createGraphicsPipeline" );
  44646. }
  44647. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  44648. template<typename Allocator, typename Dispatch>
  44649. VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>>::type Device::createGraphicsPipelinesUnique( PipelineCache pipelineCache, ArrayProxy<const GraphicsPipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44650. {
  44651. static_assert( sizeof( Pipeline ) <= sizeof( UniqueHandle<Pipeline, Dispatch> ), "Pipeline is greater than UniqueHandle<Pipeline, Dispatch>!" );
  44652. std::vector<UniqueHandle<Pipeline, Dispatch>, Allocator> pipelines;
  44653. pipelines.reserve( createInfos.size() );
  44654. Pipeline* buffer = reinterpret_cast<Pipeline*>( reinterpret_cast<char*>( pipelines.data() ) + createInfos.size() * ( sizeof( UniqueHandle<Pipeline, Dispatch> ) - sizeof( Pipeline ) ) );
  44655. Result result = static_cast<Result>(d.vkCreateGraphicsPipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size() , reinterpret_cast<const VkGraphicsPipelineCreateInfo*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( buffer ) ) );
  44656. if (result == vk::Result::eSuccess)
  44657. {
  44658. ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
  44659. for ( size_t i=0 ; i<createInfos.size() ; i++ )
  44660. {
  44661. pipelines.push_back( UniqueHandle<Pipeline, Dispatch>( buffer[i], deleter ) );
  44662. }
  44663. }
  44664. return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelinesUnique" );
  44665. }
  44666. template<typename Allocator, typename Dispatch>
  44667. VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>>::type Device::createGraphicsPipelinesUnique( PipelineCache pipelineCache, ArrayProxy<const GraphicsPipelineCreateInfo> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const
  44668. {
  44669. static_assert( sizeof( Pipeline ) <= sizeof( UniqueHandle<Pipeline, Dispatch> ), "Pipeline is greater than UniqueHandle<Pipeline, Dispatch>!" );
  44670. std::vector<UniqueHandle<Pipeline, Dispatch>, Allocator> pipelines( vectorAllocator );
  44671. pipelines.reserve( createInfos.size() );
  44672. Pipeline* buffer = reinterpret_cast<Pipeline*>( reinterpret_cast<char*>( pipelines.data() ) + createInfos.size() * ( sizeof( UniqueHandle<Pipeline, Dispatch> ) - sizeof( Pipeline ) ) );
  44673. Result result = static_cast<Result>(d.vkCreateGraphicsPipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size() , reinterpret_cast<const VkGraphicsPipelineCreateInfo*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( buffer ) ) );
  44674. if (result == vk::Result::eSuccess)
  44675. {
  44676. ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
  44677. for ( size_t i=0 ; i<createInfos.size() ; i++ )
  44678. {
  44679. pipelines.push_back( UniqueHandle<Pipeline, Dispatch>( buffer[i], deleter ) );
  44680. }
  44681. }
  44682. return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelinesUnique" );
  44683. }
  44684. template<typename Dispatch>
  44685. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Pipeline,Dispatch>>::type Device::createGraphicsPipelineUnique( PipelineCache pipelineCache, const GraphicsPipelineCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44686. {
  44687. Pipeline pipeline;
  44688. Result result = static_cast<Result>( d.vkCreateGraphicsPipelines( m_device, static_cast<VkPipelineCache>( pipelineCache ), 1 , reinterpret_cast<const VkGraphicsPipelineCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( &pipeline ) ) );
  44689. ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
  44690. return createResultValue<Pipeline,Dispatch>( result, pipeline, VULKAN_HPP_NAMESPACE_STRING"::Device::createGraphicsPipelineUnique", deleter );
  44691. }
  44692. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  44693. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  44694. template<typename Dispatch>
  44695. VULKAN_HPP_INLINE Result Device::createImage( const ImageCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, Image* pImage, Dispatch const &d) const
  44696. {
  44697. return static_cast<Result>( d.vkCreateImage( m_device, reinterpret_cast<const VkImageCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkImage*>( pImage ) ) );
  44698. }
  44699. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  44700. template<typename Dispatch>
  44701. VULKAN_HPP_INLINE ResultValueType<Image>::type Device::createImage( const ImageCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44702. {
  44703. Image image;
  44704. Result result = static_cast<Result>( d.vkCreateImage( m_device, reinterpret_cast<const VkImageCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkImage*>( &image ) ) );
  44705. return createResultValue( result, image, VULKAN_HPP_NAMESPACE_STRING"::Device::createImage" );
  44706. }
  44707. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  44708. template<typename Dispatch>
  44709. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Image,Dispatch>>::type Device::createImageUnique( const ImageCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44710. {
  44711. Image image;
  44712. Result result = static_cast<Result>( d.vkCreateImage( m_device, reinterpret_cast<const VkImageCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkImage*>( &image ) ) );
  44713. ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
  44714. return createResultValue<Image,Dispatch>( result, image, VULKAN_HPP_NAMESPACE_STRING"::Device::createImageUnique", deleter );
  44715. }
  44716. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  44717. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  44718. template<typename Dispatch>
  44719. VULKAN_HPP_INLINE Result Device::createImageView( const ImageViewCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, ImageView* pView, Dispatch const &d) const
  44720. {
  44721. return static_cast<Result>( d.vkCreateImageView( m_device, reinterpret_cast<const VkImageViewCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkImageView*>( pView ) ) );
  44722. }
  44723. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  44724. template<typename Dispatch>
  44725. VULKAN_HPP_INLINE ResultValueType<ImageView>::type Device::createImageView( const ImageViewCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44726. {
  44727. ImageView view;
  44728. Result result = static_cast<Result>( d.vkCreateImageView( m_device, reinterpret_cast<const VkImageViewCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkImageView*>( &view ) ) );
  44729. return createResultValue( result, view, VULKAN_HPP_NAMESPACE_STRING"::Device::createImageView" );
  44730. }
  44731. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  44732. template<typename Dispatch>
  44733. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<ImageView,Dispatch>>::type Device::createImageViewUnique( const ImageViewCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44734. {
  44735. ImageView view;
  44736. Result result = static_cast<Result>( d.vkCreateImageView( m_device, reinterpret_cast<const VkImageViewCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkImageView*>( &view ) ) );
  44737. ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
  44738. return createResultValue<ImageView,Dispatch>( result, view, VULKAN_HPP_NAMESPACE_STRING"::Device::createImageViewUnique", deleter );
  44739. }
  44740. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  44741. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  44742. template<typename Dispatch>
  44743. VULKAN_HPP_INLINE Result Device::createIndirectCommandsLayoutNVX( const IndirectCommandsLayoutCreateInfoNVX* pCreateInfo, const AllocationCallbacks* pAllocator, IndirectCommandsLayoutNVX* pIndirectCommandsLayout, Dispatch const &d) const
  44744. {
  44745. return static_cast<Result>( d.vkCreateIndirectCommandsLayoutNVX( m_device, reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoNVX*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkIndirectCommandsLayoutNVX*>( pIndirectCommandsLayout ) ) );
  44746. }
  44747. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  44748. template<typename Dispatch>
  44749. VULKAN_HPP_INLINE ResultValueType<IndirectCommandsLayoutNVX>::type Device::createIndirectCommandsLayoutNVX( const IndirectCommandsLayoutCreateInfoNVX & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44750. {
  44751. IndirectCommandsLayoutNVX indirectCommandsLayout;
  44752. Result result = static_cast<Result>( d.vkCreateIndirectCommandsLayoutNVX( m_device, reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoNVX*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkIndirectCommandsLayoutNVX*>( &indirectCommandsLayout ) ) );
  44753. return createResultValue( result, indirectCommandsLayout, VULKAN_HPP_NAMESPACE_STRING"::Device::createIndirectCommandsLayoutNVX" );
  44754. }
  44755. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  44756. template<typename Dispatch>
  44757. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<IndirectCommandsLayoutNVX,Dispatch>>::type Device::createIndirectCommandsLayoutNVXUnique( const IndirectCommandsLayoutCreateInfoNVX & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44758. {
  44759. IndirectCommandsLayoutNVX indirectCommandsLayout;
  44760. Result result = static_cast<Result>( d.vkCreateIndirectCommandsLayoutNVX( m_device, reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoNVX*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkIndirectCommandsLayoutNVX*>( &indirectCommandsLayout ) ) );
  44761. ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
  44762. return createResultValue<IndirectCommandsLayoutNVX,Dispatch>( result, indirectCommandsLayout, VULKAN_HPP_NAMESPACE_STRING"::Device::createIndirectCommandsLayoutNVXUnique", deleter );
  44763. }
  44764. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  44765. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  44766. template<typename Dispatch>
  44767. VULKAN_HPP_INLINE Result Device::createObjectTableNVX( const ObjectTableCreateInfoNVX* pCreateInfo, const AllocationCallbacks* pAllocator, ObjectTableNVX* pObjectTable, Dispatch const &d) const
  44768. {
  44769. return static_cast<Result>( d.vkCreateObjectTableNVX( m_device, reinterpret_cast<const VkObjectTableCreateInfoNVX*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkObjectTableNVX*>( pObjectTable ) ) );
  44770. }
  44771. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  44772. template<typename Dispatch>
  44773. VULKAN_HPP_INLINE ResultValueType<ObjectTableNVX>::type Device::createObjectTableNVX( const ObjectTableCreateInfoNVX & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44774. {
  44775. ObjectTableNVX objectTable;
  44776. Result result = static_cast<Result>( d.vkCreateObjectTableNVX( m_device, reinterpret_cast<const VkObjectTableCreateInfoNVX*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkObjectTableNVX*>( &objectTable ) ) );
  44777. return createResultValue( result, objectTable, VULKAN_HPP_NAMESPACE_STRING"::Device::createObjectTableNVX" );
  44778. }
  44779. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  44780. template<typename Dispatch>
  44781. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<ObjectTableNVX,Dispatch>>::type Device::createObjectTableNVXUnique( const ObjectTableCreateInfoNVX & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44782. {
  44783. ObjectTableNVX objectTable;
  44784. Result result = static_cast<Result>( d.vkCreateObjectTableNVX( m_device, reinterpret_cast<const VkObjectTableCreateInfoNVX*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkObjectTableNVX*>( &objectTable ) ) );
  44785. ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
  44786. return createResultValue<ObjectTableNVX,Dispatch>( result, objectTable, VULKAN_HPP_NAMESPACE_STRING"::Device::createObjectTableNVXUnique", deleter );
  44787. }
  44788. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  44789. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  44790. template<typename Dispatch>
  44791. VULKAN_HPP_INLINE Result Device::createPipelineCache( const PipelineCacheCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, PipelineCache* pPipelineCache, Dispatch const &d) const
  44792. {
  44793. return static_cast<Result>( d.vkCreatePipelineCache( m_device, reinterpret_cast<const VkPipelineCacheCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkPipelineCache*>( pPipelineCache ) ) );
  44794. }
  44795. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  44796. template<typename Dispatch>
  44797. VULKAN_HPP_INLINE ResultValueType<PipelineCache>::type Device::createPipelineCache( const PipelineCacheCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44798. {
  44799. PipelineCache pipelineCache;
  44800. Result result = static_cast<Result>( d.vkCreatePipelineCache( m_device, reinterpret_cast<const VkPipelineCacheCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipelineCache*>( &pipelineCache ) ) );
  44801. return createResultValue( result, pipelineCache, VULKAN_HPP_NAMESPACE_STRING"::Device::createPipelineCache" );
  44802. }
  44803. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  44804. template<typename Dispatch>
  44805. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<PipelineCache,Dispatch>>::type Device::createPipelineCacheUnique( const PipelineCacheCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44806. {
  44807. PipelineCache pipelineCache;
  44808. Result result = static_cast<Result>( d.vkCreatePipelineCache( m_device, reinterpret_cast<const VkPipelineCacheCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipelineCache*>( &pipelineCache ) ) );
  44809. ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
  44810. return createResultValue<PipelineCache,Dispatch>( result, pipelineCache, VULKAN_HPP_NAMESPACE_STRING"::Device::createPipelineCacheUnique", deleter );
  44811. }
  44812. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  44813. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  44814. template<typename Dispatch>
  44815. VULKAN_HPP_INLINE Result Device::createPipelineLayout( const PipelineLayoutCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, PipelineLayout* pPipelineLayout, Dispatch const &d) const
  44816. {
  44817. return static_cast<Result>( d.vkCreatePipelineLayout( m_device, reinterpret_cast<const VkPipelineLayoutCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkPipelineLayout*>( pPipelineLayout ) ) );
  44818. }
  44819. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  44820. template<typename Dispatch>
  44821. VULKAN_HPP_INLINE ResultValueType<PipelineLayout>::type Device::createPipelineLayout( const PipelineLayoutCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44822. {
  44823. PipelineLayout pipelineLayout;
  44824. Result result = static_cast<Result>( d.vkCreatePipelineLayout( m_device, reinterpret_cast<const VkPipelineLayoutCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipelineLayout*>( &pipelineLayout ) ) );
  44825. return createResultValue( result, pipelineLayout, VULKAN_HPP_NAMESPACE_STRING"::Device::createPipelineLayout" );
  44826. }
  44827. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  44828. template<typename Dispatch>
  44829. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<PipelineLayout,Dispatch>>::type Device::createPipelineLayoutUnique( const PipelineLayoutCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44830. {
  44831. PipelineLayout pipelineLayout;
  44832. Result result = static_cast<Result>( d.vkCreatePipelineLayout( m_device, reinterpret_cast<const VkPipelineLayoutCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipelineLayout*>( &pipelineLayout ) ) );
  44833. ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
  44834. return createResultValue<PipelineLayout,Dispatch>( result, pipelineLayout, VULKAN_HPP_NAMESPACE_STRING"::Device::createPipelineLayoutUnique", deleter );
  44835. }
  44836. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  44837. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  44838. template<typename Dispatch>
  44839. VULKAN_HPP_INLINE Result Device::createQueryPool( const QueryPoolCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, QueryPool* pQueryPool, Dispatch const &d) const
  44840. {
  44841. return static_cast<Result>( d.vkCreateQueryPool( m_device, reinterpret_cast<const VkQueryPoolCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkQueryPool*>( pQueryPool ) ) );
  44842. }
  44843. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  44844. template<typename Dispatch>
  44845. VULKAN_HPP_INLINE ResultValueType<QueryPool>::type Device::createQueryPool( const QueryPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44846. {
  44847. QueryPool queryPool;
  44848. Result result = static_cast<Result>( d.vkCreateQueryPool( m_device, reinterpret_cast<const VkQueryPoolCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkQueryPool*>( &queryPool ) ) );
  44849. return createResultValue( result, queryPool, VULKAN_HPP_NAMESPACE_STRING"::Device::createQueryPool" );
  44850. }
  44851. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  44852. template<typename Dispatch>
  44853. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<QueryPool,Dispatch>>::type Device::createQueryPoolUnique( const QueryPoolCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44854. {
  44855. QueryPool queryPool;
  44856. Result result = static_cast<Result>( d.vkCreateQueryPool( m_device, reinterpret_cast<const VkQueryPoolCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkQueryPool*>( &queryPool ) ) );
  44857. ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
  44858. return createResultValue<QueryPool,Dispatch>( result, queryPool, VULKAN_HPP_NAMESPACE_STRING"::Device::createQueryPoolUnique", deleter );
  44859. }
  44860. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  44861. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  44862. template<typename Dispatch>
  44863. VULKAN_HPP_INLINE Result Device::createRayTracingPipelinesNV( PipelineCache pipelineCache, uint32_t createInfoCount, const RayTracingPipelineCreateInfoNV* pCreateInfos, const AllocationCallbacks* pAllocator, Pipeline* pPipelines, Dispatch const &d) const
  44864. {
  44865. return static_cast<Result>( d.vkCreateRayTracingPipelinesNV( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfoCount, reinterpret_cast<const VkRayTracingPipelineCreateInfoNV*>( pCreateInfos ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkPipeline*>( pPipelines ) ) );
  44866. }
  44867. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  44868. template<typename Allocator, typename Dispatch>
  44869. VULKAN_HPP_INLINE typename ResultValueType<std::vector<Pipeline,Allocator>>::type Device::createRayTracingPipelinesNV( PipelineCache pipelineCache, ArrayProxy<const RayTracingPipelineCreateInfoNV> createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44870. {
  44871. std::vector<Pipeline,Allocator> pipelines( createInfos.size() );
  44872. Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesNV( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size() , reinterpret_cast<const VkRayTracingPipelineCreateInfoNV*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( pipelines.data() ) ) );
  44873. return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING"::Device::createRayTracingPipelinesNV" );
  44874. }
  44875. template<typename Allocator, typename Dispatch>
  44876. VULKAN_HPP_INLINE typename ResultValueType<std::vector<Pipeline,Allocator>>::type Device::createRayTracingPipelinesNV( PipelineCache pipelineCache, ArrayProxy<const RayTracingPipelineCreateInfoNV> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const
  44877. {
  44878. std::vector<Pipeline,Allocator> pipelines( createInfos.size(), vectorAllocator );
  44879. Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesNV( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size() , reinterpret_cast<const VkRayTracingPipelineCreateInfoNV*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( pipelines.data() ) ) );
  44880. return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING"::Device::createRayTracingPipelinesNV" );
  44881. }
  44882. template<typename Dispatch>
  44883. VULKAN_HPP_INLINE ResultValueType<Pipeline>::type Device::createRayTracingPipelineNV( PipelineCache pipelineCache, const RayTracingPipelineCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44884. {
  44885. Pipeline pipeline;
  44886. Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesNV( m_device, static_cast<VkPipelineCache>( pipelineCache ), 1 , reinterpret_cast<const VkRayTracingPipelineCreateInfoNV*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( &pipeline ) ) );
  44887. return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING"::Device::createRayTracingPipelineNV" );
  44888. }
  44889. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  44890. template<typename Allocator, typename Dispatch>
  44891. VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>>::type Device::createRayTracingPipelinesNVUnique( PipelineCache pipelineCache, ArrayProxy<const RayTracingPipelineCreateInfoNV> createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44892. {
  44893. static_assert( sizeof( Pipeline ) <= sizeof( UniqueHandle<Pipeline, Dispatch> ), "Pipeline is greater than UniqueHandle<Pipeline, Dispatch>!" );
  44894. std::vector<UniqueHandle<Pipeline, Dispatch>, Allocator> pipelines;
  44895. pipelines.reserve( createInfos.size() );
  44896. Pipeline* buffer = reinterpret_cast<Pipeline*>( reinterpret_cast<char*>( pipelines.data() ) + createInfos.size() * ( sizeof( UniqueHandle<Pipeline, Dispatch> ) - sizeof( Pipeline ) ) );
  44897. Result result = static_cast<Result>(d.vkCreateRayTracingPipelinesNV( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size() , reinterpret_cast<const VkRayTracingPipelineCreateInfoNV*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( buffer ) ) );
  44898. if (result == vk::Result::eSuccess)
  44899. {
  44900. ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
  44901. for ( size_t i=0 ; i<createInfos.size() ; i++ )
  44902. {
  44903. pipelines.push_back( UniqueHandle<Pipeline, Dispatch>( buffer[i], deleter ) );
  44904. }
  44905. }
  44906. return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesNVUnique" );
  44907. }
  44908. template<typename Allocator, typename Dispatch>
  44909. VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<Pipeline,Dispatch>,Allocator>>::type Device::createRayTracingPipelinesNVUnique( PipelineCache pipelineCache, ArrayProxy<const RayTracingPipelineCreateInfoNV> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const
  44910. {
  44911. static_assert( sizeof( Pipeline ) <= sizeof( UniqueHandle<Pipeline, Dispatch> ), "Pipeline is greater than UniqueHandle<Pipeline, Dispatch>!" );
  44912. std::vector<UniqueHandle<Pipeline, Dispatch>, Allocator> pipelines( vectorAllocator );
  44913. pipelines.reserve( createInfos.size() );
  44914. Pipeline* buffer = reinterpret_cast<Pipeline*>( reinterpret_cast<char*>( pipelines.data() ) + createInfos.size() * ( sizeof( UniqueHandle<Pipeline, Dispatch> ) - sizeof( Pipeline ) ) );
  44915. Result result = static_cast<Result>(d.vkCreateRayTracingPipelinesNV( m_device, static_cast<VkPipelineCache>( pipelineCache ), createInfos.size() , reinterpret_cast<const VkRayTracingPipelineCreateInfoNV*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( buffer ) ) );
  44916. if (result == vk::Result::eSuccess)
  44917. {
  44918. ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
  44919. for ( size_t i=0 ; i<createInfos.size() ; i++ )
  44920. {
  44921. pipelines.push_back( UniqueHandle<Pipeline, Dispatch>( buffer[i], deleter ) );
  44922. }
  44923. }
  44924. return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesNVUnique" );
  44925. }
  44926. template<typename Dispatch>
  44927. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Pipeline,Dispatch>>::type Device::createRayTracingPipelineNVUnique( PipelineCache pipelineCache, const RayTracingPipelineCreateInfoNV & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44928. {
  44929. Pipeline pipeline;
  44930. Result result = static_cast<Result>( d.vkCreateRayTracingPipelinesNV( m_device, static_cast<VkPipelineCache>( pipelineCache ), 1 , reinterpret_cast<const VkRayTracingPipelineCreateInfoNV*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkPipeline*>( &pipeline ) ) );
  44931. ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
  44932. return createResultValue<Pipeline,Dispatch>( result, pipeline, VULKAN_HPP_NAMESPACE_STRING"::Device::createRayTracingPipelineNVUnique", deleter );
  44933. }
  44934. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  44935. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  44936. template<typename Dispatch>
  44937. VULKAN_HPP_INLINE Result Device::createRenderPass( const RenderPassCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, RenderPass* pRenderPass, Dispatch const &d) const
  44938. {
  44939. return static_cast<Result>( d.vkCreateRenderPass( m_device, reinterpret_cast<const VkRenderPassCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkRenderPass*>( pRenderPass ) ) );
  44940. }
  44941. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  44942. template<typename Dispatch>
  44943. VULKAN_HPP_INLINE ResultValueType<RenderPass>::type Device::createRenderPass( const RenderPassCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44944. {
  44945. RenderPass renderPass;
  44946. Result result = static_cast<Result>( d.vkCreateRenderPass( m_device, reinterpret_cast<const VkRenderPassCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkRenderPass*>( &renderPass ) ) );
  44947. return createResultValue( result, renderPass, VULKAN_HPP_NAMESPACE_STRING"::Device::createRenderPass" );
  44948. }
  44949. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  44950. template<typename Dispatch>
  44951. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<RenderPass,Dispatch>>::type Device::createRenderPassUnique( const RenderPassCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44952. {
  44953. RenderPass renderPass;
  44954. Result result = static_cast<Result>( d.vkCreateRenderPass( m_device, reinterpret_cast<const VkRenderPassCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkRenderPass*>( &renderPass ) ) );
  44955. ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
  44956. return createResultValue<RenderPass,Dispatch>( result, renderPass, VULKAN_HPP_NAMESPACE_STRING"::Device::createRenderPassUnique", deleter );
  44957. }
  44958. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  44959. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  44960. template<typename Dispatch>
  44961. VULKAN_HPP_INLINE Result Device::createRenderPass2KHR( const RenderPassCreateInfo2KHR* pCreateInfo, const AllocationCallbacks* pAllocator, RenderPass* pRenderPass, Dispatch const &d) const
  44962. {
  44963. return static_cast<Result>( d.vkCreateRenderPass2KHR( m_device, reinterpret_cast<const VkRenderPassCreateInfo2KHR*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkRenderPass*>( pRenderPass ) ) );
  44964. }
  44965. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  44966. template<typename Dispatch>
  44967. VULKAN_HPP_INLINE ResultValueType<RenderPass>::type Device::createRenderPass2KHR( const RenderPassCreateInfo2KHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44968. {
  44969. RenderPass renderPass;
  44970. Result result = static_cast<Result>( d.vkCreateRenderPass2KHR( m_device, reinterpret_cast<const VkRenderPassCreateInfo2KHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkRenderPass*>( &renderPass ) ) );
  44971. return createResultValue( result, renderPass, VULKAN_HPP_NAMESPACE_STRING"::Device::createRenderPass2KHR" );
  44972. }
  44973. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  44974. template<typename Dispatch>
  44975. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<RenderPass,Dispatch>>::type Device::createRenderPass2KHRUnique( const RenderPassCreateInfo2KHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44976. {
  44977. RenderPass renderPass;
  44978. Result result = static_cast<Result>( d.vkCreateRenderPass2KHR( m_device, reinterpret_cast<const VkRenderPassCreateInfo2KHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkRenderPass*>( &renderPass ) ) );
  44979. ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
  44980. return createResultValue<RenderPass,Dispatch>( result, renderPass, VULKAN_HPP_NAMESPACE_STRING"::Device::createRenderPass2KHRUnique", deleter );
  44981. }
  44982. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  44983. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  44984. template<typename Dispatch>
  44985. VULKAN_HPP_INLINE Result Device::createSampler( const SamplerCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, Sampler* pSampler, Dispatch const &d) const
  44986. {
  44987. return static_cast<Result>( d.vkCreateSampler( m_device, reinterpret_cast<const VkSamplerCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSampler*>( pSampler ) ) );
  44988. }
  44989. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  44990. template<typename Dispatch>
  44991. VULKAN_HPP_INLINE ResultValueType<Sampler>::type Device::createSampler( const SamplerCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  44992. {
  44993. Sampler sampler;
  44994. Result result = static_cast<Result>( d.vkCreateSampler( m_device, reinterpret_cast<const VkSamplerCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSampler*>( &sampler ) ) );
  44995. return createResultValue( result, sampler, VULKAN_HPP_NAMESPACE_STRING"::Device::createSampler" );
  44996. }
  44997. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  44998. template<typename Dispatch>
  44999. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Sampler,Dispatch>>::type Device::createSamplerUnique( const SamplerCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45000. {
  45001. Sampler sampler;
  45002. Result result = static_cast<Result>( d.vkCreateSampler( m_device, reinterpret_cast<const VkSamplerCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSampler*>( &sampler ) ) );
  45003. ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
  45004. return createResultValue<Sampler,Dispatch>( result, sampler, VULKAN_HPP_NAMESPACE_STRING"::Device::createSamplerUnique", deleter );
  45005. }
  45006. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  45007. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45008. template<typename Dispatch>
  45009. VULKAN_HPP_INLINE Result Device::createSamplerYcbcrConversion( const SamplerYcbcrConversionCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, SamplerYcbcrConversion* pYcbcrConversion, Dispatch const &d) const
  45010. {
  45011. return static_cast<Result>( d.vkCreateSamplerYcbcrConversion( m_device, reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSamplerYcbcrConversion*>( pYcbcrConversion ) ) );
  45012. }
  45013. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45014. template<typename Dispatch>
  45015. VULKAN_HPP_INLINE ResultValueType<SamplerYcbcrConversion>::type Device::createSamplerYcbcrConversion( const SamplerYcbcrConversionCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45016. {
  45017. SamplerYcbcrConversion ycbcrConversion;
  45018. Result result = static_cast<Result>( d.vkCreateSamplerYcbcrConversion( m_device, reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSamplerYcbcrConversion*>( &ycbcrConversion ) ) );
  45019. return createResultValue( result, ycbcrConversion, VULKAN_HPP_NAMESPACE_STRING"::Device::createSamplerYcbcrConversion" );
  45020. }
  45021. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  45022. template<typename Dispatch>
  45023. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SamplerYcbcrConversion,Dispatch>>::type Device::createSamplerYcbcrConversionUnique( const SamplerYcbcrConversionCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45024. {
  45025. SamplerYcbcrConversion ycbcrConversion;
  45026. Result result = static_cast<Result>( d.vkCreateSamplerYcbcrConversion( m_device, reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSamplerYcbcrConversion*>( &ycbcrConversion ) ) );
  45027. ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
  45028. return createResultValue<SamplerYcbcrConversion,Dispatch>( result, ycbcrConversion, VULKAN_HPP_NAMESPACE_STRING"::Device::createSamplerYcbcrConversionUnique", deleter );
  45029. }
  45030. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  45031. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45032. template<typename Dispatch>
  45033. VULKAN_HPP_INLINE Result Device::createSamplerYcbcrConversionKHR( const SamplerYcbcrConversionCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, SamplerYcbcrConversion* pYcbcrConversion, Dispatch const &d) const
  45034. {
  45035. return static_cast<Result>( d.vkCreateSamplerYcbcrConversionKHR( m_device, reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSamplerYcbcrConversion*>( pYcbcrConversion ) ) );
  45036. }
  45037. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45038. template<typename Dispatch>
  45039. VULKAN_HPP_INLINE ResultValueType<SamplerYcbcrConversion>::type Device::createSamplerYcbcrConversionKHR( const SamplerYcbcrConversionCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45040. {
  45041. SamplerYcbcrConversion ycbcrConversion;
  45042. Result result = static_cast<Result>( d.vkCreateSamplerYcbcrConversionKHR( m_device, reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSamplerYcbcrConversion*>( &ycbcrConversion ) ) );
  45043. return createResultValue( result, ycbcrConversion, VULKAN_HPP_NAMESPACE_STRING"::Device::createSamplerYcbcrConversionKHR" );
  45044. }
  45045. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  45046. template<typename Dispatch>
  45047. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SamplerYcbcrConversion,Dispatch>>::type Device::createSamplerYcbcrConversionKHRUnique( const SamplerYcbcrConversionCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45048. {
  45049. SamplerYcbcrConversion ycbcrConversion;
  45050. Result result = static_cast<Result>( d.vkCreateSamplerYcbcrConversionKHR( m_device, reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSamplerYcbcrConversion*>( &ycbcrConversion ) ) );
  45051. ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
  45052. return createResultValue<SamplerYcbcrConversion,Dispatch>( result, ycbcrConversion, VULKAN_HPP_NAMESPACE_STRING"::Device::createSamplerYcbcrConversionKHRUnique", deleter );
  45053. }
  45054. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  45055. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45056. template<typename Dispatch>
  45057. VULKAN_HPP_INLINE Result Device::createSemaphore( const SemaphoreCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, Semaphore* pSemaphore, Dispatch const &d) const
  45058. {
  45059. return static_cast<Result>( d.vkCreateSemaphore( m_device, reinterpret_cast<const VkSemaphoreCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSemaphore*>( pSemaphore ) ) );
  45060. }
  45061. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45062. template<typename Dispatch>
  45063. VULKAN_HPP_INLINE ResultValueType<Semaphore>::type Device::createSemaphore( const SemaphoreCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45064. {
  45065. Semaphore semaphore;
  45066. Result result = static_cast<Result>( d.vkCreateSemaphore( m_device, reinterpret_cast<const VkSemaphoreCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSemaphore*>( &semaphore ) ) );
  45067. return createResultValue( result, semaphore, VULKAN_HPP_NAMESPACE_STRING"::Device::createSemaphore" );
  45068. }
  45069. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  45070. template<typename Dispatch>
  45071. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Semaphore,Dispatch>>::type Device::createSemaphoreUnique( const SemaphoreCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45072. {
  45073. Semaphore semaphore;
  45074. Result result = static_cast<Result>( d.vkCreateSemaphore( m_device, reinterpret_cast<const VkSemaphoreCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSemaphore*>( &semaphore ) ) );
  45075. ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
  45076. return createResultValue<Semaphore,Dispatch>( result, semaphore, VULKAN_HPP_NAMESPACE_STRING"::Device::createSemaphoreUnique", deleter );
  45077. }
  45078. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  45079. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45080. template<typename Dispatch>
  45081. VULKAN_HPP_INLINE Result Device::createShaderModule( const ShaderModuleCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, ShaderModule* pShaderModule, Dispatch const &d) const
  45082. {
  45083. return static_cast<Result>( d.vkCreateShaderModule( m_device, reinterpret_cast<const VkShaderModuleCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkShaderModule*>( pShaderModule ) ) );
  45084. }
  45085. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45086. template<typename Dispatch>
  45087. VULKAN_HPP_INLINE ResultValueType<ShaderModule>::type Device::createShaderModule( const ShaderModuleCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45088. {
  45089. ShaderModule shaderModule;
  45090. Result result = static_cast<Result>( d.vkCreateShaderModule( m_device, reinterpret_cast<const VkShaderModuleCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkShaderModule*>( &shaderModule ) ) );
  45091. return createResultValue( result, shaderModule, VULKAN_HPP_NAMESPACE_STRING"::Device::createShaderModule" );
  45092. }
  45093. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  45094. template<typename Dispatch>
  45095. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<ShaderModule,Dispatch>>::type Device::createShaderModuleUnique( const ShaderModuleCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45096. {
  45097. ShaderModule shaderModule;
  45098. Result result = static_cast<Result>( d.vkCreateShaderModule( m_device, reinterpret_cast<const VkShaderModuleCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkShaderModule*>( &shaderModule ) ) );
  45099. ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
  45100. return createResultValue<ShaderModule,Dispatch>( result, shaderModule, VULKAN_HPP_NAMESPACE_STRING"::Device::createShaderModuleUnique", deleter );
  45101. }
  45102. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  45103. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45104. template<typename Dispatch>
  45105. VULKAN_HPP_INLINE Result Device::createSharedSwapchainsKHR( uint32_t swapchainCount, const SwapchainCreateInfoKHR* pCreateInfos, const AllocationCallbacks* pAllocator, SwapchainKHR* pSwapchains, Dispatch const &d) const
  45106. {
  45107. return static_cast<Result>( d.vkCreateSharedSwapchainsKHR( m_device, swapchainCount, reinterpret_cast<const VkSwapchainCreateInfoKHR*>( pCreateInfos ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSwapchainKHR*>( pSwapchains ) ) );
  45108. }
  45109. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45110. template<typename Allocator, typename Dispatch>
  45111. VULKAN_HPP_INLINE typename ResultValueType<std::vector<SwapchainKHR,Allocator>>::type Device::createSharedSwapchainsKHR( ArrayProxy<const SwapchainCreateInfoKHR> createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45112. {
  45113. std::vector<SwapchainKHR,Allocator> swapchains( createInfos.size() );
  45114. Result result = static_cast<Result>( d.vkCreateSharedSwapchainsKHR( m_device, createInfos.size() , reinterpret_cast<const VkSwapchainCreateInfoKHR*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSwapchainKHR*>( swapchains.data() ) ) );
  45115. return createResultValue( result, swapchains, VULKAN_HPP_NAMESPACE_STRING"::Device::createSharedSwapchainsKHR" );
  45116. }
  45117. template<typename Allocator, typename Dispatch>
  45118. VULKAN_HPP_INLINE typename ResultValueType<std::vector<SwapchainKHR,Allocator>>::type Device::createSharedSwapchainsKHR( ArrayProxy<const SwapchainCreateInfoKHR> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const
  45119. {
  45120. std::vector<SwapchainKHR,Allocator> swapchains( createInfos.size(), vectorAllocator );
  45121. Result result = static_cast<Result>( d.vkCreateSharedSwapchainsKHR( m_device, createInfos.size() , reinterpret_cast<const VkSwapchainCreateInfoKHR*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSwapchainKHR*>( swapchains.data() ) ) );
  45122. return createResultValue( result, swapchains, VULKAN_HPP_NAMESPACE_STRING"::Device::createSharedSwapchainsKHR" );
  45123. }
  45124. template<typename Dispatch>
  45125. VULKAN_HPP_INLINE ResultValueType<SwapchainKHR>::type Device::createSharedSwapchainKHR( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45126. {
  45127. SwapchainKHR swapchain;
  45128. Result result = static_cast<Result>( d.vkCreateSharedSwapchainsKHR( m_device, 1 , reinterpret_cast<const VkSwapchainCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSwapchainKHR*>( &swapchain ) ) );
  45129. return createResultValue( result, swapchain, VULKAN_HPP_NAMESPACE_STRING"::Device::createSharedSwapchainKHR" );
  45130. }
  45131. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  45132. template<typename Allocator, typename Dispatch>
  45133. VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<SwapchainKHR,Dispatch>,Allocator>>::type Device::createSharedSwapchainsKHRUnique( ArrayProxy<const SwapchainCreateInfoKHR> createInfos, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45134. {
  45135. static_assert( sizeof( SwapchainKHR ) <= sizeof( UniqueHandle<SwapchainKHR, Dispatch> ), "SwapchainKHR is greater than UniqueHandle<SwapchainKHR, Dispatch>!" );
  45136. std::vector<UniqueHandle<SwapchainKHR, Dispatch>, Allocator> swapchainKHRs;
  45137. swapchainKHRs.reserve( createInfos.size() );
  45138. SwapchainKHR* buffer = reinterpret_cast<SwapchainKHR*>( reinterpret_cast<char*>( swapchainKHRs.data() ) + createInfos.size() * ( sizeof( UniqueHandle<SwapchainKHR, Dispatch> ) - sizeof( SwapchainKHR ) ) );
  45139. Result result = static_cast<Result>(d.vkCreateSharedSwapchainsKHR( m_device, createInfos.size() , reinterpret_cast<const VkSwapchainCreateInfoKHR*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSwapchainKHR*>( buffer ) ) );
  45140. if (result == vk::Result::eSuccess)
  45141. {
  45142. ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
  45143. for ( size_t i=0 ; i<createInfos.size() ; i++ )
  45144. {
  45145. swapchainKHRs.push_back( UniqueHandle<SwapchainKHR, Dispatch>( buffer[i], deleter ) );
  45146. }
  45147. }
  45148. return createResultValue( result, swapchainKHRs, VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainsKHRUnique" );
  45149. }
  45150. template<typename Allocator, typename Dispatch>
  45151. VULKAN_HPP_INLINE typename ResultValueType<std::vector<UniqueHandle<SwapchainKHR,Dispatch>,Allocator>>::type Device::createSharedSwapchainsKHRUnique( ArrayProxy<const SwapchainCreateInfoKHR> createInfos, Optional<const AllocationCallbacks> allocator, Allocator const& vectorAllocator, Dispatch const &d ) const
  45152. {
  45153. static_assert( sizeof( SwapchainKHR ) <= sizeof( UniqueHandle<SwapchainKHR, Dispatch> ), "SwapchainKHR is greater than UniqueHandle<SwapchainKHR, Dispatch>!" );
  45154. std::vector<UniqueHandle<SwapchainKHR, Dispatch>, Allocator> swapchainKHRs( vectorAllocator );
  45155. swapchainKHRs.reserve( createInfos.size() );
  45156. SwapchainKHR* buffer = reinterpret_cast<SwapchainKHR*>( reinterpret_cast<char*>( swapchainKHRs.data() ) + createInfos.size() * ( sizeof( UniqueHandle<SwapchainKHR, Dispatch> ) - sizeof( SwapchainKHR ) ) );
  45157. Result result = static_cast<Result>(d.vkCreateSharedSwapchainsKHR( m_device, createInfos.size() , reinterpret_cast<const VkSwapchainCreateInfoKHR*>( createInfos.data() ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSwapchainKHR*>( buffer ) ) );
  45158. if (result == vk::Result::eSuccess)
  45159. {
  45160. ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
  45161. for ( size_t i=0 ; i<createInfos.size() ; i++ )
  45162. {
  45163. swapchainKHRs.push_back( UniqueHandle<SwapchainKHR, Dispatch>( buffer[i], deleter ) );
  45164. }
  45165. }
  45166. return createResultValue( result, swapchainKHRs, VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainsKHRUnique" );
  45167. }
  45168. template<typename Dispatch>
  45169. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SwapchainKHR,Dispatch>>::type Device::createSharedSwapchainKHRUnique( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45170. {
  45171. SwapchainKHR swapchain;
  45172. Result result = static_cast<Result>( d.vkCreateSharedSwapchainsKHR( m_device, 1 , reinterpret_cast<const VkSwapchainCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSwapchainKHR*>( &swapchain ) ) );
  45173. ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
  45174. return createResultValue<SwapchainKHR,Dispatch>( result, swapchain, VULKAN_HPP_NAMESPACE_STRING"::Device::createSharedSwapchainKHRUnique", deleter );
  45175. }
  45176. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  45177. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45178. template<typename Dispatch>
  45179. VULKAN_HPP_INLINE Result Device::createSwapchainKHR( const SwapchainCreateInfoKHR* pCreateInfo, const AllocationCallbacks* pAllocator, SwapchainKHR* pSwapchain, Dispatch const &d) const
  45180. {
  45181. return static_cast<Result>( d.vkCreateSwapchainKHR( m_device, reinterpret_cast<const VkSwapchainCreateInfoKHR*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSwapchainKHR*>( pSwapchain ) ) );
  45182. }
  45183. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45184. template<typename Dispatch>
  45185. VULKAN_HPP_INLINE ResultValueType<SwapchainKHR>::type Device::createSwapchainKHR( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45186. {
  45187. SwapchainKHR swapchain;
  45188. Result result = static_cast<Result>( d.vkCreateSwapchainKHR( m_device, reinterpret_cast<const VkSwapchainCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSwapchainKHR*>( &swapchain ) ) );
  45189. return createResultValue( result, swapchain, VULKAN_HPP_NAMESPACE_STRING"::Device::createSwapchainKHR" );
  45190. }
  45191. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  45192. template<typename Dispatch>
  45193. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SwapchainKHR,Dispatch>>::type Device::createSwapchainKHRUnique( const SwapchainCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45194. {
  45195. SwapchainKHR swapchain;
  45196. Result result = static_cast<Result>( d.vkCreateSwapchainKHR( m_device, reinterpret_cast<const VkSwapchainCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSwapchainKHR*>( &swapchain ) ) );
  45197. ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
  45198. return createResultValue<SwapchainKHR,Dispatch>( result, swapchain, VULKAN_HPP_NAMESPACE_STRING"::Device::createSwapchainKHRUnique", deleter );
  45199. }
  45200. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  45201. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45202. template<typename Dispatch>
  45203. VULKAN_HPP_INLINE Result Device::createValidationCacheEXT( const ValidationCacheCreateInfoEXT* pCreateInfo, const AllocationCallbacks* pAllocator, ValidationCacheEXT* pValidationCache, Dispatch const &d) const
  45204. {
  45205. return static_cast<Result>( d.vkCreateValidationCacheEXT( m_device, reinterpret_cast<const VkValidationCacheCreateInfoEXT*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkValidationCacheEXT*>( pValidationCache ) ) );
  45206. }
  45207. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45208. template<typename Dispatch>
  45209. VULKAN_HPP_INLINE ResultValueType<ValidationCacheEXT>::type Device::createValidationCacheEXT( const ValidationCacheCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45210. {
  45211. ValidationCacheEXT validationCache;
  45212. Result result = static_cast<Result>( d.vkCreateValidationCacheEXT( m_device, reinterpret_cast<const VkValidationCacheCreateInfoEXT*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkValidationCacheEXT*>( &validationCache ) ) );
  45213. return createResultValue( result, validationCache, VULKAN_HPP_NAMESPACE_STRING"::Device::createValidationCacheEXT" );
  45214. }
  45215. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  45216. template<typename Dispatch>
  45217. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<ValidationCacheEXT,Dispatch>>::type Device::createValidationCacheEXTUnique( const ValidationCacheCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45218. {
  45219. ValidationCacheEXT validationCache;
  45220. Result result = static_cast<Result>( d.vkCreateValidationCacheEXT( m_device, reinterpret_cast<const VkValidationCacheCreateInfoEXT*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkValidationCacheEXT*>( &validationCache ) ) );
  45221. ObjectDestroy<Device,Dispatch> deleter( *this, allocator, d );
  45222. return createResultValue<ValidationCacheEXT,Dispatch>( result, validationCache, VULKAN_HPP_NAMESPACE_STRING"::Device::createValidationCacheEXTUnique", deleter );
  45223. }
  45224. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  45225. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45226. template<typename Dispatch>
  45227. VULKAN_HPP_INLINE Result Device::debugMarkerSetObjectNameEXT( const DebugMarkerObjectNameInfoEXT* pNameInfo, Dispatch const &d) const
  45228. {
  45229. return static_cast<Result>( d.vkDebugMarkerSetObjectNameEXT( m_device, reinterpret_cast<const VkDebugMarkerObjectNameInfoEXT*>( pNameInfo ) ) );
  45230. }
  45231. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45232. template<typename Dispatch>
  45233. VULKAN_HPP_INLINE ResultValueType<void>::type Device::debugMarkerSetObjectNameEXT( const DebugMarkerObjectNameInfoEXT & nameInfo, Dispatch const &d ) const
  45234. {
  45235. Result result = static_cast<Result>( d.vkDebugMarkerSetObjectNameEXT( m_device, reinterpret_cast<const VkDebugMarkerObjectNameInfoEXT*>( &nameInfo ) ) );
  45236. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::debugMarkerSetObjectNameEXT" );
  45237. }
  45238. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45239. template<typename Dispatch>
  45240. VULKAN_HPP_INLINE Result Device::debugMarkerSetObjectTagEXT( const DebugMarkerObjectTagInfoEXT* pTagInfo, Dispatch const &d) const
  45241. {
  45242. return static_cast<Result>( d.vkDebugMarkerSetObjectTagEXT( m_device, reinterpret_cast<const VkDebugMarkerObjectTagInfoEXT*>( pTagInfo ) ) );
  45243. }
  45244. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45245. template<typename Dispatch>
  45246. VULKAN_HPP_INLINE ResultValueType<void>::type Device::debugMarkerSetObjectTagEXT( const DebugMarkerObjectTagInfoEXT & tagInfo, Dispatch const &d ) const
  45247. {
  45248. Result result = static_cast<Result>( d.vkDebugMarkerSetObjectTagEXT( m_device, reinterpret_cast<const VkDebugMarkerObjectTagInfoEXT*>( &tagInfo ) ) );
  45249. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::debugMarkerSetObjectTagEXT" );
  45250. }
  45251. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45252. template<typename Dispatch>
  45253. VULKAN_HPP_INLINE void Device::destroyAccelerationStructureNV( AccelerationStructureNV accelerationStructure, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45254. {
  45255. d.vkDestroyAccelerationStructureNV( m_device, static_cast<VkAccelerationStructureNV>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45256. }
  45257. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45258. template<typename Dispatch>
  45259. VULKAN_HPP_INLINE void Device::destroyAccelerationStructureNV( AccelerationStructureNV accelerationStructure, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45260. {
  45261. d.vkDestroyAccelerationStructureNV( m_device, static_cast<VkAccelerationStructureNV>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45262. }
  45263. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45264. template<typename Dispatch>
  45265. VULKAN_HPP_INLINE void Device::destroy( AccelerationStructureNV accelerationStructure, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45266. {
  45267. d.vkDestroyAccelerationStructureNV( m_device, static_cast<VkAccelerationStructureNV>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45268. }
  45269. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45270. template<typename Dispatch>
  45271. VULKAN_HPP_INLINE void Device::destroy( AccelerationStructureNV accelerationStructure, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45272. {
  45273. d.vkDestroyAccelerationStructureNV( m_device, static_cast<VkAccelerationStructureNV>( accelerationStructure ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45274. }
  45275. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45276. template<typename Dispatch>
  45277. VULKAN_HPP_INLINE void Device::destroyBuffer( Buffer buffer, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45278. {
  45279. d.vkDestroyBuffer( m_device, static_cast<VkBuffer>( buffer ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45280. }
  45281. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45282. template<typename Dispatch>
  45283. VULKAN_HPP_INLINE void Device::destroyBuffer( Buffer buffer, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45284. {
  45285. d.vkDestroyBuffer( m_device, static_cast<VkBuffer>( buffer ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45286. }
  45287. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45288. template<typename Dispatch>
  45289. VULKAN_HPP_INLINE void Device::destroy( Buffer buffer, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45290. {
  45291. d.vkDestroyBuffer( m_device, static_cast<VkBuffer>( buffer ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45292. }
  45293. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45294. template<typename Dispatch>
  45295. VULKAN_HPP_INLINE void Device::destroy( Buffer buffer, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45296. {
  45297. d.vkDestroyBuffer( m_device, static_cast<VkBuffer>( buffer ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45298. }
  45299. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45300. template<typename Dispatch>
  45301. VULKAN_HPP_INLINE void Device::destroyBufferView( BufferView bufferView, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45302. {
  45303. d.vkDestroyBufferView( m_device, static_cast<VkBufferView>( bufferView ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45304. }
  45305. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45306. template<typename Dispatch>
  45307. VULKAN_HPP_INLINE void Device::destroyBufferView( BufferView bufferView, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45308. {
  45309. d.vkDestroyBufferView( m_device, static_cast<VkBufferView>( bufferView ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45310. }
  45311. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45312. template<typename Dispatch>
  45313. VULKAN_HPP_INLINE void Device::destroy( BufferView bufferView, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45314. {
  45315. d.vkDestroyBufferView( m_device, static_cast<VkBufferView>( bufferView ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45316. }
  45317. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45318. template<typename Dispatch>
  45319. VULKAN_HPP_INLINE void Device::destroy( BufferView bufferView, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45320. {
  45321. d.vkDestroyBufferView( m_device, static_cast<VkBufferView>( bufferView ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45322. }
  45323. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45324. template<typename Dispatch>
  45325. VULKAN_HPP_INLINE void Device::destroyCommandPool( CommandPool commandPool, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45326. {
  45327. d.vkDestroyCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45328. }
  45329. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45330. template<typename Dispatch>
  45331. VULKAN_HPP_INLINE void Device::destroyCommandPool( CommandPool commandPool, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45332. {
  45333. d.vkDestroyCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45334. }
  45335. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45336. template<typename Dispatch>
  45337. VULKAN_HPP_INLINE void Device::destroy( CommandPool commandPool, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45338. {
  45339. d.vkDestroyCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45340. }
  45341. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45342. template<typename Dispatch>
  45343. VULKAN_HPP_INLINE void Device::destroy( CommandPool commandPool, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45344. {
  45345. d.vkDestroyCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45346. }
  45347. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45348. template<typename Dispatch>
  45349. VULKAN_HPP_INLINE void Device::destroyDescriptorPool( DescriptorPool descriptorPool, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45350. {
  45351. d.vkDestroyDescriptorPool( m_device, static_cast<VkDescriptorPool>( descriptorPool ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45352. }
  45353. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45354. template<typename Dispatch>
  45355. VULKAN_HPP_INLINE void Device::destroyDescriptorPool( DescriptorPool descriptorPool, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45356. {
  45357. d.vkDestroyDescriptorPool( m_device, static_cast<VkDescriptorPool>( descriptorPool ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45358. }
  45359. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45360. template<typename Dispatch>
  45361. VULKAN_HPP_INLINE void Device::destroy( DescriptorPool descriptorPool, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45362. {
  45363. d.vkDestroyDescriptorPool( m_device, static_cast<VkDescriptorPool>( descriptorPool ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45364. }
  45365. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45366. template<typename Dispatch>
  45367. VULKAN_HPP_INLINE void Device::destroy( DescriptorPool descriptorPool, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45368. {
  45369. d.vkDestroyDescriptorPool( m_device, static_cast<VkDescriptorPool>( descriptorPool ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45370. }
  45371. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45372. template<typename Dispatch>
  45373. VULKAN_HPP_INLINE void Device::destroyDescriptorSetLayout( DescriptorSetLayout descriptorSetLayout, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45374. {
  45375. d.vkDestroyDescriptorSetLayout( m_device, static_cast<VkDescriptorSetLayout>( descriptorSetLayout ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45376. }
  45377. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45378. template<typename Dispatch>
  45379. VULKAN_HPP_INLINE void Device::destroyDescriptorSetLayout( DescriptorSetLayout descriptorSetLayout, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45380. {
  45381. d.vkDestroyDescriptorSetLayout( m_device, static_cast<VkDescriptorSetLayout>( descriptorSetLayout ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45382. }
  45383. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45384. template<typename Dispatch>
  45385. VULKAN_HPP_INLINE void Device::destroy( DescriptorSetLayout descriptorSetLayout, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45386. {
  45387. d.vkDestroyDescriptorSetLayout( m_device, static_cast<VkDescriptorSetLayout>( descriptorSetLayout ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45388. }
  45389. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45390. template<typename Dispatch>
  45391. VULKAN_HPP_INLINE void Device::destroy( DescriptorSetLayout descriptorSetLayout, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45392. {
  45393. d.vkDestroyDescriptorSetLayout( m_device, static_cast<VkDescriptorSetLayout>( descriptorSetLayout ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45394. }
  45395. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45396. template<typename Dispatch>
  45397. VULKAN_HPP_INLINE void Device::destroyDescriptorUpdateTemplate( DescriptorUpdateTemplate descriptorUpdateTemplate, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45398. {
  45399. d.vkDestroyDescriptorUpdateTemplate( m_device, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45400. }
  45401. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45402. template<typename Dispatch>
  45403. VULKAN_HPP_INLINE void Device::destroyDescriptorUpdateTemplate( DescriptorUpdateTemplate descriptorUpdateTemplate, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45404. {
  45405. d.vkDestroyDescriptorUpdateTemplate( m_device, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45406. }
  45407. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45408. template<typename Dispatch>
  45409. VULKAN_HPP_INLINE void Device::destroy( DescriptorUpdateTemplate descriptorUpdateTemplate, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45410. {
  45411. d.vkDestroyDescriptorUpdateTemplate( m_device, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45412. }
  45413. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45414. template<typename Dispatch>
  45415. VULKAN_HPP_INLINE void Device::destroy( DescriptorUpdateTemplate descriptorUpdateTemplate, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45416. {
  45417. d.vkDestroyDescriptorUpdateTemplate( m_device, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45418. }
  45419. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45420. template<typename Dispatch>
  45421. VULKAN_HPP_INLINE void Device::destroyDescriptorUpdateTemplateKHR( DescriptorUpdateTemplate descriptorUpdateTemplate, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45422. {
  45423. d.vkDestroyDescriptorUpdateTemplateKHR( m_device, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45424. }
  45425. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45426. template<typename Dispatch>
  45427. VULKAN_HPP_INLINE void Device::destroyDescriptorUpdateTemplateKHR( DescriptorUpdateTemplate descriptorUpdateTemplate, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45428. {
  45429. d.vkDestroyDescriptorUpdateTemplateKHR( m_device, static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45430. }
  45431. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45432. template<typename Dispatch>
  45433. VULKAN_HPP_INLINE void Device::destroy( const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45434. {
  45435. d.vkDestroyDevice( m_device, reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45436. }
  45437. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45438. template<typename Dispatch>
  45439. VULKAN_HPP_INLINE void Device::destroy( Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45440. {
  45441. d.vkDestroyDevice( m_device, reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45442. }
  45443. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45444. template<typename Dispatch>
  45445. VULKAN_HPP_INLINE void Device::destroyEvent( Event event, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45446. {
  45447. d.vkDestroyEvent( m_device, static_cast<VkEvent>( event ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45448. }
  45449. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45450. template<typename Dispatch>
  45451. VULKAN_HPP_INLINE void Device::destroyEvent( Event event, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45452. {
  45453. d.vkDestroyEvent( m_device, static_cast<VkEvent>( event ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45454. }
  45455. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45456. template<typename Dispatch>
  45457. VULKAN_HPP_INLINE void Device::destroy( Event event, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45458. {
  45459. d.vkDestroyEvent( m_device, static_cast<VkEvent>( event ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45460. }
  45461. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45462. template<typename Dispatch>
  45463. VULKAN_HPP_INLINE void Device::destroy( Event event, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45464. {
  45465. d.vkDestroyEvent( m_device, static_cast<VkEvent>( event ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45466. }
  45467. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45468. template<typename Dispatch>
  45469. VULKAN_HPP_INLINE void Device::destroyFence( Fence fence, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45470. {
  45471. d.vkDestroyFence( m_device, static_cast<VkFence>( fence ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45472. }
  45473. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45474. template<typename Dispatch>
  45475. VULKAN_HPP_INLINE void Device::destroyFence( Fence fence, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45476. {
  45477. d.vkDestroyFence( m_device, static_cast<VkFence>( fence ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45478. }
  45479. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45480. template<typename Dispatch>
  45481. VULKAN_HPP_INLINE void Device::destroy( Fence fence, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45482. {
  45483. d.vkDestroyFence( m_device, static_cast<VkFence>( fence ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45484. }
  45485. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45486. template<typename Dispatch>
  45487. VULKAN_HPP_INLINE void Device::destroy( Fence fence, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45488. {
  45489. d.vkDestroyFence( m_device, static_cast<VkFence>( fence ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45490. }
  45491. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45492. template<typename Dispatch>
  45493. VULKAN_HPP_INLINE void Device::destroyFramebuffer( Framebuffer framebuffer, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45494. {
  45495. d.vkDestroyFramebuffer( m_device, static_cast<VkFramebuffer>( framebuffer ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45496. }
  45497. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45498. template<typename Dispatch>
  45499. VULKAN_HPP_INLINE void Device::destroyFramebuffer( Framebuffer framebuffer, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45500. {
  45501. d.vkDestroyFramebuffer( m_device, static_cast<VkFramebuffer>( framebuffer ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45502. }
  45503. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45504. template<typename Dispatch>
  45505. VULKAN_HPP_INLINE void Device::destroy( Framebuffer framebuffer, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45506. {
  45507. d.vkDestroyFramebuffer( m_device, static_cast<VkFramebuffer>( framebuffer ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45508. }
  45509. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45510. template<typename Dispatch>
  45511. VULKAN_HPP_INLINE void Device::destroy( Framebuffer framebuffer, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45512. {
  45513. d.vkDestroyFramebuffer( m_device, static_cast<VkFramebuffer>( framebuffer ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45514. }
  45515. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45516. template<typename Dispatch>
  45517. VULKAN_HPP_INLINE void Device::destroyImage( Image image, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45518. {
  45519. d.vkDestroyImage( m_device, static_cast<VkImage>( image ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45520. }
  45521. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45522. template<typename Dispatch>
  45523. VULKAN_HPP_INLINE void Device::destroyImage( Image image, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45524. {
  45525. d.vkDestroyImage( m_device, static_cast<VkImage>( image ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45526. }
  45527. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45528. template<typename Dispatch>
  45529. VULKAN_HPP_INLINE void Device::destroy( Image image, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45530. {
  45531. d.vkDestroyImage( m_device, static_cast<VkImage>( image ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45532. }
  45533. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45534. template<typename Dispatch>
  45535. VULKAN_HPP_INLINE void Device::destroy( Image image, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45536. {
  45537. d.vkDestroyImage( m_device, static_cast<VkImage>( image ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45538. }
  45539. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45540. template<typename Dispatch>
  45541. VULKAN_HPP_INLINE void Device::destroyImageView( ImageView imageView, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45542. {
  45543. d.vkDestroyImageView( m_device, static_cast<VkImageView>( imageView ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45544. }
  45545. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45546. template<typename Dispatch>
  45547. VULKAN_HPP_INLINE void Device::destroyImageView( ImageView imageView, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45548. {
  45549. d.vkDestroyImageView( m_device, static_cast<VkImageView>( imageView ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45550. }
  45551. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45552. template<typename Dispatch>
  45553. VULKAN_HPP_INLINE void Device::destroy( ImageView imageView, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45554. {
  45555. d.vkDestroyImageView( m_device, static_cast<VkImageView>( imageView ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45556. }
  45557. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45558. template<typename Dispatch>
  45559. VULKAN_HPP_INLINE void Device::destroy( ImageView imageView, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45560. {
  45561. d.vkDestroyImageView( m_device, static_cast<VkImageView>( imageView ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45562. }
  45563. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45564. template<typename Dispatch>
  45565. VULKAN_HPP_INLINE void Device::destroyIndirectCommandsLayoutNVX( IndirectCommandsLayoutNVX indirectCommandsLayout, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45566. {
  45567. d.vkDestroyIndirectCommandsLayoutNVX( m_device, static_cast<VkIndirectCommandsLayoutNVX>( indirectCommandsLayout ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45568. }
  45569. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45570. template<typename Dispatch>
  45571. VULKAN_HPP_INLINE void Device::destroyIndirectCommandsLayoutNVX( IndirectCommandsLayoutNVX indirectCommandsLayout, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45572. {
  45573. d.vkDestroyIndirectCommandsLayoutNVX( m_device, static_cast<VkIndirectCommandsLayoutNVX>( indirectCommandsLayout ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45574. }
  45575. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45576. template<typename Dispatch>
  45577. VULKAN_HPP_INLINE void Device::destroy( IndirectCommandsLayoutNVX indirectCommandsLayout, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45578. {
  45579. d.vkDestroyIndirectCommandsLayoutNVX( m_device, static_cast<VkIndirectCommandsLayoutNVX>( indirectCommandsLayout ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45580. }
  45581. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45582. template<typename Dispatch>
  45583. VULKAN_HPP_INLINE void Device::destroy( IndirectCommandsLayoutNVX indirectCommandsLayout, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45584. {
  45585. d.vkDestroyIndirectCommandsLayoutNVX( m_device, static_cast<VkIndirectCommandsLayoutNVX>( indirectCommandsLayout ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45586. }
  45587. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45588. template<typename Dispatch>
  45589. VULKAN_HPP_INLINE void Device::destroyObjectTableNVX( ObjectTableNVX objectTable, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45590. {
  45591. d.vkDestroyObjectTableNVX( m_device, static_cast<VkObjectTableNVX>( objectTable ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45592. }
  45593. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45594. template<typename Dispatch>
  45595. VULKAN_HPP_INLINE void Device::destroyObjectTableNVX( ObjectTableNVX objectTable, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45596. {
  45597. d.vkDestroyObjectTableNVX( m_device, static_cast<VkObjectTableNVX>( objectTable ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45598. }
  45599. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45600. template<typename Dispatch>
  45601. VULKAN_HPP_INLINE void Device::destroy( ObjectTableNVX objectTable, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45602. {
  45603. d.vkDestroyObjectTableNVX( m_device, static_cast<VkObjectTableNVX>( objectTable ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45604. }
  45605. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45606. template<typename Dispatch>
  45607. VULKAN_HPP_INLINE void Device::destroy( ObjectTableNVX objectTable, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45608. {
  45609. d.vkDestroyObjectTableNVX( m_device, static_cast<VkObjectTableNVX>( objectTable ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45610. }
  45611. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45612. template<typename Dispatch>
  45613. VULKAN_HPP_INLINE void Device::destroyPipeline( Pipeline pipeline, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45614. {
  45615. d.vkDestroyPipeline( m_device, static_cast<VkPipeline>( pipeline ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45616. }
  45617. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45618. template<typename Dispatch>
  45619. VULKAN_HPP_INLINE void Device::destroyPipeline( Pipeline pipeline, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45620. {
  45621. d.vkDestroyPipeline( m_device, static_cast<VkPipeline>( pipeline ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45622. }
  45623. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45624. template<typename Dispatch>
  45625. VULKAN_HPP_INLINE void Device::destroy( Pipeline pipeline, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45626. {
  45627. d.vkDestroyPipeline( m_device, static_cast<VkPipeline>( pipeline ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45628. }
  45629. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45630. template<typename Dispatch>
  45631. VULKAN_HPP_INLINE void Device::destroy( Pipeline pipeline, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45632. {
  45633. d.vkDestroyPipeline( m_device, static_cast<VkPipeline>( pipeline ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45634. }
  45635. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45636. template<typename Dispatch>
  45637. VULKAN_HPP_INLINE void Device::destroyPipelineCache( PipelineCache pipelineCache, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45638. {
  45639. d.vkDestroyPipelineCache( m_device, static_cast<VkPipelineCache>( pipelineCache ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45640. }
  45641. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45642. template<typename Dispatch>
  45643. VULKAN_HPP_INLINE void Device::destroyPipelineCache( PipelineCache pipelineCache, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45644. {
  45645. d.vkDestroyPipelineCache( m_device, static_cast<VkPipelineCache>( pipelineCache ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45646. }
  45647. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45648. template<typename Dispatch>
  45649. VULKAN_HPP_INLINE void Device::destroy( PipelineCache pipelineCache, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45650. {
  45651. d.vkDestroyPipelineCache( m_device, static_cast<VkPipelineCache>( pipelineCache ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45652. }
  45653. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45654. template<typename Dispatch>
  45655. VULKAN_HPP_INLINE void Device::destroy( PipelineCache pipelineCache, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45656. {
  45657. d.vkDestroyPipelineCache( m_device, static_cast<VkPipelineCache>( pipelineCache ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45658. }
  45659. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45660. template<typename Dispatch>
  45661. VULKAN_HPP_INLINE void Device::destroyPipelineLayout( PipelineLayout pipelineLayout, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45662. {
  45663. d.vkDestroyPipelineLayout( m_device, static_cast<VkPipelineLayout>( pipelineLayout ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45664. }
  45665. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45666. template<typename Dispatch>
  45667. VULKAN_HPP_INLINE void Device::destroyPipelineLayout( PipelineLayout pipelineLayout, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45668. {
  45669. d.vkDestroyPipelineLayout( m_device, static_cast<VkPipelineLayout>( pipelineLayout ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45670. }
  45671. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45672. template<typename Dispatch>
  45673. VULKAN_HPP_INLINE void Device::destroy( PipelineLayout pipelineLayout, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45674. {
  45675. d.vkDestroyPipelineLayout( m_device, static_cast<VkPipelineLayout>( pipelineLayout ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45676. }
  45677. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45678. template<typename Dispatch>
  45679. VULKAN_HPP_INLINE void Device::destroy( PipelineLayout pipelineLayout, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45680. {
  45681. d.vkDestroyPipelineLayout( m_device, static_cast<VkPipelineLayout>( pipelineLayout ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45682. }
  45683. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45684. template<typename Dispatch>
  45685. VULKAN_HPP_INLINE void Device::destroyQueryPool( QueryPool queryPool, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45686. {
  45687. d.vkDestroyQueryPool( m_device, static_cast<VkQueryPool>( queryPool ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45688. }
  45689. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45690. template<typename Dispatch>
  45691. VULKAN_HPP_INLINE void Device::destroyQueryPool( QueryPool queryPool, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45692. {
  45693. d.vkDestroyQueryPool( m_device, static_cast<VkQueryPool>( queryPool ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45694. }
  45695. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45696. template<typename Dispatch>
  45697. VULKAN_HPP_INLINE void Device::destroy( QueryPool queryPool, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45698. {
  45699. d.vkDestroyQueryPool( m_device, static_cast<VkQueryPool>( queryPool ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45700. }
  45701. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45702. template<typename Dispatch>
  45703. VULKAN_HPP_INLINE void Device::destroy( QueryPool queryPool, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45704. {
  45705. d.vkDestroyQueryPool( m_device, static_cast<VkQueryPool>( queryPool ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45706. }
  45707. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45708. template<typename Dispatch>
  45709. VULKAN_HPP_INLINE void Device::destroyRenderPass( RenderPass renderPass, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45710. {
  45711. d.vkDestroyRenderPass( m_device, static_cast<VkRenderPass>( renderPass ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45712. }
  45713. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45714. template<typename Dispatch>
  45715. VULKAN_HPP_INLINE void Device::destroyRenderPass( RenderPass renderPass, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45716. {
  45717. d.vkDestroyRenderPass( m_device, static_cast<VkRenderPass>( renderPass ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45718. }
  45719. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45720. template<typename Dispatch>
  45721. VULKAN_HPP_INLINE void Device::destroy( RenderPass renderPass, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45722. {
  45723. d.vkDestroyRenderPass( m_device, static_cast<VkRenderPass>( renderPass ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45724. }
  45725. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45726. template<typename Dispatch>
  45727. VULKAN_HPP_INLINE void Device::destroy( RenderPass renderPass, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45728. {
  45729. d.vkDestroyRenderPass( m_device, static_cast<VkRenderPass>( renderPass ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45730. }
  45731. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45732. template<typename Dispatch>
  45733. VULKAN_HPP_INLINE void Device::destroySampler( Sampler sampler, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45734. {
  45735. d.vkDestroySampler( m_device, static_cast<VkSampler>( sampler ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45736. }
  45737. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45738. template<typename Dispatch>
  45739. VULKAN_HPP_INLINE void Device::destroySampler( Sampler sampler, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45740. {
  45741. d.vkDestroySampler( m_device, static_cast<VkSampler>( sampler ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45742. }
  45743. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45744. template<typename Dispatch>
  45745. VULKAN_HPP_INLINE void Device::destroy( Sampler sampler, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45746. {
  45747. d.vkDestroySampler( m_device, static_cast<VkSampler>( sampler ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45748. }
  45749. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45750. template<typename Dispatch>
  45751. VULKAN_HPP_INLINE void Device::destroy( Sampler sampler, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45752. {
  45753. d.vkDestroySampler( m_device, static_cast<VkSampler>( sampler ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45754. }
  45755. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45756. template<typename Dispatch>
  45757. VULKAN_HPP_INLINE void Device::destroySamplerYcbcrConversion( SamplerYcbcrConversion ycbcrConversion, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45758. {
  45759. d.vkDestroySamplerYcbcrConversion( m_device, static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45760. }
  45761. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45762. template<typename Dispatch>
  45763. VULKAN_HPP_INLINE void Device::destroySamplerYcbcrConversion( SamplerYcbcrConversion ycbcrConversion, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45764. {
  45765. d.vkDestroySamplerYcbcrConversion( m_device, static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45766. }
  45767. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45768. template<typename Dispatch>
  45769. VULKAN_HPP_INLINE void Device::destroy( SamplerYcbcrConversion ycbcrConversion, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45770. {
  45771. d.vkDestroySamplerYcbcrConversion( m_device, static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45772. }
  45773. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45774. template<typename Dispatch>
  45775. VULKAN_HPP_INLINE void Device::destroy( SamplerYcbcrConversion ycbcrConversion, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45776. {
  45777. d.vkDestroySamplerYcbcrConversion( m_device, static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45778. }
  45779. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45780. template<typename Dispatch>
  45781. VULKAN_HPP_INLINE void Device::destroySamplerYcbcrConversionKHR( SamplerYcbcrConversion ycbcrConversion, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45782. {
  45783. d.vkDestroySamplerYcbcrConversionKHR( m_device, static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45784. }
  45785. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45786. template<typename Dispatch>
  45787. VULKAN_HPP_INLINE void Device::destroySamplerYcbcrConversionKHR( SamplerYcbcrConversion ycbcrConversion, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45788. {
  45789. d.vkDestroySamplerYcbcrConversionKHR( m_device, static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45790. }
  45791. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45792. template<typename Dispatch>
  45793. VULKAN_HPP_INLINE void Device::destroySemaphore( Semaphore semaphore, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45794. {
  45795. d.vkDestroySemaphore( m_device, static_cast<VkSemaphore>( semaphore ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45796. }
  45797. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45798. template<typename Dispatch>
  45799. VULKAN_HPP_INLINE void Device::destroySemaphore( Semaphore semaphore, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45800. {
  45801. d.vkDestroySemaphore( m_device, static_cast<VkSemaphore>( semaphore ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45802. }
  45803. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45804. template<typename Dispatch>
  45805. VULKAN_HPP_INLINE void Device::destroy( Semaphore semaphore, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45806. {
  45807. d.vkDestroySemaphore( m_device, static_cast<VkSemaphore>( semaphore ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45808. }
  45809. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45810. template<typename Dispatch>
  45811. VULKAN_HPP_INLINE void Device::destroy( Semaphore semaphore, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45812. {
  45813. d.vkDestroySemaphore( m_device, static_cast<VkSemaphore>( semaphore ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45814. }
  45815. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45816. template<typename Dispatch>
  45817. VULKAN_HPP_INLINE void Device::destroyShaderModule( ShaderModule shaderModule, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45818. {
  45819. d.vkDestroyShaderModule( m_device, static_cast<VkShaderModule>( shaderModule ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45820. }
  45821. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45822. template<typename Dispatch>
  45823. VULKAN_HPP_INLINE void Device::destroyShaderModule( ShaderModule shaderModule, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45824. {
  45825. d.vkDestroyShaderModule( m_device, static_cast<VkShaderModule>( shaderModule ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45826. }
  45827. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45828. template<typename Dispatch>
  45829. VULKAN_HPP_INLINE void Device::destroy( ShaderModule shaderModule, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45830. {
  45831. d.vkDestroyShaderModule( m_device, static_cast<VkShaderModule>( shaderModule ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45832. }
  45833. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45834. template<typename Dispatch>
  45835. VULKAN_HPP_INLINE void Device::destroy( ShaderModule shaderModule, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45836. {
  45837. d.vkDestroyShaderModule( m_device, static_cast<VkShaderModule>( shaderModule ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45838. }
  45839. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45840. template<typename Dispatch>
  45841. VULKAN_HPP_INLINE void Device::destroySwapchainKHR( SwapchainKHR swapchain, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45842. {
  45843. d.vkDestroySwapchainKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45844. }
  45845. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45846. template<typename Dispatch>
  45847. VULKAN_HPP_INLINE void Device::destroySwapchainKHR( SwapchainKHR swapchain, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45848. {
  45849. d.vkDestroySwapchainKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45850. }
  45851. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45852. template<typename Dispatch>
  45853. VULKAN_HPP_INLINE void Device::destroy( SwapchainKHR swapchain, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45854. {
  45855. d.vkDestroySwapchainKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45856. }
  45857. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45858. template<typename Dispatch>
  45859. VULKAN_HPP_INLINE void Device::destroy( SwapchainKHR swapchain, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45860. {
  45861. d.vkDestroySwapchainKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45862. }
  45863. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45864. template<typename Dispatch>
  45865. VULKAN_HPP_INLINE void Device::destroyValidationCacheEXT( ValidationCacheEXT validationCache, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45866. {
  45867. d.vkDestroyValidationCacheEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45868. }
  45869. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45870. template<typename Dispatch>
  45871. VULKAN_HPP_INLINE void Device::destroyValidationCacheEXT( ValidationCacheEXT validationCache, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45872. {
  45873. d.vkDestroyValidationCacheEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45874. }
  45875. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45876. template<typename Dispatch>
  45877. VULKAN_HPP_INLINE void Device::destroy( ValidationCacheEXT validationCache, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45878. {
  45879. d.vkDestroyValidationCacheEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45880. }
  45881. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45882. template<typename Dispatch>
  45883. VULKAN_HPP_INLINE void Device::destroy( ValidationCacheEXT validationCache, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45884. {
  45885. d.vkDestroyValidationCacheEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45886. }
  45887. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45888. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45889. template<typename Dispatch>
  45890. VULKAN_HPP_INLINE Result Device::waitIdle(Dispatch const &d) const
  45891. {
  45892. return static_cast<Result>( d.vkDeviceWaitIdle( m_device ) );
  45893. }
  45894. #else
  45895. template<typename Dispatch>
  45896. VULKAN_HPP_INLINE ResultValueType<void>::type Device::waitIdle(Dispatch const &d ) const
  45897. {
  45898. Result result = static_cast<Result>( d.vkDeviceWaitIdle( m_device ) );
  45899. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::waitIdle" );
  45900. }
  45901. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45902. template<typename Dispatch>
  45903. VULKAN_HPP_INLINE Result Device::displayPowerControlEXT( DisplayKHR display, const DisplayPowerInfoEXT* pDisplayPowerInfo, Dispatch const &d) const
  45904. {
  45905. return static_cast<Result>( d.vkDisplayPowerControlEXT( m_device, static_cast<VkDisplayKHR>( display ), reinterpret_cast<const VkDisplayPowerInfoEXT*>( pDisplayPowerInfo ) ) );
  45906. }
  45907. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45908. template<typename Dispatch>
  45909. VULKAN_HPP_INLINE ResultValueType<void>::type Device::displayPowerControlEXT( DisplayKHR display, const DisplayPowerInfoEXT & displayPowerInfo, Dispatch const &d ) const
  45910. {
  45911. Result result = static_cast<Result>( d.vkDisplayPowerControlEXT( m_device, static_cast<VkDisplayKHR>( display ), reinterpret_cast<const VkDisplayPowerInfoEXT*>( &displayPowerInfo ) ) );
  45912. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::displayPowerControlEXT" );
  45913. }
  45914. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45915. template<typename Dispatch>
  45916. VULKAN_HPP_INLINE Result Device::flushMappedMemoryRanges( uint32_t memoryRangeCount, const MappedMemoryRange* pMemoryRanges, Dispatch const &d) const
  45917. {
  45918. return static_cast<Result>( d.vkFlushMappedMemoryRanges( m_device, memoryRangeCount, reinterpret_cast<const VkMappedMemoryRange*>( pMemoryRanges ) ) );
  45919. }
  45920. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45921. template<typename Dispatch>
  45922. VULKAN_HPP_INLINE ResultValueType<void>::type Device::flushMappedMemoryRanges( ArrayProxy<const MappedMemoryRange> memoryRanges, Dispatch const &d ) const
  45923. {
  45924. Result result = static_cast<Result>( d.vkFlushMappedMemoryRanges( m_device, memoryRanges.size() , reinterpret_cast<const VkMappedMemoryRange*>( memoryRanges.data() ) ) );
  45925. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::flushMappedMemoryRanges" );
  45926. }
  45927. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45928. template<typename Dispatch>
  45929. VULKAN_HPP_INLINE void Device::freeCommandBuffers( CommandPool commandPool, uint32_t commandBufferCount, const CommandBuffer* pCommandBuffers, Dispatch const &d) const
  45930. {
  45931. d.vkFreeCommandBuffers( m_device, static_cast<VkCommandPool>( commandPool ), commandBufferCount, reinterpret_cast<const VkCommandBuffer*>( pCommandBuffers ) );
  45932. }
  45933. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45934. template<typename Dispatch>
  45935. VULKAN_HPP_INLINE void Device::freeCommandBuffers( CommandPool commandPool, ArrayProxy<const CommandBuffer> commandBuffers, Dispatch const &d ) const
  45936. {
  45937. d.vkFreeCommandBuffers( m_device, static_cast<VkCommandPool>( commandPool ), commandBuffers.size() , reinterpret_cast<const VkCommandBuffer*>( commandBuffers.data() ) );
  45938. }
  45939. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45940. template<typename Dispatch>
  45941. VULKAN_HPP_INLINE void Device::free( CommandPool commandPool, uint32_t commandBufferCount, const CommandBuffer* pCommandBuffers, Dispatch const &d) const
  45942. {
  45943. d.vkFreeCommandBuffers( m_device, static_cast<VkCommandPool>( commandPool ), commandBufferCount, reinterpret_cast<const VkCommandBuffer*>( pCommandBuffers ) );
  45944. }
  45945. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45946. template<typename Dispatch>
  45947. VULKAN_HPP_INLINE void Device::free( CommandPool commandPool, ArrayProxy<const CommandBuffer> commandBuffers, Dispatch const &d ) const
  45948. {
  45949. d.vkFreeCommandBuffers( m_device, static_cast<VkCommandPool>( commandPool ), commandBuffers.size() , reinterpret_cast<const VkCommandBuffer*>( commandBuffers.data() ) );
  45950. }
  45951. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45952. template<typename Dispatch>
  45953. VULKAN_HPP_INLINE Result Device::freeDescriptorSets( DescriptorPool descriptorPool, uint32_t descriptorSetCount, const DescriptorSet* pDescriptorSets, Dispatch const &d) const
  45954. {
  45955. return static_cast<Result>( d.vkFreeDescriptorSets( m_device, static_cast<VkDescriptorPool>( descriptorPool ), descriptorSetCount, reinterpret_cast<const VkDescriptorSet*>( pDescriptorSets ) ) );
  45956. }
  45957. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45958. template<typename Dispatch>
  45959. VULKAN_HPP_INLINE ResultValueType<void>::type Device::freeDescriptorSets( DescriptorPool descriptorPool, ArrayProxy<const DescriptorSet> descriptorSets, Dispatch const &d ) const
  45960. {
  45961. Result result = static_cast<Result>( d.vkFreeDescriptorSets( m_device, static_cast<VkDescriptorPool>( descriptorPool ), descriptorSets.size() , reinterpret_cast<const VkDescriptorSet*>( descriptorSets.data() ) ) );
  45962. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::freeDescriptorSets" );
  45963. }
  45964. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45965. template<typename Dispatch>
  45966. VULKAN_HPP_INLINE Result Device::free( DescriptorPool descriptorPool, uint32_t descriptorSetCount, const DescriptorSet* pDescriptorSets, Dispatch const &d) const
  45967. {
  45968. return static_cast<Result>( d.vkFreeDescriptorSets( m_device, static_cast<VkDescriptorPool>( descriptorPool ), descriptorSetCount, reinterpret_cast<const VkDescriptorSet*>( pDescriptorSets ) ) );
  45969. }
  45970. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45971. template<typename Dispatch>
  45972. VULKAN_HPP_INLINE ResultValueType<void>::type Device::free( DescriptorPool descriptorPool, ArrayProxy<const DescriptorSet> descriptorSets, Dispatch const &d ) const
  45973. {
  45974. Result result = static_cast<Result>( d.vkFreeDescriptorSets( m_device, static_cast<VkDescriptorPool>( descriptorPool ), descriptorSets.size() , reinterpret_cast<const VkDescriptorSet*>( descriptorSets.data() ) ) );
  45975. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::free" );
  45976. }
  45977. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45978. template<typename Dispatch>
  45979. VULKAN_HPP_INLINE void Device::freeMemory( DeviceMemory memory, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45980. {
  45981. d.vkFreeMemory( m_device, static_cast<VkDeviceMemory>( memory ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45982. }
  45983. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45984. template<typename Dispatch>
  45985. VULKAN_HPP_INLINE void Device::freeMemory( DeviceMemory memory, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45986. {
  45987. d.vkFreeMemory( m_device, static_cast<VkDeviceMemory>( memory ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  45988. }
  45989. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  45990. template<typename Dispatch>
  45991. VULKAN_HPP_INLINE void Device::free( DeviceMemory memory, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  45992. {
  45993. d.vkFreeMemory( m_device, static_cast<VkDeviceMemory>( memory ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  45994. }
  45995. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  45996. template<typename Dispatch>
  45997. VULKAN_HPP_INLINE void Device::free( DeviceMemory memory, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  45998. {
  45999. d.vkFreeMemory( m_device, static_cast<VkDeviceMemory>( memory ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  46000. }
  46001. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46002. template<typename Dispatch>
  46003. VULKAN_HPP_INLINE Result Device::getAccelerationStructureHandleNV( AccelerationStructureNV accelerationStructure, size_t dataSize, void* pData, Dispatch const &d) const
  46004. {
  46005. return static_cast<Result>( d.vkGetAccelerationStructureHandleNV( m_device, static_cast<VkAccelerationStructureNV>( accelerationStructure ), dataSize, pData ) );
  46006. }
  46007. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46008. template<typename T, typename Dispatch>
  46009. VULKAN_HPP_INLINE ResultValueType<void>::type Device::getAccelerationStructureHandleNV( AccelerationStructureNV accelerationStructure, ArrayProxy<T> data, Dispatch const &d ) const
  46010. {
  46011. Result result = static_cast<Result>( d.vkGetAccelerationStructureHandleNV( m_device, static_cast<VkAccelerationStructureNV>( accelerationStructure ), data.size() * sizeof( T ) , reinterpret_cast<void*>( data.data() ) ) );
  46012. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getAccelerationStructureHandleNV" );
  46013. }
  46014. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46015. template<typename Dispatch>
  46016. VULKAN_HPP_INLINE void Device::getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV* pInfo, MemoryRequirements2KHR* pMemoryRequirements, Dispatch const &d) const
  46017. {
  46018. d.vkGetAccelerationStructureMemoryRequirementsNV( m_device, reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNV*>( pInfo ), reinterpret_cast<VkMemoryRequirements2KHR*>( pMemoryRequirements ) );
  46019. }
  46020. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46021. template<typename Dispatch>
  46022. VULKAN_HPP_INLINE MemoryRequirements2KHR Device::getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info, Dispatch const &d ) const
  46023. {
  46024. MemoryRequirements2KHR memoryRequirements;
  46025. d.vkGetAccelerationStructureMemoryRequirementsNV( m_device, reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNV*>( &info ), reinterpret_cast<VkMemoryRequirements2KHR*>( &memoryRequirements ) );
  46026. return memoryRequirements;
  46027. }
  46028. template<typename X, typename Y, typename ...Z, typename Dispatch>
  46029. VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info, Dispatch const &d ) const
  46030. {
  46031. StructureChain<X, Y, Z...> structureChain;
  46032. MemoryRequirements2KHR& memoryRequirements = structureChain.template get<MemoryRequirements2KHR>();
  46033. d.vkGetAccelerationStructureMemoryRequirementsNV( m_device, reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNV*>( &info ), reinterpret_cast<VkMemoryRequirements2KHR*>( &memoryRequirements ) );
  46034. return structureChain;
  46035. }
  46036. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46037. #ifdef VK_USE_PLATFORM_ANDROID_KHR
  46038. template<typename Dispatch>
  46039. VULKAN_HPP_INLINE Result Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer* buffer, AndroidHardwareBufferPropertiesANDROID* pProperties, Dispatch const &d) const
  46040. {
  46041. return static_cast<Result>( d.vkGetAndroidHardwareBufferPropertiesANDROID( m_device, buffer, reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID*>( pProperties ) ) );
  46042. }
  46043. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46044. template<typename Dispatch>
  46045. VULKAN_HPP_INLINE ResultValueType<AndroidHardwareBufferPropertiesANDROID>::type Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, Dispatch const &d ) const
  46046. {
  46047. AndroidHardwareBufferPropertiesANDROID properties;
  46048. Result result = static_cast<Result>( d.vkGetAndroidHardwareBufferPropertiesANDROID( m_device, buffer, reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID*>( &properties ) ) );
  46049. return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::Device::getAndroidHardwareBufferPropertiesANDROID" );
  46050. }
  46051. template<typename X, typename Y, typename ...Z, typename Dispatch>
  46052. VULKAN_HPP_INLINE typename ResultValueType<StructureChain<X, Y, Z...>>::type Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, Dispatch const &d ) const
  46053. {
  46054. StructureChain<X, Y, Z...> structureChain;
  46055. AndroidHardwareBufferPropertiesANDROID& properties = structureChain.template get<AndroidHardwareBufferPropertiesANDROID>();
  46056. Result result = static_cast<Result>( d.vkGetAndroidHardwareBufferPropertiesANDROID( m_device, buffer, reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID*>( &properties ) ) );
  46057. return createResultValue( result, structureChain, VULKAN_HPP_NAMESPACE_STRING"::Device::getAndroidHardwareBufferPropertiesANDROID" );
  46058. }
  46059. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46060. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  46061. template<typename Dispatch>
  46062. VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddressEXT( const BufferDeviceAddressInfoEXT* pInfo, Dispatch const &d) const
  46063. {
  46064. return static_cast<DeviceAddress>( d.vkGetBufferDeviceAddressEXT( m_device, reinterpret_cast<const VkBufferDeviceAddressInfoEXT*>( pInfo ) ) );
  46065. }
  46066. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46067. template<typename Dispatch>
  46068. VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddressEXT( const BufferDeviceAddressInfoEXT & info, Dispatch const &d ) const
  46069. {
  46070. return d.vkGetBufferDeviceAddressEXT( m_device, reinterpret_cast<const VkBufferDeviceAddressInfoEXT*>( &info ) );
  46071. }
  46072. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46073. template<typename Dispatch>
  46074. VULKAN_HPP_INLINE void Device::getBufferMemoryRequirements( Buffer buffer, MemoryRequirements* pMemoryRequirements, Dispatch const &d) const
  46075. {
  46076. d.vkGetBufferMemoryRequirements( m_device, static_cast<VkBuffer>( buffer ), reinterpret_cast<VkMemoryRequirements*>( pMemoryRequirements ) );
  46077. }
  46078. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46079. template<typename Dispatch>
  46080. VULKAN_HPP_INLINE MemoryRequirements Device::getBufferMemoryRequirements( Buffer buffer, Dispatch const &d ) const
  46081. {
  46082. MemoryRequirements memoryRequirements;
  46083. d.vkGetBufferMemoryRequirements( m_device, static_cast<VkBuffer>( buffer ), reinterpret_cast<VkMemoryRequirements*>( &memoryRequirements ) );
  46084. return memoryRequirements;
  46085. }
  46086. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46087. template<typename Dispatch>
  46088. VULKAN_HPP_INLINE void Device::getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2* pInfo, MemoryRequirements2* pMemoryRequirements, Dispatch const &d) const
  46089. {
  46090. d.vkGetBufferMemoryRequirements2( m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2*>( pInfo ), reinterpret_cast<VkMemoryRequirements2*>( pMemoryRequirements ) );
  46091. }
  46092. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46093. template<typename Dispatch>
  46094. VULKAN_HPP_INLINE MemoryRequirements2 Device::getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d ) const
  46095. {
  46096. MemoryRequirements2 memoryRequirements;
  46097. d.vkGetBufferMemoryRequirements2( m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2*>( &info ), reinterpret_cast<VkMemoryRequirements2*>( &memoryRequirements ) );
  46098. return memoryRequirements;
  46099. }
  46100. template<typename X, typename Y, typename ...Z, typename Dispatch>
  46101. VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d ) const
  46102. {
  46103. StructureChain<X, Y, Z...> structureChain;
  46104. MemoryRequirements2& memoryRequirements = structureChain.template get<MemoryRequirements2>();
  46105. d.vkGetBufferMemoryRequirements2( m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2*>( &info ), reinterpret_cast<VkMemoryRequirements2*>( &memoryRequirements ) );
  46106. return structureChain;
  46107. }
  46108. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46109. template<typename Dispatch>
  46110. VULKAN_HPP_INLINE void Device::getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2* pInfo, MemoryRequirements2* pMemoryRequirements, Dispatch const &d) const
  46111. {
  46112. d.vkGetBufferMemoryRequirements2KHR( m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2*>( pInfo ), reinterpret_cast<VkMemoryRequirements2*>( pMemoryRequirements ) );
  46113. }
  46114. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46115. template<typename Dispatch>
  46116. VULKAN_HPP_INLINE MemoryRequirements2 Device::getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d ) const
  46117. {
  46118. MemoryRequirements2 memoryRequirements;
  46119. d.vkGetBufferMemoryRequirements2KHR( m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2*>( &info ), reinterpret_cast<VkMemoryRequirements2*>( &memoryRequirements ) );
  46120. return memoryRequirements;
  46121. }
  46122. template<typename X, typename Y, typename ...Z, typename Dispatch>
  46123. VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info, Dispatch const &d ) const
  46124. {
  46125. StructureChain<X, Y, Z...> structureChain;
  46126. MemoryRequirements2& memoryRequirements = structureChain.template get<MemoryRequirements2>();
  46127. d.vkGetBufferMemoryRequirements2KHR( m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2*>( &info ), reinterpret_cast<VkMemoryRequirements2*>( &memoryRequirements ) );
  46128. return structureChain;
  46129. }
  46130. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46131. template<typename Dispatch>
  46132. VULKAN_HPP_INLINE Result Device::getCalibratedTimestampsEXT( uint32_t timestampCount, const CalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation, Dispatch const &d) const
  46133. {
  46134. return static_cast<Result>( d.vkGetCalibratedTimestampsEXT( m_device, timestampCount, reinterpret_cast<const VkCalibratedTimestampInfoEXT*>( pTimestampInfos ), pTimestamps, pMaxDeviation ) );
  46135. }
  46136. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46137. template<typename Dispatch>
  46138. VULKAN_HPP_INLINE ResultValueType<uint64_t>::type Device::getCalibratedTimestampsEXT( ArrayProxy<const CalibratedTimestampInfoEXT> timestampInfos, ArrayProxy<uint64_t> timestamps, Dispatch const &d ) const
  46139. {
  46140. #ifdef VULKAN_HPP_NO_EXCEPTIONS
  46141. VULKAN_HPP_ASSERT( timestampInfos.size() == timestamps.size() );
  46142. #else
  46143. if ( timestampInfos.size() != timestamps.size() )
  46144. {
  46145. throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkDevice::getCalibratedTimestampsEXT: timestampInfos.size() != timestamps.size()" );
  46146. }
  46147. #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
  46148. uint64_t maxDeviation;
  46149. Result result = static_cast<Result>( d.vkGetCalibratedTimestampsEXT( m_device, timestampInfos.size() , reinterpret_cast<const VkCalibratedTimestampInfoEXT*>( timestampInfos.data() ), timestamps.data(), &maxDeviation ) );
  46150. return createResultValue( result, maxDeviation, VULKAN_HPP_NAMESPACE_STRING"::Device::getCalibratedTimestampsEXT" );
  46151. }
  46152. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46153. template<typename Dispatch>
  46154. VULKAN_HPP_INLINE void Device::getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo* pCreateInfo, DescriptorSetLayoutSupport* pSupport, Dispatch const &d) const
  46155. {
  46156. d.vkGetDescriptorSetLayoutSupport( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo*>( pCreateInfo ), reinterpret_cast<VkDescriptorSetLayoutSupport*>( pSupport ) );
  46157. }
  46158. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46159. template<typename Dispatch>
  46160. VULKAN_HPP_INLINE DescriptorSetLayoutSupport Device::getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d ) const
  46161. {
  46162. DescriptorSetLayoutSupport support;
  46163. d.vkGetDescriptorSetLayoutSupport( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo*>( &createInfo ), reinterpret_cast<VkDescriptorSetLayoutSupport*>( &support ) );
  46164. return support;
  46165. }
  46166. template<typename X, typename Y, typename ...Z, typename Dispatch>
  46167. VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d ) const
  46168. {
  46169. StructureChain<X, Y, Z...> structureChain;
  46170. DescriptorSetLayoutSupport& support = structureChain.template get<DescriptorSetLayoutSupport>();
  46171. d.vkGetDescriptorSetLayoutSupport( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo*>( &createInfo ), reinterpret_cast<VkDescriptorSetLayoutSupport*>( &support ) );
  46172. return structureChain;
  46173. }
  46174. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46175. template<typename Dispatch>
  46176. VULKAN_HPP_INLINE void Device::getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo* pCreateInfo, DescriptorSetLayoutSupport* pSupport, Dispatch const &d) const
  46177. {
  46178. d.vkGetDescriptorSetLayoutSupportKHR( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo*>( pCreateInfo ), reinterpret_cast<VkDescriptorSetLayoutSupport*>( pSupport ) );
  46179. }
  46180. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46181. template<typename Dispatch>
  46182. VULKAN_HPP_INLINE DescriptorSetLayoutSupport Device::getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d ) const
  46183. {
  46184. DescriptorSetLayoutSupport support;
  46185. d.vkGetDescriptorSetLayoutSupportKHR( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo*>( &createInfo ), reinterpret_cast<VkDescriptorSetLayoutSupport*>( &support ) );
  46186. return support;
  46187. }
  46188. template<typename X, typename Y, typename ...Z, typename Dispatch>
  46189. VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const &d ) const
  46190. {
  46191. StructureChain<X, Y, Z...> structureChain;
  46192. DescriptorSetLayoutSupport& support = structureChain.template get<DescriptorSetLayoutSupport>();
  46193. d.vkGetDescriptorSetLayoutSupportKHR( m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo*>( &createInfo ), reinterpret_cast<VkDescriptorSetLayoutSupport*>( &support ) );
  46194. return structureChain;
  46195. }
  46196. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46197. template<typename Dispatch>
  46198. VULKAN_HPP_INLINE void Device::getGroupPeerMemoryFeatures( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, PeerMemoryFeatureFlags* pPeerMemoryFeatures, Dispatch const &d) const
  46199. {
  46200. d.vkGetDeviceGroupPeerMemoryFeatures( m_device, heapIndex, localDeviceIndex, remoteDeviceIndex, reinterpret_cast<VkPeerMemoryFeatureFlags*>( pPeerMemoryFeatures ) );
  46201. }
  46202. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46203. template<typename Dispatch>
  46204. VULKAN_HPP_INLINE PeerMemoryFeatureFlags Device::getGroupPeerMemoryFeatures( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, Dispatch const &d ) const
  46205. {
  46206. PeerMemoryFeatureFlags peerMemoryFeatures;
  46207. d.vkGetDeviceGroupPeerMemoryFeatures( m_device, heapIndex, localDeviceIndex, remoteDeviceIndex, reinterpret_cast<VkPeerMemoryFeatureFlags*>( &peerMemoryFeatures ) );
  46208. return peerMemoryFeatures;
  46209. }
  46210. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46211. template<typename Dispatch>
  46212. VULKAN_HPP_INLINE void Device::getGroupPeerMemoryFeaturesKHR( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, PeerMemoryFeatureFlags* pPeerMemoryFeatures, Dispatch const &d) const
  46213. {
  46214. d.vkGetDeviceGroupPeerMemoryFeaturesKHR( m_device, heapIndex, localDeviceIndex, remoteDeviceIndex, reinterpret_cast<VkPeerMemoryFeatureFlags*>( pPeerMemoryFeatures ) );
  46215. }
  46216. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46217. template<typename Dispatch>
  46218. VULKAN_HPP_INLINE PeerMemoryFeatureFlags Device::getGroupPeerMemoryFeaturesKHR( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, Dispatch const &d ) const
  46219. {
  46220. PeerMemoryFeatureFlags peerMemoryFeatures;
  46221. d.vkGetDeviceGroupPeerMemoryFeaturesKHR( m_device, heapIndex, localDeviceIndex, remoteDeviceIndex, reinterpret_cast<VkPeerMemoryFeatureFlags*>( &peerMemoryFeatures ) );
  46222. return peerMemoryFeatures;
  46223. }
  46224. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46225. template<typename Dispatch>
  46226. VULKAN_HPP_INLINE Result Device::getGroupPresentCapabilitiesKHR( DeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities, Dispatch const &d) const
  46227. {
  46228. return static_cast<Result>( d.vkGetDeviceGroupPresentCapabilitiesKHR( m_device, reinterpret_cast<VkDeviceGroupPresentCapabilitiesKHR*>( pDeviceGroupPresentCapabilities ) ) );
  46229. }
  46230. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46231. template<typename Dispatch>
  46232. VULKAN_HPP_INLINE ResultValueType<DeviceGroupPresentCapabilitiesKHR>::type Device::getGroupPresentCapabilitiesKHR(Dispatch const &d ) const
  46233. {
  46234. DeviceGroupPresentCapabilitiesKHR deviceGroupPresentCapabilities;
  46235. Result result = static_cast<Result>( d.vkGetDeviceGroupPresentCapabilitiesKHR( m_device, reinterpret_cast<VkDeviceGroupPresentCapabilitiesKHR*>( &deviceGroupPresentCapabilities ) ) );
  46236. return createResultValue( result, deviceGroupPresentCapabilities, VULKAN_HPP_NAMESPACE_STRING"::Device::getGroupPresentCapabilitiesKHR" );
  46237. }
  46238. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46239. #ifdef VK_USE_PLATFORM_WIN32_KHR
  46240. template<typename Dispatch>
  46241. VULKAN_HPP_INLINE Result Device::getGroupSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, DeviceGroupPresentModeFlagsKHR* pModes, Dispatch const &d) const
  46242. {
  46243. return static_cast<Result>( d.vkGetDeviceGroupSurfacePresentModes2EXT( m_device, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( pSurfaceInfo ), reinterpret_cast<VkDeviceGroupPresentModeFlagsKHR*>( pModes ) ) );
  46244. }
  46245. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46246. template<typename Dispatch>
  46247. VULKAN_HPP_INLINE ResultValueType<DeviceGroupPresentModeFlagsKHR>::type Device::getGroupSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d ) const
  46248. {
  46249. DeviceGroupPresentModeFlagsKHR modes;
  46250. Result result = static_cast<Result>( d.vkGetDeviceGroupSurfacePresentModes2EXT( m_device, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), reinterpret_cast<VkDeviceGroupPresentModeFlagsKHR*>( &modes ) ) );
  46251. return createResultValue( result, modes, VULKAN_HPP_NAMESPACE_STRING"::Device::getGroupSurfacePresentModes2EXT" );
  46252. }
  46253. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46254. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  46255. template<typename Dispatch>
  46256. VULKAN_HPP_INLINE Result Device::getGroupSurfacePresentModesKHR( SurfaceKHR surface, DeviceGroupPresentModeFlagsKHR* pModes, Dispatch const &d) const
  46257. {
  46258. return static_cast<Result>( d.vkGetDeviceGroupSurfacePresentModesKHR( m_device, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkDeviceGroupPresentModeFlagsKHR*>( pModes ) ) );
  46259. }
  46260. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46261. template<typename Dispatch>
  46262. VULKAN_HPP_INLINE ResultValueType<DeviceGroupPresentModeFlagsKHR>::type Device::getGroupSurfacePresentModesKHR( SurfaceKHR surface, Dispatch const &d ) const
  46263. {
  46264. DeviceGroupPresentModeFlagsKHR modes;
  46265. Result result = static_cast<Result>( d.vkGetDeviceGroupSurfacePresentModesKHR( m_device, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkDeviceGroupPresentModeFlagsKHR*>( &modes ) ) );
  46266. return createResultValue( result, modes, VULKAN_HPP_NAMESPACE_STRING"::Device::getGroupSurfacePresentModesKHR" );
  46267. }
  46268. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46269. template<typename Dispatch>
  46270. VULKAN_HPP_INLINE void Device::getMemoryCommitment( DeviceMemory memory, DeviceSize* pCommittedMemoryInBytes, Dispatch const &d) const
  46271. {
  46272. d.vkGetDeviceMemoryCommitment( m_device, static_cast<VkDeviceMemory>( memory ), reinterpret_cast<VkDeviceSize*>( pCommittedMemoryInBytes ) );
  46273. }
  46274. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46275. template<typename Dispatch>
  46276. VULKAN_HPP_INLINE DeviceSize Device::getMemoryCommitment( DeviceMemory memory, Dispatch const &d ) const
  46277. {
  46278. DeviceSize committedMemoryInBytes;
  46279. d.vkGetDeviceMemoryCommitment( m_device, static_cast<VkDeviceMemory>( memory ), reinterpret_cast<VkDeviceSize*>( &committedMemoryInBytes ) );
  46280. return committedMemoryInBytes;
  46281. }
  46282. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46283. template<typename Dispatch>
  46284. VULKAN_HPP_INLINE PFN_vkVoidFunction Device::getProcAddr( const char* pName, Dispatch const &d) const
  46285. {
  46286. return d.vkGetDeviceProcAddr( m_device, pName );
  46287. }
  46288. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46289. template<typename Dispatch>
  46290. VULKAN_HPP_INLINE PFN_vkVoidFunction Device::getProcAddr( const std::string & name, Dispatch const &d ) const
  46291. {
  46292. return d.vkGetDeviceProcAddr( m_device, name.c_str() );
  46293. }
  46294. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46295. template<typename Dispatch>
  46296. VULKAN_HPP_INLINE void Device::getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex, Queue* pQueue, Dispatch const &d) const
  46297. {
  46298. d.vkGetDeviceQueue( m_device, queueFamilyIndex, queueIndex, reinterpret_cast<VkQueue*>( pQueue ) );
  46299. }
  46300. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46301. template<typename Dispatch>
  46302. VULKAN_HPP_INLINE Queue Device::getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex, Dispatch const &d ) const
  46303. {
  46304. Queue queue;
  46305. d.vkGetDeviceQueue( m_device, queueFamilyIndex, queueIndex, reinterpret_cast<VkQueue*>( &queue ) );
  46306. return queue;
  46307. }
  46308. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46309. template<typename Dispatch>
  46310. VULKAN_HPP_INLINE void Device::getQueue2( const DeviceQueueInfo2* pQueueInfo, Queue* pQueue, Dispatch const &d) const
  46311. {
  46312. d.vkGetDeviceQueue2( m_device, reinterpret_cast<const VkDeviceQueueInfo2*>( pQueueInfo ), reinterpret_cast<VkQueue*>( pQueue ) );
  46313. }
  46314. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46315. template<typename Dispatch>
  46316. VULKAN_HPP_INLINE Queue Device::getQueue2( const DeviceQueueInfo2 & queueInfo, Dispatch const &d ) const
  46317. {
  46318. Queue queue;
  46319. d.vkGetDeviceQueue2( m_device, reinterpret_cast<const VkDeviceQueueInfo2*>( &queueInfo ), reinterpret_cast<VkQueue*>( &queue ) );
  46320. return queue;
  46321. }
  46322. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46323. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46324. template<typename Dispatch>
  46325. VULKAN_HPP_INLINE Result Device::getEventStatus( Event event, Dispatch const &d) const
  46326. {
  46327. return static_cast<Result>( d.vkGetEventStatus( m_device, static_cast<VkEvent>( event ) ) );
  46328. }
  46329. #else
  46330. template<typename Dispatch>
  46331. VULKAN_HPP_INLINE Result Device::getEventStatus( Event event, Dispatch const &d ) const
  46332. {
  46333. Result result = static_cast<Result>( d.vkGetEventStatus( m_device, static_cast<VkEvent>( event ) ) );
  46334. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getEventStatus", { Result::eEventSet, Result::eEventReset } );
  46335. }
  46336. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46337. template<typename Dispatch>
  46338. VULKAN_HPP_INLINE Result Device::getFenceFdKHR( const FenceGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const &d) const
  46339. {
  46340. return static_cast<Result>( d.vkGetFenceFdKHR( m_device, reinterpret_cast<const VkFenceGetFdInfoKHR*>( pGetFdInfo ), pFd ) );
  46341. }
  46342. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46343. template<typename Dispatch>
  46344. VULKAN_HPP_INLINE ResultValueType<int>::type Device::getFenceFdKHR( const FenceGetFdInfoKHR & getFdInfo, Dispatch const &d ) const
  46345. {
  46346. int fd;
  46347. Result result = static_cast<Result>( d.vkGetFenceFdKHR( m_device, reinterpret_cast<const VkFenceGetFdInfoKHR*>( &getFdInfo ), &fd ) );
  46348. return createResultValue( result, fd, VULKAN_HPP_NAMESPACE_STRING"::Device::getFenceFdKHR" );
  46349. }
  46350. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46351. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46352. template<typename Dispatch>
  46353. VULKAN_HPP_INLINE Result Device::getFenceStatus( Fence fence, Dispatch const &d) const
  46354. {
  46355. return static_cast<Result>( d.vkGetFenceStatus( m_device, static_cast<VkFence>( fence ) ) );
  46356. }
  46357. #else
  46358. template<typename Dispatch>
  46359. VULKAN_HPP_INLINE Result Device::getFenceStatus( Fence fence, Dispatch const &d ) const
  46360. {
  46361. Result result = static_cast<Result>( d.vkGetFenceStatus( m_device, static_cast<VkFence>( fence ) ) );
  46362. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getFenceStatus", { Result::eSuccess, Result::eNotReady } );
  46363. }
  46364. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46365. #ifdef VK_USE_PLATFORM_WIN32_KHR
  46366. template<typename Dispatch>
  46367. VULKAN_HPP_INLINE Result Device::getFenceWin32HandleKHR( const FenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const &d) const
  46368. {
  46369. return static_cast<Result>( d.vkGetFenceWin32HandleKHR( m_device, reinterpret_cast<const VkFenceGetWin32HandleInfoKHR*>( pGetWin32HandleInfo ), pHandle ) );
  46370. }
  46371. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46372. template<typename Dispatch>
  46373. VULKAN_HPP_INLINE ResultValueType<HANDLE>::type Device::getFenceWin32HandleKHR( const FenceGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const &d ) const
  46374. {
  46375. HANDLE handle;
  46376. Result result = static_cast<Result>( d.vkGetFenceWin32HandleKHR( m_device, reinterpret_cast<const VkFenceGetWin32HandleInfoKHR*>( &getWin32HandleInfo ), &handle ) );
  46377. return createResultValue( result, handle, VULKAN_HPP_NAMESPACE_STRING"::Device::getFenceWin32HandleKHR" );
  46378. }
  46379. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46380. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  46381. template<typename Dispatch>
  46382. VULKAN_HPP_INLINE Result Device::getImageDrmFormatModifierPropertiesEXT( Image image, ImageDrmFormatModifierPropertiesEXT* pProperties, Dispatch const &d) const
  46383. {
  46384. return static_cast<Result>( d.vkGetImageDrmFormatModifierPropertiesEXT( m_device, static_cast<VkImage>( image ), reinterpret_cast<VkImageDrmFormatModifierPropertiesEXT*>( pProperties ) ) );
  46385. }
  46386. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46387. template<typename Dispatch>
  46388. VULKAN_HPP_INLINE ResultValueType<ImageDrmFormatModifierPropertiesEXT>::type Device::getImageDrmFormatModifierPropertiesEXT( Image image, Dispatch const &d ) const
  46389. {
  46390. ImageDrmFormatModifierPropertiesEXT properties;
  46391. Result result = static_cast<Result>( d.vkGetImageDrmFormatModifierPropertiesEXT( m_device, static_cast<VkImage>( image ), reinterpret_cast<VkImageDrmFormatModifierPropertiesEXT*>( &properties ) ) );
  46392. return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::Device::getImageDrmFormatModifierPropertiesEXT" );
  46393. }
  46394. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46395. template<typename Dispatch>
  46396. VULKAN_HPP_INLINE void Device::getImageMemoryRequirements( Image image, MemoryRequirements* pMemoryRequirements, Dispatch const &d) const
  46397. {
  46398. d.vkGetImageMemoryRequirements( m_device, static_cast<VkImage>( image ), reinterpret_cast<VkMemoryRequirements*>( pMemoryRequirements ) );
  46399. }
  46400. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46401. template<typename Dispatch>
  46402. VULKAN_HPP_INLINE MemoryRequirements Device::getImageMemoryRequirements( Image image, Dispatch const &d ) const
  46403. {
  46404. MemoryRequirements memoryRequirements;
  46405. d.vkGetImageMemoryRequirements( m_device, static_cast<VkImage>( image ), reinterpret_cast<VkMemoryRequirements*>( &memoryRequirements ) );
  46406. return memoryRequirements;
  46407. }
  46408. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46409. template<typename Dispatch>
  46410. VULKAN_HPP_INLINE void Device::getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2* pInfo, MemoryRequirements2* pMemoryRequirements, Dispatch const &d) const
  46411. {
  46412. d.vkGetImageMemoryRequirements2( m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2*>( pInfo ), reinterpret_cast<VkMemoryRequirements2*>( pMemoryRequirements ) );
  46413. }
  46414. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46415. template<typename Dispatch>
  46416. VULKAN_HPP_INLINE MemoryRequirements2 Device::getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d ) const
  46417. {
  46418. MemoryRequirements2 memoryRequirements;
  46419. d.vkGetImageMemoryRequirements2( m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2*>( &info ), reinterpret_cast<VkMemoryRequirements2*>( &memoryRequirements ) );
  46420. return memoryRequirements;
  46421. }
  46422. template<typename X, typename Y, typename ...Z, typename Dispatch>
  46423. VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d ) const
  46424. {
  46425. StructureChain<X, Y, Z...> structureChain;
  46426. MemoryRequirements2& memoryRequirements = structureChain.template get<MemoryRequirements2>();
  46427. d.vkGetImageMemoryRequirements2( m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2*>( &info ), reinterpret_cast<VkMemoryRequirements2*>( &memoryRequirements ) );
  46428. return structureChain;
  46429. }
  46430. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46431. template<typename Dispatch>
  46432. VULKAN_HPP_INLINE void Device::getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2* pInfo, MemoryRequirements2* pMemoryRequirements, Dispatch const &d) const
  46433. {
  46434. d.vkGetImageMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2*>( pInfo ), reinterpret_cast<VkMemoryRequirements2*>( pMemoryRequirements ) );
  46435. }
  46436. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46437. template<typename Dispatch>
  46438. VULKAN_HPP_INLINE MemoryRequirements2 Device::getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d ) const
  46439. {
  46440. MemoryRequirements2 memoryRequirements;
  46441. d.vkGetImageMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2*>( &info ), reinterpret_cast<VkMemoryRequirements2*>( &memoryRequirements ) );
  46442. return memoryRequirements;
  46443. }
  46444. template<typename X, typename Y, typename ...Z, typename Dispatch>
  46445. VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info, Dispatch const &d ) const
  46446. {
  46447. StructureChain<X, Y, Z...> structureChain;
  46448. MemoryRequirements2& memoryRequirements = structureChain.template get<MemoryRequirements2>();
  46449. d.vkGetImageMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2*>( &info ), reinterpret_cast<VkMemoryRequirements2*>( &memoryRequirements ) );
  46450. return structureChain;
  46451. }
  46452. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46453. template<typename Dispatch>
  46454. VULKAN_HPP_INLINE void Device::getImageSparseMemoryRequirements( Image image, uint32_t* pSparseMemoryRequirementCount, SparseImageMemoryRequirements* pSparseMemoryRequirements, Dispatch const &d) const
  46455. {
  46456. d.vkGetImageSparseMemoryRequirements( m_device, static_cast<VkImage>( image ), pSparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements*>( pSparseMemoryRequirements ) );
  46457. }
  46458. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46459. template<typename Allocator, typename Dispatch>
  46460. VULKAN_HPP_INLINE std::vector<SparseImageMemoryRequirements,Allocator> Device::getImageSparseMemoryRequirements( Image image, Dispatch const &d ) const
  46461. {
  46462. std::vector<SparseImageMemoryRequirements,Allocator> sparseMemoryRequirements;
  46463. uint32_t sparseMemoryRequirementCount;
  46464. d.vkGetImageSparseMemoryRequirements( m_device, static_cast<VkImage>( image ), &sparseMemoryRequirementCount, nullptr );
  46465. sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
  46466. d.vkGetImageSparseMemoryRequirements( m_device, static_cast<VkImage>( image ), &sparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements*>( sparseMemoryRequirements.data() ) );
  46467. return sparseMemoryRequirements;
  46468. }
  46469. template<typename Allocator, typename Dispatch>
  46470. VULKAN_HPP_INLINE std::vector<SparseImageMemoryRequirements,Allocator> Device::getImageSparseMemoryRequirements( Image image, Allocator const& vectorAllocator, Dispatch const &d ) const
  46471. {
  46472. std::vector<SparseImageMemoryRequirements,Allocator> sparseMemoryRequirements( vectorAllocator );
  46473. uint32_t sparseMemoryRequirementCount;
  46474. d.vkGetImageSparseMemoryRequirements( m_device, static_cast<VkImage>( image ), &sparseMemoryRequirementCount, nullptr );
  46475. sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
  46476. d.vkGetImageSparseMemoryRequirements( m_device, static_cast<VkImage>( image ), &sparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements*>( sparseMemoryRequirements.data() ) );
  46477. return sparseMemoryRequirements;
  46478. }
  46479. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46480. template<typename Dispatch>
  46481. VULKAN_HPP_INLINE void Device::getImageSparseMemoryRequirements2( const ImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, SparseImageMemoryRequirements2* pSparseMemoryRequirements, Dispatch const &d) const
  46482. {
  46483. d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2*>( pInfo ), pSparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements2*>( pSparseMemoryRequirements ) );
  46484. }
  46485. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46486. template<typename Allocator, typename Dispatch>
  46487. VULKAN_HPP_INLINE std::vector<SparseImageMemoryRequirements2,Allocator> Device::getImageSparseMemoryRequirements2( const ImageSparseMemoryRequirementsInfo2 & info, Dispatch const &d ) const
  46488. {
  46489. std::vector<SparseImageMemoryRequirements2,Allocator> sparseMemoryRequirements;
  46490. uint32_t sparseMemoryRequirementCount;
  46491. d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2*>( &info ), &sparseMemoryRequirementCount, nullptr );
  46492. sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
  46493. d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2*>( &info ), &sparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements2*>( sparseMemoryRequirements.data() ) );
  46494. return sparseMemoryRequirements;
  46495. }
  46496. template<typename Allocator, typename Dispatch>
  46497. VULKAN_HPP_INLINE std::vector<SparseImageMemoryRequirements2,Allocator> Device::getImageSparseMemoryRequirements2( const ImageSparseMemoryRequirementsInfo2 & info, Allocator const& vectorAllocator, Dispatch const &d ) const
  46498. {
  46499. std::vector<SparseImageMemoryRequirements2,Allocator> sparseMemoryRequirements( vectorAllocator );
  46500. uint32_t sparseMemoryRequirementCount;
  46501. d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2*>( &info ), &sparseMemoryRequirementCount, nullptr );
  46502. sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
  46503. d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2*>( &info ), &sparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements2*>( sparseMemoryRequirements.data() ) );
  46504. return sparseMemoryRequirements;
  46505. }
  46506. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46507. template<typename Dispatch>
  46508. VULKAN_HPP_INLINE void Device::getImageSparseMemoryRequirements2KHR( const ImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, SparseImageMemoryRequirements2* pSparseMemoryRequirements, Dispatch const &d) const
  46509. {
  46510. d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2*>( pInfo ), pSparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements2*>( pSparseMemoryRequirements ) );
  46511. }
  46512. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46513. template<typename Allocator, typename Dispatch>
  46514. VULKAN_HPP_INLINE std::vector<SparseImageMemoryRequirements2,Allocator> Device::getImageSparseMemoryRequirements2KHR( const ImageSparseMemoryRequirementsInfo2 & info, Dispatch const &d ) const
  46515. {
  46516. std::vector<SparseImageMemoryRequirements2,Allocator> sparseMemoryRequirements;
  46517. uint32_t sparseMemoryRequirementCount;
  46518. d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2*>( &info ), &sparseMemoryRequirementCount, nullptr );
  46519. sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
  46520. d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2*>( &info ), &sparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements2*>( sparseMemoryRequirements.data() ) );
  46521. return sparseMemoryRequirements;
  46522. }
  46523. template<typename Allocator, typename Dispatch>
  46524. VULKAN_HPP_INLINE std::vector<SparseImageMemoryRequirements2,Allocator> Device::getImageSparseMemoryRequirements2KHR( const ImageSparseMemoryRequirementsInfo2 & info, Allocator const& vectorAllocator, Dispatch const &d ) const
  46525. {
  46526. std::vector<SparseImageMemoryRequirements2,Allocator> sparseMemoryRequirements( vectorAllocator );
  46527. uint32_t sparseMemoryRequirementCount;
  46528. d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2*>( &info ), &sparseMemoryRequirementCount, nullptr );
  46529. sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
  46530. d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2*>( &info ), &sparseMemoryRequirementCount, reinterpret_cast<VkSparseImageMemoryRequirements2*>( sparseMemoryRequirements.data() ) );
  46531. return sparseMemoryRequirements;
  46532. }
  46533. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46534. template<typename Dispatch>
  46535. VULKAN_HPP_INLINE void Device::getImageSubresourceLayout( Image image, const ImageSubresource* pSubresource, SubresourceLayout* pLayout, Dispatch const &d) const
  46536. {
  46537. d.vkGetImageSubresourceLayout( m_device, static_cast<VkImage>( image ), reinterpret_cast<const VkImageSubresource*>( pSubresource ), reinterpret_cast<VkSubresourceLayout*>( pLayout ) );
  46538. }
  46539. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46540. template<typename Dispatch>
  46541. VULKAN_HPP_INLINE SubresourceLayout Device::getImageSubresourceLayout( Image image, const ImageSubresource & subresource, Dispatch const &d ) const
  46542. {
  46543. SubresourceLayout layout;
  46544. d.vkGetImageSubresourceLayout( m_device, static_cast<VkImage>( image ), reinterpret_cast<const VkImageSubresource*>( &subresource ), reinterpret_cast<VkSubresourceLayout*>( &layout ) );
  46545. return layout;
  46546. }
  46547. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46548. template<typename Dispatch>
  46549. VULKAN_HPP_INLINE uint32_t Device::getImageViewHandleNVX( const ImageViewHandleInfoNVX* pInfo, Dispatch const &d) const
  46550. {
  46551. return d.vkGetImageViewHandleNVX( m_device, reinterpret_cast<const VkImageViewHandleInfoNVX*>( pInfo ) );
  46552. }
  46553. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46554. template<typename Dispatch>
  46555. VULKAN_HPP_INLINE uint32_t Device::getImageViewHandleNVX( const ImageViewHandleInfoNVX & info, Dispatch const &d ) const
  46556. {
  46557. return d.vkGetImageViewHandleNVX( m_device, reinterpret_cast<const VkImageViewHandleInfoNVX*>( &info ) );
  46558. }
  46559. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46560. #ifdef VK_USE_PLATFORM_ANDROID_KHR
  46561. template<typename Dispatch>
  46562. VULKAN_HPP_INLINE Result Device::getMemoryAndroidHardwareBufferANDROID( const MemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct AHardwareBuffer** pBuffer, Dispatch const &d) const
  46563. {
  46564. return static_cast<Result>( d.vkGetMemoryAndroidHardwareBufferANDROID( m_device, reinterpret_cast<const VkMemoryGetAndroidHardwareBufferInfoANDROID*>( pInfo ), pBuffer ) );
  46565. }
  46566. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46567. template<typename Dispatch>
  46568. VULKAN_HPP_INLINE ResultValueType<struct AHardwareBuffer*>::type Device::getMemoryAndroidHardwareBufferANDROID( const MemoryGetAndroidHardwareBufferInfoANDROID & info, Dispatch const &d ) const
  46569. {
  46570. struct AHardwareBuffer* buffer;
  46571. Result result = static_cast<Result>( d.vkGetMemoryAndroidHardwareBufferANDROID( m_device, reinterpret_cast<const VkMemoryGetAndroidHardwareBufferInfoANDROID*>( &info ), &buffer ) );
  46572. return createResultValue( result, buffer, VULKAN_HPP_NAMESPACE_STRING"::Device::getMemoryAndroidHardwareBufferANDROID" );
  46573. }
  46574. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46575. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  46576. template<typename Dispatch>
  46577. VULKAN_HPP_INLINE Result Device::getMemoryFdKHR( const MemoryGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const &d) const
  46578. {
  46579. return static_cast<Result>( d.vkGetMemoryFdKHR( m_device, reinterpret_cast<const VkMemoryGetFdInfoKHR*>( pGetFdInfo ), pFd ) );
  46580. }
  46581. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46582. template<typename Dispatch>
  46583. VULKAN_HPP_INLINE ResultValueType<int>::type Device::getMemoryFdKHR( const MemoryGetFdInfoKHR & getFdInfo, Dispatch const &d ) const
  46584. {
  46585. int fd;
  46586. Result result = static_cast<Result>( d.vkGetMemoryFdKHR( m_device, reinterpret_cast<const VkMemoryGetFdInfoKHR*>( &getFdInfo ), &fd ) );
  46587. return createResultValue( result, fd, VULKAN_HPP_NAMESPACE_STRING"::Device::getMemoryFdKHR" );
  46588. }
  46589. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46590. template<typename Dispatch>
  46591. VULKAN_HPP_INLINE Result Device::getMemoryFdPropertiesKHR( ExternalMemoryHandleTypeFlagBits handleType, int fd, MemoryFdPropertiesKHR* pMemoryFdProperties, Dispatch const &d) const
  46592. {
  46593. return static_cast<Result>( d.vkGetMemoryFdPropertiesKHR( m_device, static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), fd, reinterpret_cast<VkMemoryFdPropertiesKHR*>( pMemoryFdProperties ) ) );
  46594. }
  46595. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46596. template<typename Dispatch>
  46597. VULKAN_HPP_INLINE ResultValueType<MemoryFdPropertiesKHR>::type Device::getMemoryFdPropertiesKHR( ExternalMemoryHandleTypeFlagBits handleType, int fd, Dispatch const &d ) const
  46598. {
  46599. MemoryFdPropertiesKHR memoryFdProperties;
  46600. Result result = static_cast<Result>( d.vkGetMemoryFdPropertiesKHR( m_device, static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), fd, reinterpret_cast<VkMemoryFdPropertiesKHR*>( &memoryFdProperties ) ) );
  46601. return createResultValue( result, memoryFdProperties, VULKAN_HPP_NAMESPACE_STRING"::Device::getMemoryFdPropertiesKHR" );
  46602. }
  46603. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46604. template<typename Dispatch>
  46605. VULKAN_HPP_INLINE Result Device::getMemoryHostPointerPropertiesEXT( ExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, MemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties, Dispatch const &d) const
  46606. {
  46607. return static_cast<Result>( d.vkGetMemoryHostPointerPropertiesEXT( m_device, static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), pHostPointer, reinterpret_cast<VkMemoryHostPointerPropertiesEXT*>( pMemoryHostPointerProperties ) ) );
  46608. }
  46609. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46610. template<typename Dispatch>
  46611. VULKAN_HPP_INLINE ResultValueType<MemoryHostPointerPropertiesEXT>::type Device::getMemoryHostPointerPropertiesEXT( ExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, Dispatch const &d ) const
  46612. {
  46613. MemoryHostPointerPropertiesEXT memoryHostPointerProperties;
  46614. Result result = static_cast<Result>( d.vkGetMemoryHostPointerPropertiesEXT( m_device, static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), pHostPointer, reinterpret_cast<VkMemoryHostPointerPropertiesEXT*>( &memoryHostPointerProperties ) ) );
  46615. return createResultValue( result, memoryHostPointerProperties, VULKAN_HPP_NAMESPACE_STRING"::Device::getMemoryHostPointerPropertiesEXT" );
  46616. }
  46617. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46618. #ifdef VK_USE_PLATFORM_WIN32_KHR
  46619. template<typename Dispatch>
  46620. VULKAN_HPP_INLINE Result Device::getMemoryWin32HandleKHR( const MemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const &d) const
  46621. {
  46622. return static_cast<Result>( d.vkGetMemoryWin32HandleKHR( m_device, reinterpret_cast<const VkMemoryGetWin32HandleInfoKHR*>( pGetWin32HandleInfo ), pHandle ) );
  46623. }
  46624. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46625. template<typename Dispatch>
  46626. VULKAN_HPP_INLINE ResultValueType<HANDLE>::type Device::getMemoryWin32HandleKHR( const MemoryGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const &d ) const
  46627. {
  46628. HANDLE handle;
  46629. Result result = static_cast<Result>( d.vkGetMemoryWin32HandleKHR( m_device, reinterpret_cast<const VkMemoryGetWin32HandleInfoKHR*>( &getWin32HandleInfo ), &handle ) );
  46630. return createResultValue( result, handle, VULKAN_HPP_NAMESPACE_STRING"::Device::getMemoryWin32HandleKHR" );
  46631. }
  46632. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46633. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  46634. #ifdef VK_USE_PLATFORM_WIN32_KHR
  46635. template<typename Dispatch>
  46636. VULKAN_HPP_INLINE Result Device::getMemoryWin32HandleNV( DeviceMemory memory, ExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle, Dispatch const &d) const
  46637. {
  46638. return static_cast<Result>( d.vkGetMemoryWin32HandleNV( m_device, static_cast<VkDeviceMemory>( memory ), static_cast<VkExternalMemoryHandleTypeFlagsNV>( handleType ), pHandle ) );
  46639. }
  46640. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46641. template<typename Dispatch>
  46642. VULKAN_HPP_INLINE ResultValueType<HANDLE>::type Device::getMemoryWin32HandleNV( DeviceMemory memory, ExternalMemoryHandleTypeFlagsNV handleType, Dispatch const &d ) const
  46643. {
  46644. HANDLE handle;
  46645. Result result = static_cast<Result>( d.vkGetMemoryWin32HandleNV( m_device, static_cast<VkDeviceMemory>( memory ), static_cast<VkExternalMemoryHandleTypeFlagsNV>( handleType ), &handle ) );
  46646. return createResultValue( result, handle, VULKAN_HPP_NAMESPACE_STRING"::Device::getMemoryWin32HandleNV" );
  46647. }
  46648. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46649. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  46650. #ifdef VK_USE_PLATFORM_WIN32_KHR
  46651. template<typename Dispatch>
  46652. VULKAN_HPP_INLINE Result Device::getMemoryWin32HandlePropertiesKHR( ExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, MemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties, Dispatch const &d) const
  46653. {
  46654. return static_cast<Result>( d.vkGetMemoryWin32HandlePropertiesKHR( m_device, static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), handle, reinterpret_cast<VkMemoryWin32HandlePropertiesKHR*>( pMemoryWin32HandleProperties ) ) );
  46655. }
  46656. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46657. template<typename Dispatch>
  46658. VULKAN_HPP_INLINE ResultValueType<MemoryWin32HandlePropertiesKHR>::type Device::getMemoryWin32HandlePropertiesKHR( ExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, Dispatch const &d ) const
  46659. {
  46660. MemoryWin32HandlePropertiesKHR memoryWin32HandleProperties;
  46661. Result result = static_cast<Result>( d.vkGetMemoryWin32HandlePropertiesKHR( m_device, static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), handle, reinterpret_cast<VkMemoryWin32HandlePropertiesKHR*>( &memoryWin32HandleProperties ) ) );
  46662. return createResultValue( result, memoryWin32HandleProperties, VULKAN_HPP_NAMESPACE_STRING"::Device::getMemoryWin32HandlePropertiesKHR" );
  46663. }
  46664. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46665. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  46666. template<typename Dispatch>
  46667. VULKAN_HPP_INLINE Result Device::getPastPresentationTimingGOOGLE( SwapchainKHR swapchain, uint32_t* pPresentationTimingCount, PastPresentationTimingGOOGLE* pPresentationTimings, Dispatch const &d) const
  46668. {
  46669. return static_cast<Result>( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), pPresentationTimingCount, reinterpret_cast<VkPastPresentationTimingGOOGLE*>( pPresentationTimings ) ) );
  46670. }
  46671. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46672. template<typename Allocator, typename Dispatch>
  46673. VULKAN_HPP_INLINE typename ResultValueType<std::vector<PastPresentationTimingGOOGLE,Allocator>>::type Device::getPastPresentationTimingGOOGLE( SwapchainKHR swapchain, Dispatch const &d ) const
  46674. {
  46675. std::vector<PastPresentationTimingGOOGLE,Allocator> presentationTimings;
  46676. uint32_t presentationTimingCount;
  46677. Result result;
  46678. do
  46679. {
  46680. result = static_cast<Result>( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), &presentationTimingCount, nullptr ) );
  46681. if ( ( result == Result::eSuccess ) && presentationTimingCount )
  46682. {
  46683. presentationTimings.resize( presentationTimingCount );
  46684. result = static_cast<Result>( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), &presentationTimingCount, reinterpret_cast<VkPastPresentationTimingGOOGLE*>( presentationTimings.data() ) ) );
  46685. }
  46686. } while ( result == Result::eIncomplete );
  46687. if ( result == Result::eSuccess )
  46688. {
  46689. VULKAN_HPP_ASSERT( presentationTimingCount <= presentationTimings.size() );
  46690. presentationTimings.resize( presentationTimingCount );
  46691. }
  46692. return createResultValue( result, presentationTimings, VULKAN_HPP_NAMESPACE_STRING"::Device::getPastPresentationTimingGOOGLE" );
  46693. }
  46694. template<typename Allocator, typename Dispatch>
  46695. VULKAN_HPP_INLINE typename ResultValueType<std::vector<PastPresentationTimingGOOGLE,Allocator>>::type Device::getPastPresentationTimingGOOGLE( SwapchainKHR swapchain, Allocator const& vectorAllocator, Dispatch const &d ) const
  46696. {
  46697. std::vector<PastPresentationTimingGOOGLE,Allocator> presentationTimings( vectorAllocator );
  46698. uint32_t presentationTimingCount;
  46699. Result result;
  46700. do
  46701. {
  46702. result = static_cast<Result>( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), &presentationTimingCount, nullptr ) );
  46703. if ( ( result == Result::eSuccess ) && presentationTimingCount )
  46704. {
  46705. presentationTimings.resize( presentationTimingCount );
  46706. result = static_cast<Result>( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), &presentationTimingCount, reinterpret_cast<VkPastPresentationTimingGOOGLE*>( presentationTimings.data() ) ) );
  46707. }
  46708. } while ( result == Result::eIncomplete );
  46709. if ( result == Result::eSuccess )
  46710. {
  46711. VULKAN_HPP_ASSERT( presentationTimingCount <= presentationTimings.size() );
  46712. presentationTimings.resize( presentationTimingCount );
  46713. }
  46714. return createResultValue( result, presentationTimings, VULKAN_HPP_NAMESPACE_STRING"::Device::getPastPresentationTimingGOOGLE" );
  46715. }
  46716. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46717. template<typename Dispatch>
  46718. VULKAN_HPP_INLINE Result Device::getPerformanceParameterINTEL( PerformanceParameterTypeINTEL parameter, PerformanceValueINTEL* pValue, Dispatch const &d) const
  46719. {
  46720. return static_cast<Result>( d.vkGetPerformanceParameterINTEL( m_device, static_cast<VkPerformanceParameterTypeINTEL>( parameter ), reinterpret_cast<VkPerformanceValueINTEL*>( pValue ) ) );
  46721. }
  46722. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46723. template<typename Dispatch>
  46724. VULKAN_HPP_INLINE ResultValueType<PerformanceValueINTEL>::type Device::getPerformanceParameterINTEL( PerformanceParameterTypeINTEL parameter, Dispatch const &d ) const
  46725. {
  46726. PerformanceValueINTEL value;
  46727. Result result = static_cast<Result>( d.vkGetPerformanceParameterINTEL( m_device, static_cast<VkPerformanceParameterTypeINTEL>( parameter ), reinterpret_cast<VkPerformanceValueINTEL*>( &value ) ) );
  46728. return createResultValue( result, value, VULKAN_HPP_NAMESPACE_STRING"::Device::getPerformanceParameterINTEL" );
  46729. }
  46730. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46731. template<typename Dispatch>
  46732. VULKAN_HPP_INLINE Result Device::getPipelineCacheData( PipelineCache pipelineCache, size_t* pDataSize, void* pData, Dispatch const &d) const
  46733. {
  46734. return static_cast<Result>( d.vkGetPipelineCacheData( m_device, static_cast<VkPipelineCache>( pipelineCache ), pDataSize, pData ) );
  46735. }
  46736. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46737. template<typename Allocator, typename Dispatch>
  46738. VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t,Allocator>>::type Device::getPipelineCacheData( PipelineCache pipelineCache, Dispatch const &d ) const
  46739. {
  46740. std::vector<uint8_t,Allocator> data;
  46741. size_t dataSize;
  46742. Result result;
  46743. do
  46744. {
  46745. result = static_cast<Result>( d.vkGetPipelineCacheData( m_device, static_cast<VkPipelineCache>( pipelineCache ), &dataSize, nullptr ) );
  46746. if ( ( result == Result::eSuccess ) && dataSize )
  46747. {
  46748. data.resize( dataSize );
  46749. result = static_cast<Result>( d.vkGetPipelineCacheData( m_device, static_cast<VkPipelineCache>( pipelineCache ), &dataSize, reinterpret_cast<void*>( data.data() ) ) );
  46750. }
  46751. } while ( result == Result::eIncomplete );
  46752. if ( result == Result::eSuccess )
  46753. {
  46754. VULKAN_HPP_ASSERT( dataSize <= data.size() );
  46755. data.resize( dataSize );
  46756. }
  46757. return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineCacheData" );
  46758. }
  46759. template<typename Allocator, typename Dispatch>
  46760. VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t,Allocator>>::type Device::getPipelineCacheData( PipelineCache pipelineCache, Allocator const& vectorAllocator, Dispatch const &d ) const
  46761. {
  46762. std::vector<uint8_t,Allocator> data( vectorAllocator );
  46763. size_t dataSize;
  46764. Result result;
  46765. do
  46766. {
  46767. result = static_cast<Result>( d.vkGetPipelineCacheData( m_device, static_cast<VkPipelineCache>( pipelineCache ), &dataSize, nullptr ) );
  46768. if ( ( result == Result::eSuccess ) && dataSize )
  46769. {
  46770. data.resize( dataSize );
  46771. result = static_cast<Result>( d.vkGetPipelineCacheData( m_device, static_cast<VkPipelineCache>( pipelineCache ), &dataSize, reinterpret_cast<void*>( data.data() ) ) );
  46772. }
  46773. } while ( result == Result::eIncomplete );
  46774. if ( result == Result::eSuccess )
  46775. {
  46776. VULKAN_HPP_ASSERT( dataSize <= data.size() );
  46777. data.resize( dataSize );
  46778. }
  46779. return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineCacheData" );
  46780. }
  46781. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46782. template<typename Dispatch>
  46783. VULKAN_HPP_INLINE Result Device::getQueryPoolResults( QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, DeviceSize stride, QueryResultFlags flags, Dispatch const &d) const
  46784. {
  46785. return static_cast<Result>( d.vkGetQueryPoolResults( m_device, static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount, dataSize, pData, static_cast<VkDeviceSize>( stride ), static_cast<VkQueryResultFlags>( flags ) ) );
  46786. }
  46787. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46788. template<typename T, typename Dispatch>
  46789. VULKAN_HPP_INLINE Result Device::getQueryPoolResults( QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, ArrayProxy<T> data, DeviceSize stride, QueryResultFlags flags, Dispatch const &d ) const
  46790. {
  46791. Result result = static_cast<Result>( d.vkGetQueryPoolResults( m_device, static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount, data.size() * sizeof( T ) , reinterpret_cast<void*>( data.data() ), static_cast<VkDeviceSize>( stride ), static_cast<VkQueryResultFlags>( flags ) ) );
  46792. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getQueryPoolResults", { Result::eSuccess, Result::eNotReady } );
  46793. }
  46794. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46795. template<typename Dispatch>
  46796. VULKAN_HPP_INLINE Result Device::getRayTracingShaderGroupHandlesNV( Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData, Dispatch const &d) const
  46797. {
  46798. return static_cast<Result>( d.vkGetRayTracingShaderGroupHandlesNV( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, dataSize, pData ) );
  46799. }
  46800. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46801. template<typename T, typename Dispatch>
  46802. VULKAN_HPP_INLINE ResultValueType<void>::type Device::getRayTracingShaderGroupHandlesNV( Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, ArrayProxy<T> data, Dispatch const &d ) const
  46803. {
  46804. Result result = static_cast<Result>( d.vkGetRayTracingShaderGroupHandlesNV( m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, data.size() * sizeof( T ) , reinterpret_cast<void*>( data.data() ) ) );
  46805. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getRayTracingShaderGroupHandlesNV" );
  46806. }
  46807. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46808. template<typename Dispatch>
  46809. VULKAN_HPP_INLINE Result Device::getRefreshCycleDurationGOOGLE( SwapchainKHR swapchain, RefreshCycleDurationGOOGLE* pDisplayTimingProperties, Dispatch const &d) const
  46810. {
  46811. return static_cast<Result>( d.vkGetRefreshCycleDurationGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<VkRefreshCycleDurationGOOGLE*>( pDisplayTimingProperties ) ) );
  46812. }
  46813. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46814. template<typename Dispatch>
  46815. VULKAN_HPP_INLINE ResultValueType<RefreshCycleDurationGOOGLE>::type Device::getRefreshCycleDurationGOOGLE( SwapchainKHR swapchain, Dispatch const &d ) const
  46816. {
  46817. RefreshCycleDurationGOOGLE displayTimingProperties;
  46818. Result result = static_cast<Result>( d.vkGetRefreshCycleDurationGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<VkRefreshCycleDurationGOOGLE*>( &displayTimingProperties ) ) );
  46819. return createResultValue( result, displayTimingProperties, VULKAN_HPP_NAMESPACE_STRING"::Device::getRefreshCycleDurationGOOGLE" );
  46820. }
  46821. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46822. template<typename Dispatch>
  46823. VULKAN_HPP_INLINE void Device::getRenderAreaGranularity( RenderPass renderPass, Extent2D* pGranularity, Dispatch const &d) const
  46824. {
  46825. d.vkGetRenderAreaGranularity( m_device, static_cast<VkRenderPass>( renderPass ), reinterpret_cast<VkExtent2D*>( pGranularity ) );
  46826. }
  46827. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46828. template<typename Dispatch>
  46829. VULKAN_HPP_INLINE Extent2D Device::getRenderAreaGranularity( RenderPass renderPass, Dispatch const &d ) const
  46830. {
  46831. Extent2D granularity;
  46832. d.vkGetRenderAreaGranularity( m_device, static_cast<VkRenderPass>( renderPass ), reinterpret_cast<VkExtent2D*>( &granularity ) );
  46833. return granularity;
  46834. }
  46835. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46836. template<typename Dispatch>
  46837. VULKAN_HPP_INLINE Result Device::getSemaphoreFdKHR( const SemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const &d) const
  46838. {
  46839. return static_cast<Result>( d.vkGetSemaphoreFdKHR( m_device, reinterpret_cast<const VkSemaphoreGetFdInfoKHR*>( pGetFdInfo ), pFd ) );
  46840. }
  46841. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46842. template<typename Dispatch>
  46843. VULKAN_HPP_INLINE ResultValueType<int>::type Device::getSemaphoreFdKHR( const SemaphoreGetFdInfoKHR & getFdInfo, Dispatch const &d ) const
  46844. {
  46845. int fd;
  46846. Result result = static_cast<Result>( d.vkGetSemaphoreFdKHR( m_device, reinterpret_cast<const VkSemaphoreGetFdInfoKHR*>( &getFdInfo ), &fd ) );
  46847. return createResultValue( result, fd, VULKAN_HPP_NAMESPACE_STRING"::Device::getSemaphoreFdKHR" );
  46848. }
  46849. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46850. #ifdef VK_USE_PLATFORM_WIN32_KHR
  46851. template<typename Dispatch>
  46852. VULKAN_HPP_INLINE Result Device::getSemaphoreWin32HandleKHR( const SemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const &d) const
  46853. {
  46854. return static_cast<Result>( d.vkGetSemaphoreWin32HandleKHR( m_device, reinterpret_cast<const VkSemaphoreGetWin32HandleInfoKHR*>( pGetWin32HandleInfo ), pHandle ) );
  46855. }
  46856. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46857. template<typename Dispatch>
  46858. VULKAN_HPP_INLINE ResultValueType<HANDLE>::type Device::getSemaphoreWin32HandleKHR( const SemaphoreGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const &d ) const
  46859. {
  46860. HANDLE handle;
  46861. Result result = static_cast<Result>( d.vkGetSemaphoreWin32HandleKHR( m_device, reinterpret_cast<const VkSemaphoreGetWin32HandleInfoKHR*>( &getWin32HandleInfo ), &handle ) );
  46862. return createResultValue( result, handle, VULKAN_HPP_NAMESPACE_STRING"::Device::getSemaphoreWin32HandleKHR" );
  46863. }
  46864. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46865. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  46866. template<typename Dispatch>
  46867. VULKAN_HPP_INLINE Result Device::getShaderInfoAMD( Pipeline pipeline, ShaderStageFlagBits shaderStage, ShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo, Dispatch const &d) const
  46868. {
  46869. return static_cast<Result>( d.vkGetShaderInfoAMD( m_device, static_cast<VkPipeline>( pipeline ), static_cast<VkShaderStageFlagBits>( shaderStage ), static_cast<VkShaderInfoTypeAMD>( infoType ), pInfoSize, pInfo ) );
  46870. }
  46871. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46872. template<typename Allocator, typename Dispatch>
  46873. VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t,Allocator>>::type Device::getShaderInfoAMD( Pipeline pipeline, ShaderStageFlagBits shaderStage, ShaderInfoTypeAMD infoType, Dispatch const &d ) const
  46874. {
  46875. std::vector<uint8_t,Allocator> info;
  46876. size_t infoSize;
  46877. Result result;
  46878. do
  46879. {
  46880. result = static_cast<Result>( d.vkGetShaderInfoAMD( m_device, static_cast<VkPipeline>( pipeline ), static_cast<VkShaderStageFlagBits>( shaderStage ), static_cast<VkShaderInfoTypeAMD>( infoType ), &infoSize, nullptr ) );
  46881. if ( ( result == Result::eSuccess ) && infoSize )
  46882. {
  46883. info.resize( infoSize );
  46884. result = static_cast<Result>( d.vkGetShaderInfoAMD( m_device, static_cast<VkPipeline>( pipeline ), static_cast<VkShaderStageFlagBits>( shaderStage ), static_cast<VkShaderInfoTypeAMD>( infoType ), &infoSize, reinterpret_cast<void*>( info.data() ) ) );
  46885. }
  46886. } while ( result == Result::eIncomplete );
  46887. if ( result == Result::eSuccess )
  46888. {
  46889. VULKAN_HPP_ASSERT( infoSize <= info.size() );
  46890. info.resize( infoSize );
  46891. }
  46892. return createResultValue( result, info, VULKAN_HPP_NAMESPACE_STRING"::Device::getShaderInfoAMD" );
  46893. }
  46894. template<typename Allocator, typename Dispatch>
  46895. VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t,Allocator>>::type Device::getShaderInfoAMD( Pipeline pipeline, ShaderStageFlagBits shaderStage, ShaderInfoTypeAMD infoType, Allocator const& vectorAllocator, Dispatch const &d ) const
  46896. {
  46897. std::vector<uint8_t,Allocator> info( vectorAllocator );
  46898. size_t infoSize;
  46899. Result result;
  46900. do
  46901. {
  46902. result = static_cast<Result>( d.vkGetShaderInfoAMD( m_device, static_cast<VkPipeline>( pipeline ), static_cast<VkShaderStageFlagBits>( shaderStage ), static_cast<VkShaderInfoTypeAMD>( infoType ), &infoSize, nullptr ) );
  46903. if ( ( result == Result::eSuccess ) && infoSize )
  46904. {
  46905. info.resize( infoSize );
  46906. result = static_cast<Result>( d.vkGetShaderInfoAMD( m_device, static_cast<VkPipeline>( pipeline ), static_cast<VkShaderStageFlagBits>( shaderStage ), static_cast<VkShaderInfoTypeAMD>( infoType ), &infoSize, reinterpret_cast<void*>( info.data() ) ) );
  46907. }
  46908. } while ( result == Result::eIncomplete );
  46909. if ( result == Result::eSuccess )
  46910. {
  46911. VULKAN_HPP_ASSERT( infoSize <= info.size() );
  46912. info.resize( infoSize );
  46913. }
  46914. return createResultValue( result, info, VULKAN_HPP_NAMESPACE_STRING"::Device::getShaderInfoAMD" );
  46915. }
  46916. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46917. template<typename Dispatch>
  46918. VULKAN_HPP_INLINE Result Device::getSwapchainCounterEXT( SwapchainKHR swapchain, SurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue, Dispatch const &d) const
  46919. {
  46920. return static_cast<Result>( d.vkGetSwapchainCounterEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ), static_cast<VkSurfaceCounterFlagBitsEXT>( counter ), pCounterValue ) );
  46921. }
  46922. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46923. template<typename Dispatch>
  46924. VULKAN_HPP_INLINE ResultValueType<uint64_t>::type Device::getSwapchainCounterEXT( SwapchainKHR swapchain, SurfaceCounterFlagBitsEXT counter, Dispatch const &d ) const
  46925. {
  46926. uint64_t counterValue;
  46927. Result result = static_cast<Result>( d.vkGetSwapchainCounterEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ), static_cast<VkSurfaceCounterFlagBitsEXT>( counter ), &counterValue ) );
  46928. return createResultValue( result, counterValue, VULKAN_HPP_NAMESPACE_STRING"::Device::getSwapchainCounterEXT" );
  46929. }
  46930. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46931. template<typename Dispatch>
  46932. VULKAN_HPP_INLINE Result Device::getSwapchainImagesKHR( SwapchainKHR swapchain, uint32_t* pSwapchainImageCount, Image* pSwapchainImages, Dispatch const &d) const
  46933. {
  46934. return static_cast<Result>( d.vkGetSwapchainImagesKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), pSwapchainImageCount, reinterpret_cast<VkImage*>( pSwapchainImages ) ) );
  46935. }
  46936. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46937. template<typename Allocator, typename Dispatch>
  46938. VULKAN_HPP_INLINE typename ResultValueType<std::vector<Image,Allocator>>::type Device::getSwapchainImagesKHR( SwapchainKHR swapchain, Dispatch const &d ) const
  46939. {
  46940. std::vector<Image,Allocator> swapchainImages;
  46941. uint32_t swapchainImageCount;
  46942. Result result;
  46943. do
  46944. {
  46945. result = static_cast<Result>( d.vkGetSwapchainImagesKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), &swapchainImageCount, nullptr ) );
  46946. if ( ( result == Result::eSuccess ) && swapchainImageCount )
  46947. {
  46948. swapchainImages.resize( swapchainImageCount );
  46949. result = static_cast<Result>( d.vkGetSwapchainImagesKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), &swapchainImageCount, reinterpret_cast<VkImage*>( swapchainImages.data() ) ) );
  46950. }
  46951. } while ( result == Result::eIncomplete );
  46952. if ( result == Result::eSuccess )
  46953. {
  46954. VULKAN_HPP_ASSERT( swapchainImageCount <= swapchainImages.size() );
  46955. swapchainImages.resize( swapchainImageCount );
  46956. }
  46957. return createResultValue( result, swapchainImages, VULKAN_HPP_NAMESPACE_STRING"::Device::getSwapchainImagesKHR" );
  46958. }
  46959. template<typename Allocator, typename Dispatch>
  46960. VULKAN_HPP_INLINE typename ResultValueType<std::vector<Image,Allocator>>::type Device::getSwapchainImagesKHR( SwapchainKHR swapchain, Allocator const& vectorAllocator, Dispatch const &d ) const
  46961. {
  46962. std::vector<Image,Allocator> swapchainImages( vectorAllocator );
  46963. uint32_t swapchainImageCount;
  46964. Result result;
  46965. do
  46966. {
  46967. result = static_cast<Result>( d.vkGetSwapchainImagesKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), &swapchainImageCount, nullptr ) );
  46968. if ( ( result == Result::eSuccess ) && swapchainImageCount )
  46969. {
  46970. swapchainImages.resize( swapchainImageCount );
  46971. result = static_cast<Result>( d.vkGetSwapchainImagesKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), &swapchainImageCount, reinterpret_cast<VkImage*>( swapchainImages.data() ) ) );
  46972. }
  46973. } while ( result == Result::eIncomplete );
  46974. if ( result == Result::eSuccess )
  46975. {
  46976. VULKAN_HPP_ASSERT( swapchainImageCount <= swapchainImages.size() );
  46977. swapchainImages.resize( swapchainImageCount );
  46978. }
  46979. return createResultValue( result, swapchainImages, VULKAN_HPP_NAMESPACE_STRING"::Device::getSwapchainImagesKHR" );
  46980. }
  46981. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46982. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  46983. template<typename Dispatch>
  46984. VULKAN_HPP_INLINE Result Device::getSwapchainStatusKHR( SwapchainKHR swapchain, Dispatch const &d) const
  46985. {
  46986. return static_cast<Result>( d.vkGetSwapchainStatusKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
  46987. }
  46988. #else
  46989. template<typename Dispatch>
  46990. VULKAN_HPP_INLINE Result Device::getSwapchainStatusKHR( SwapchainKHR swapchain, Dispatch const &d ) const
  46991. {
  46992. Result result = static_cast<Result>( d.vkGetSwapchainStatusKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
  46993. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getSwapchainStatusKHR", { Result::eSuccess, Result::eSuboptimalKHR } );
  46994. }
  46995. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  46996. template<typename Dispatch>
  46997. VULKAN_HPP_INLINE Result Device::getValidationCacheDataEXT( ValidationCacheEXT validationCache, size_t* pDataSize, void* pData, Dispatch const &d) const
  46998. {
  46999. return static_cast<Result>( d.vkGetValidationCacheDataEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), pDataSize, pData ) );
  47000. }
  47001. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47002. template<typename Allocator, typename Dispatch>
  47003. VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t,Allocator>>::type Device::getValidationCacheDataEXT( ValidationCacheEXT validationCache, Dispatch const &d ) const
  47004. {
  47005. std::vector<uint8_t,Allocator> data;
  47006. size_t dataSize;
  47007. Result result;
  47008. do
  47009. {
  47010. result = static_cast<Result>( d.vkGetValidationCacheDataEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), &dataSize, nullptr ) );
  47011. if ( ( result == Result::eSuccess ) && dataSize )
  47012. {
  47013. data.resize( dataSize );
  47014. result = static_cast<Result>( d.vkGetValidationCacheDataEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), &dataSize, reinterpret_cast<void*>( data.data() ) ) );
  47015. }
  47016. } while ( result == Result::eIncomplete );
  47017. if ( result == Result::eSuccess )
  47018. {
  47019. VULKAN_HPP_ASSERT( dataSize <= data.size() );
  47020. data.resize( dataSize );
  47021. }
  47022. return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING"::Device::getValidationCacheDataEXT" );
  47023. }
  47024. template<typename Allocator, typename Dispatch>
  47025. VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t,Allocator>>::type Device::getValidationCacheDataEXT( ValidationCacheEXT validationCache, Allocator const& vectorAllocator, Dispatch const &d ) const
  47026. {
  47027. std::vector<uint8_t,Allocator> data( vectorAllocator );
  47028. size_t dataSize;
  47029. Result result;
  47030. do
  47031. {
  47032. result = static_cast<Result>( d.vkGetValidationCacheDataEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), &dataSize, nullptr ) );
  47033. if ( ( result == Result::eSuccess ) && dataSize )
  47034. {
  47035. data.resize( dataSize );
  47036. result = static_cast<Result>( d.vkGetValidationCacheDataEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), &dataSize, reinterpret_cast<void*>( data.data() ) ) );
  47037. }
  47038. } while ( result == Result::eIncomplete );
  47039. if ( result == Result::eSuccess )
  47040. {
  47041. VULKAN_HPP_ASSERT( dataSize <= data.size() );
  47042. data.resize( dataSize );
  47043. }
  47044. return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING"::Device::getValidationCacheDataEXT" );
  47045. }
  47046. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47047. template<typename Dispatch>
  47048. VULKAN_HPP_INLINE Result Device::importFenceFdKHR( const ImportFenceFdInfoKHR* pImportFenceFdInfo, Dispatch const &d) const
  47049. {
  47050. return static_cast<Result>( d.vkImportFenceFdKHR( m_device, reinterpret_cast<const VkImportFenceFdInfoKHR*>( pImportFenceFdInfo ) ) );
  47051. }
  47052. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47053. template<typename Dispatch>
  47054. VULKAN_HPP_INLINE ResultValueType<void>::type Device::importFenceFdKHR( const ImportFenceFdInfoKHR & importFenceFdInfo, Dispatch const &d ) const
  47055. {
  47056. Result result = static_cast<Result>( d.vkImportFenceFdKHR( m_device, reinterpret_cast<const VkImportFenceFdInfoKHR*>( &importFenceFdInfo ) ) );
  47057. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::importFenceFdKHR" );
  47058. }
  47059. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47060. #ifdef VK_USE_PLATFORM_WIN32_KHR
  47061. template<typename Dispatch>
  47062. VULKAN_HPP_INLINE Result Device::importFenceWin32HandleKHR( const ImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo, Dispatch const &d) const
  47063. {
  47064. return static_cast<Result>( d.vkImportFenceWin32HandleKHR( m_device, reinterpret_cast<const VkImportFenceWin32HandleInfoKHR*>( pImportFenceWin32HandleInfo ) ) );
  47065. }
  47066. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47067. template<typename Dispatch>
  47068. VULKAN_HPP_INLINE ResultValueType<void>::type Device::importFenceWin32HandleKHR( const ImportFenceWin32HandleInfoKHR & importFenceWin32HandleInfo, Dispatch const &d ) const
  47069. {
  47070. Result result = static_cast<Result>( d.vkImportFenceWin32HandleKHR( m_device, reinterpret_cast<const VkImportFenceWin32HandleInfoKHR*>( &importFenceWin32HandleInfo ) ) );
  47071. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::importFenceWin32HandleKHR" );
  47072. }
  47073. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47074. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  47075. template<typename Dispatch>
  47076. VULKAN_HPP_INLINE Result Device::importSemaphoreFdKHR( const ImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo, Dispatch const &d) const
  47077. {
  47078. return static_cast<Result>( d.vkImportSemaphoreFdKHR( m_device, reinterpret_cast<const VkImportSemaphoreFdInfoKHR*>( pImportSemaphoreFdInfo ) ) );
  47079. }
  47080. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47081. template<typename Dispatch>
  47082. VULKAN_HPP_INLINE ResultValueType<void>::type Device::importSemaphoreFdKHR( const ImportSemaphoreFdInfoKHR & importSemaphoreFdInfo, Dispatch const &d ) const
  47083. {
  47084. Result result = static_cast<Result>( d.vkImportSemaphoreFdKHR( m_device, reinterpret_cast<const VkImportSemaphoreFdInfoKHR*>( &importSemaphoreFdInfo ) ) );
  47085. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::importSemaphoreFdKHR" );
  47086. }
  47087. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47088. #ifdef VK_USE_PLATFORM_WIN32_KHR
  47089. template<typename Dispatch>
  47090. VULKAN_HPP_INLINE Result Device::importSemaphoreWin32HandleKHR( const ImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo, Dispatch const &d) const
  47091. {
  47092. return static_cast<Result>( d.vkImportSemaphoreWin32HandleKHR( m_device, reinterpret_cast<const VkImportSemaphoreWin32HandleInfoKHR*>( pImportSemaphoreWin32HandleInfo ) ) );
  47093. }
  47094. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47095. template<typename Dispatch>
  47096. VULKAN_HPP_INLINE ResultValueType<void>::type Device::importSemaphoreWin32HandleKHR( const ImportSemaphoreWin32HandleInfoKHR & importSemaphoreWin32HandleInfo, Dispatch const &d ) const
  47097. {
  47098. Result result = static_cast<Result>( d.vkImportSemaphoreWin32HandleKHR( m_device, reinterpret_cast<const VkImportSemaphoreWin32HandleInfoKHR*>( &importSemaphoreWin32HandleInfo ) ) );
  47099. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::importSemaphoreWin32HandleKHR" );
  47100. }
  47101. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47102. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  47103. template<typename Dispatch>
  47104. VULKAN_HPP_INLINE Result Device::initializePerformanceApiINTEL( const InitializePerformanceApiInfoINTEL* pInitializeInfo, Dispatch const &d) const
  47105. {
  47106. return static_cast<Result>( d.vkInitializePerformanceApiINTEL( m_device, reinterpret_cast<const VkInitializePerformanceApiInfoINTEL*>( pInitializeInfo ) ) );
  47107. }
  47108. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47109. template<typename Dispatch>
  47110. VULKAN_HPP_INLINE ResultValueType<void>::type Device::initializePerformanceApiINTEL( const InitializePerformanceApiInfoINTEL & initializeInfo, Dispatch const &d ) const
  47111. {
  47112. Result result = static_cast<Result>( d.vkInitializePerformanceApiINTEL( m_device, reinterpret_cast<const VkInitializePerformanceApiInfoINTEL*>( &initializeInfo ) ) );
  47113. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::initializePerformanceApiINTEL" );
  47114. }
  47115. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47116. template<typename Dispatch>
  47117. VULKAN_HPP_INLINE Result Device::invalidateMappedMemoryRanges( uint32_t memoryRangeCount, const MappedMemoryRange* pMemoryRanges, Dispatch const &d) const
  47118. {
  47119. return static_cast<Result>( d.vkInvalidateMappedMemoryRanges( m_device, memoryRangeCount, reinterpret_cast<const VkMappedMemoryRange*>( pMemoryRanges ) ) );
  47120. }
  47121. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47122. template<typename Dispatch>
  47123. VULKAN_HPP_INLINE ResultValueType<void>::type Device::invalidateMappedMemoryRanges( ArrayProxy<const MappedMemoryRange> memoryRanges, Dispatch const &d ) const
  47124. {
  47125. Result result = static_cast<Result>( d.vkInvalidateMappedMemoryRanges( m_device, memoryRanges.size() , reinterpret_cast<const VkMappedMemoryRange*>( memoryRanges.data() ) ) );
  47126. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::invalidateMappedMemoryRanges" );
  47127. }
  47128. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47129. template<typename Dispatch>
  47130. VULKAN_HPP_INLINE Result Device::mapMemory( DeviceMemory memory, DeviceSize offset, DeviceSize size, MemoryMapFlags flags, void** ppData, Dispatch const &d) const
  47131. {
  47132. return static_cast<Result>( d.vkMapMemory( m_device, static_cast<VkDeviceMemory>( memory ), static_cast<VkDeviceSize>( offset ), static_cast<VkDeviceSize>( size ), static_cast<VkMemoryMapFlags>( flags ), ppData ) );
  47133. }
  47134. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47135. template<typename Dispatch>
  47136. VULKAN_HPP_INLINE ResultValueType<void*>::type Device::mapMemory( DeviceMemory memory, DeviceSize offset, DeviceSize size, MemoryMapFlags flags, Dispatch const &d ) const
  47137. {
  47138. void* pData;
  47139. Result result = static_cast<Result>( d.vkMapMemory( m_device, static_cast<VkDeviceMemory>( memory ), static_cast<VkDeviceSize>( offset ), static_cast<VkDeviceSize>( size ), static_cast<VkMemoryMapFlags>( flags ), &pData ) );
  47140. return createResultValue( result, pData, VULKAN_HPP_NAMESPACE_STRING"::Device::mapMemory" );
  47141. }
  47142. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47143. template<typename Dispatch>
  47144. VULKAN_HPP_INLINE Result Device::mergePipelineCaches( PipelineCache dstCache, uint32_t srcCacheCount, const PipelineCache* pSrcCaches, Dispatch const &d) const
  47145. {
  47146. return static_cast<Result>( d.vkMergePipelineCaches( m_device, static_cast<VkPipelineCache>( dstCache ), srcCacheCount, reinterpret_cast<const VkPipelineCache*>( pSrcCaches ) ) );
  47147. }
  47148. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47149. template<typename Dispatch>
  47150. VULKAN_HPP_INLINE ResultValueType<void>::type Device::mergePipelineCaches( PipelineCache dstCache, ArrayProxy<const PipelineCache> srcCaches, Dispatch const &d ) const
  47151. {
  47152. Result result = static_cast<Result>( d.vkMergePipelineCaches( m_device, static_cast<VkPipelineCache>( dstCache ), srcCaches.size() , reinterpret_cast<const VkPipelineCache*>( srcCaches.data() ) ) );
  47153. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::mergePipelineCaches" );
  47154. }
  47155. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47156. template<typename Dispatch>
  47157. VULKAN_HPP_INLINE Result Device::mergeValidationCachesEXT( ValidationCacheEXT dstCache, uint32_t srcCacheCount, const ValidationCacheEXT* pSrcCaches, Dispatch const &d) const
  47158. {
  47159. return static_cast<Result>( d.vkMergeValidationCachesEXT( m_device, static_cast<VkValidationCacheEXT>( dstCache ), srcCacheCount, reinterpret_cast<const VkValidationCacheEXT*>( pSrcCaches ) ) );
  47160. }
  47161. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47162. template<typename Dispatch>
  47163. VULKAN_HPP_INLINE ResultValueType<void>::type Device::mergeValidationCachesEXT( ValidationCacheEXT dstCache, ArrayProxy<const ValidationCacheEXT> srcCaches, Dispatch const &d ) const
  47164. {
  47165. Result result = static_cast<Result>( d.vkMergeValidationCachesEXT( m_device, static_cast<VkValidationCacheEXT>( dstCache ), srcCaches.size() , reinterpret_cast<const VkValidationCacheEXT*>( srcCaches.data() ) ) );
  47166. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::mergeValidationCachesEXT" );
  47167. }
  47168. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47169. template<typename Dispatch>
  47170. VULKAN_HPP_INLINE Result Device::registerEventEXT( const DeviceEventInfoEXT* pDeviceEventInfo, const AllocationCallbacks* pAllocator, Fence* pFence, Dispatch const &d) const
  47171. {
  47172. return static_cast<Result>( d.vkRegisterDeviceEventEXT( m_device, reinterpret_cast<const VkDeviceEventInfoEXT*>( pDeviceEventInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkFence*>( pFence ) ) );
  47173. }
  47174. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47175. template<typename Dispatch>
  47176. VULKAN_HPP_INLINE ResultValueType<Fence>::type Device::registerEventEXT( const DeviceEventInfoEXT & deviceEventInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  47177. {
  47178. Fence fence;
  47179. Result result = static_cast<Result>( d.vkRegisterDeviceEventEXT( m_device, reinterpret_cast<const VkDeviceEventInfoEXT*>( &deviceEventInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkFence*>( &fence ) ) );
  47180. return createResultValue( result, fence, VULKAN_HPP_NAMESPACE_STRING"::Device::registerEventEXT" );
  47181. }
  47182. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47183. template<typename Dispatch>
  47184. VULKAN_HPP_INLINE Result Device::registerDisplayEventEXT( DisplayKHR display, const DisplayEventInfoEXT* pDisplayEventInfo, const AllocationCallbacks* pAllocator, Fence* pFence, Dispatch const &d) const
  47185. {
  47186. return static_cast<Result>( d.vkRegisterDisplayEventEXT( m_device, static_cast<VkDisplayKHR>( display ), reinterpret_cast<const VkDisplayEventInfoEXT*>( pDisplayEventInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkFence*>( pFence ) ) );
  47187. }
  47188. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47189. template<typename Dispatch>
  47190. VULKAN_HPP_INLINE ResultValueType<Fence>::type Device::registerDisplayEventEXT( DisplayKHR display, const DisplayEventInfoEXT & displayEventInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  47191. {
  47192. Fence fence;
  47193. Result result = static_cast<Result>( d.vkRegisterDisplayEventEXT( m_device, static_cast<VkDisplayKHR>( display ), reinterpret_cast<const VkDisplayEventInfoEXT*>( &displayEventInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkFence*>( &fence ) ) );
  47194. return createResultValue( result, fence, VULKAN_HPP_NAMESPACE_STRING"::Device::registerDisplayEventEXT" );
  47195. }
  47196. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47197. template<typename Dispatch>
  47198. VULKAN_HPP_INLINE Result Device::registerObjectsNVX( ObjectTableNVX objectTable, uint32_t objectCount, const ObjectTableEntryNVX* const* ppObjectTableEntries, const uint32_t* pObjectIndices, Dispatch const &d) const
  47199. {
  47200. return static_cast<Result>( d.vkRegisterObjectsNVX( m_device, static_cast<VkObjectTableNVX>( objectTable ), objectCount, reinterpret_cast<const VkObjectTableEntryNVX* const*>( ppObjectTableEntries ), pObjectIndices ) );
  47201. }
  47202. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47203. template<typename Dispatch>
  47204. VULKAN_HPP_INLINE ResultValueType<void>::type Device::registerObjectsNVX( ObjectTableNVX objectTable, ArrayProxy<const ObjectTableEntryNVX* const> pObjectTableEntries, ArrayProxy<const uint32_t> objectIndices, Dispatch const &d ) const
  47205. {
  47206. #ifdef VULKAN_HPP_NO_EXCEPTIONS
  47207. VULKAN_HPP_ASSERT( pObjectTableEntries.size() == objectIndices.size() );
  47208. #else
  47209. if ( pObjectTableEntries.size() != objectIndices.size() )
  47210. {
  47211. throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkDevice::registerObjectsNVX: pObjectTableEntries.size() != objectIndices.size()" );
  47212. }
  47213. #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
  47214. Result result = static_cast<Result>( d.vkRegisterObjectsNVX( m_device, static_cast<VkObjectTableNVX>( objectTable ), pObjectTableEntries.size() , reinterpret_cast<const VkObjectTableEntryNVX* const*>( pObjectTableEntries.data() ), objectIndices.data() ) );
  47215. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::registerObjectsNVX" );
  47216. }
  47217. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47218. #ifdef VK_USE_PLATFORM_WIN32_KHR
  47219. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47220. template<typename Dispatch>
  47221. VULKAN_HPP_INLINE Result Device::releaseFullScreenExclusiveModeEXT( SwapchainKHR swapchain, Dispatch const &d) const
  47222. {
  47223. return static_cast<Result>( d.vkReleaseFullScreenExclusiveModeEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
  47224. }
  47225. #else
  47226. template<typename Dispatch>
  47227. VULKAN_HPP_INLINE ResultValueType<void>::type Device::releaseFullScreenExclusiveModeEXT( SwapchainKHR swapchain, Dispatch const &d ) const
  47228. {
  47229. Result result = static_cast<Result>( d.vkReleaseFullScreenExclusiveModeEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
  47230. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::releaseFullScreenExclusiveModeEXT" );
  47231. }
  47232. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47233. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  47234. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47235. template<typename Dispatch>
  47236. VULKAN_HPP_INLINE Result Device::releasePerformanceConfigurationINTEL( PerformanceConfigurationINTEL configuration, Dispatch const &d) const
  47237. {
  47238. return static_cast<Result>( d.vkReleasePerformanceConfigurationINTEL( m_device, static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
  47239. }
  47240. #else
  47241. template<typename Dispatch>
  47242. VULKAN_HPP_INLINE ResultValueType<void>::type Device::releasePerformanceConfigurationINTEL( PerformanceConfigurationINTEL configuration, Dispatch const &d ) const
  47243. {
  47244. Result result = static_cast<Result>( d.vkReleasePerformanceConfigurationINTEL( m_device, static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
  47245. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::releasePerformanceConfigurationINTEL" );
  47246. }
  47247. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47248. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47249. template<typename Dispatch>
  47250. VULKAN_HPP_INLINE Result Device::resetCommandPool( CommandPool commandPool, CommandPoolResetFlags flags, Dispatch const &d) const
  47251. {
  47252. return static_cast<Result>( d.vkResetCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), static_cast<VkCommandPoolResetFlags>( flags ) ) );
  47253. }
  47254. #else
  47255. template<typename Dispatch>
  47256. VULKAN_HPP_INLINE ResultValueType<void>::type Device::resetCommandPool( CommandPool commandPool, CommandPoolResetFlags flags, Dispatch const &d ) const
  47257. {
  47258. Result result = static_cast<Result>( d.vkResetCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), static_cast<VkCommandPoolResetFlags>( flags ) ) );
  47259. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::resetCommandPool" );
  47260. }
  47261. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47262. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47263. template<typename Dispatch>
  47264. VULKAN_HPP_INLINE Result Device::resetDescriptorPool( DescriptorPool descriptorPool, DescriptorPoolResetFlags flags, Dispatch const &d) const
  47265. {
  47266. return static_cast<Result>( d.vkResetDescriptorPool( m_device, static_cast<VkDescriptorPool>( descriptorPool ), static_cast<VkDescriptorPoolResetFlags>( flags ) ) );
  47267. }
  47268. #else
  47269. template<typename Dispatch>
  47270. VULKAN_HPP_INLINE ResultValueType<void>::type Device::resetDescriptorPool( DescriptorPool descriptorPool, DescriptorPoolResetFlags flags, Dispatch const &d ) const
  47271. {
  47272. Result result = static_cast<Result>( d.vkResetDescriptorPool( m_device, static_cast<VkDescriptorPool>( descriptorPool ), static_cast<VkDescriptorPoolResetFlags>( flags ) ) );
  47273. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::resetDescriptorPool" );
  47274. }
  47275. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47276. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47277. template<typename Dispatch>
  47278. VULKAN_HPP_INLINE Result Device::resetEvent( Event event, Dispatch const &d) const
  47279. {
  47280. return static_cast<Result>( d.vkResetEvent( m_device, static_cast<VkEvent>( event ) ) );
  47281. }
  47282. #else
  47283. template<typename Dispatch>
  47284. VULKAN_HPP_INLINE ResultValueType<void>::type Device::resetEvent( Event event, Dispatch const &d ) const
  47285. {
  47286. Result result = static_cast<Result>( d.vkResetEvent( m_device, static_cast<VkEvent>( event ) ) );
  47287. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::resetEvent" );
  47288. }
  47289. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47290. template<typename Dispatch>
  47291. VULKAN_HPP_INLINE Result Device::resetFences( uint32_t fenceCount, const Fence* pFences, Dispatch const &d) const
  47292. {
  47293. return static_cast<Result>( d.vkResetFences( m_device, fenceCount, reinterpret_cast<const VkFence*>( pFences ) ) );
  47294. }
  47295. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47296. template<typename Dispatch>
  47297. VULKAN_HPP_INLINE ResultValueType<void>::type Device::resetFences( ArrayProxy<const Fence> fences, Dispatch const &d ) const
  47298. {
  47299. Result result = static_cast<Result>( d.vkResetFences( m_device, fences.size() , reinterpret_cast<const VkFence*>( fences.data() ) ) );
  47300. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::resetFences" );
  47301. }
  47302. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47303. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47304. template<typename Dispatch>
  47305. VULKAN_HPP_INLINE void Device::resetQueryPoolEXT( QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const &d) const
  47306. {
  47307. d.vkResetQueryPoolEXT( m_device, static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount );
  47308. }
  47309. #else
  47310. template<typename Dispatch>
  47311. VULKAN_HPP_INLINE void Device::resetQueryPoolEXT( QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const &d ) const
  47312. {
  47313. d.vkResetQueryPoolEXT( m_device, static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount );
  47314. }
  47315. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47316. template<typename Dispatch>
  47317. VULKAN_HPP_INLINE Result Device::setDebugUtilsObjectNameEXT( const DebugUtilsObjectNameInfoEXT* pNameInfo, Dispatch const &d) const
  47318. {
  47319. return static_cast<Result>( d.vkSetDebugUtilsObjectNameEXT( m_device, reinterpret_cast<const VkDebugUtilsObjectNameInfoEXT*>( pNameInfo ) ) );
  47320. }
  47321. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47322. template<typename Dispatch>
  47323. VULKAN_HPP_INLINE ResultValueType<void>::type Device::setDebugUtilsObjectNameEXT( const DebugUtilsObjectNameInfoEXT & nameInfo, Dispatch const &d ) const
  47324. {
  47325. Result result = static_cast<Result>( d.vkSetDebugUtilsObjectNameEXT( m_device, reinterpret_cast<const VkDebugUtilsObjectNameInfoEXT*>( &nameInfo ) ) );
  47326. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::setDebugUtilsObjectNameEXT" );
  47327. }
  47328. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47329. template<typename Dispatch>
  47330. VULKAN_HPP_INLINE Result Device::setDebugUtilsObjectTagEXT( const DebugUtilsObjectTagInfoEXT* pTagInfo, Dispatch const &d) const
  47331. {
  47332. return static_cast<Result>( d.vkSetDebugUtilsObjectTagEXT( m_device, reinterpret_cast<const VkDebugUtilsObjectTagInfoEXT*>( pTagInfo ) ) );
  47333. }
  47334. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47335. template<typename Dispatch>
  47336. VULKAN_HPP_INLINE ResultValueType<void>::type Device::setDebugUtilsObjectTagEXT( const DebugUtilsObjectTagInfoEXT & tagInfo, Dispatch const &d ) const
  47337. {
  47338. Result result = static_cast<Result>( d.vkSetDebugUtilsObjectTagEXT( m_device, reinterpret_cast<const VkDebugUtilsObjectTagInfoEXT*>( &tagInfo ) ) );
  47339. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::setDebugUtilsObjectTagEXT" );
  47340. }
  47341. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47342. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47343. template<typename Dispatch>
  47344. VULKAN_HPP_INLINE Result Device::setEvent( Event event, Dispatch const &d) const
  47345. {
  47346. return static_cast<Result>( d.vkSetEvent( m_device, static_cast<VkEvent>( event ) ) );
  47347. }
  47348. #else
  47349. template<typename Dispatch>
  47350. VULKAN_HPP_INLINE ResultValueType<void>::type Device::setEvent( Event event, Dispatch const &d ) const
  47351. {
  47352. Result result = static_cast<Result>( d.vkSetEvent( m_device, static_cast<VkEvent>( event ) ) );
  47353. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::setEvent" );
  47354. }
  47355. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47356. template<typename Dispatch>
  47357. VULKAN_HPP_INLINE void Device::setHdrMetadataEXT( uint32_t swapchainCount, const SwapchainKHR* pSwapchains, const HdrMetadataEXT* pMetadata, Dispatch const &d) const
  47358. {
  47359. d.vkSetHdrMetadataEXT( m_device, swapchainCount, reinterpret_cast<const VkSwapchainKHR*>( pSwapchains ), reinterpret_cast<const VkHdrMetadataEXT*>( pMetadata ) );
  47360. }
  47361. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47362. template<typename Dispatch>
  47363. VULKAN_HPP_INLINE void Device::setHdrMetadataEXT( ArrayProxy<const SwapchainKHR> swapchains, ArrayProxy<const HdrMetadataEXT> metadata, Dispatch const &d ) const
  47364. {
  47365. #ifdef VULKAN_HPP_NO_EXCEPTIONS
  47366. VULKAN_HPP_ASSERT( swapchains.size() == metadata.size() );
  47367. #else
  47368. if ( swapchains.size() != metadata.size() )
  47369. {
  47370. throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkDevice::setHdrMetadataEXT: swapchains.size() != metadata.size()" );
  47371. }
  47372. #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
  47373. d.vkSetHdrMetadataEXT( m_device, swapchains.size() , reinterpret_cast<const VkSwapchainKHR*>( swapchains.data() ), reinterpret_cast<const VkHdrMetadataEXT*>( metadata.data() ) );
  47374. }
  47375. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47376. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47377. template<typename Dispatch>
  47378. VULKAN_HPP_INLINE void Device::setLocalDimmingAMD( SwapchainKHR swapChain, Bool32 localDimmingEnable, Dispatch const &d) const
  47379. {
  47380. d.vkSetLocalDimmingAMD( m_device, static_cast<VkSwapchainKHR>( swapChain ), static_cast<VkBool32>( localDimmingEnable ) );
  47381. }
  47382. #else
  47383. template<typename Dispatch>
  47384. VULKAN_HPP_INLINE void Device::setLocalDimmingAMD( SwapchainKHR swapChain, Bool32 localDimmingEnable, Dispatch const &d ) const
  47385. {
  47386. d.vkSetLocalDimmingAMD( m_device, static_cast<VkSwapchainKHR>( swapChain ), static_cast<VkBool32>( localDimmingEnable ) );
  47387. }
  47388. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47389. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47390. template<typename Dispatch>
  47391. VULKAN_HPP_INLINE void Device::trimCommandPool( CommandPool commandPool, CommandPoolTrimFlags flags, Dispatch const &d) const
  47392. {
  47393. d.vkTrimCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), static_cast<VkCommandPoolTrimFlags>( flags ) );
  47394. }
  47395. #else
  47396. template<typename Dispatch>
  47397. VULKAN_HPP_INLINE void Device::trimCommandPool( CommandPool commandPool, CommandPoolTrimFlags flags, Dispatch const &d ) const
  47398. {
  47399. d.vkTrimCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), static_cast<VkCommandPoolTrimFlags>( flags ) );
  47400. }
  47401. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47402. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47403. template<typename Dispatch>
  47404. VULKAN_HPP_INLINE void Device::trimCommandPoolKHR( CommandPool commandPool, CommandPoolTrimFlags flags, Dispatch const &d) const
  47405. {
  47406. d.vkTrimCommandPoolKHR( m_device, static_cast<VkCommandPool>( commandPool ), static_cast<VkCommandPoolTrimFlags>( flags ) );
  47407. }
  47408. #else
  47409. template<typename Dispatch>
  47410. VULKAN_HPP_INLINE void Device::trimCommandPoolKHR( CommandPool commandPool, CommandPoolTrimFlags flags, Dispatch const &d ) const
  47411. {
  47412. d.vkTrimCommandPoolKHR( m_device, static_cast<VkCommandPool>( commandPool ), static_cast<VkCommandPoolTrimFlags>( flags ) );
  47413. }
  47414. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47415. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47416. template<typename Dispatch>
  47417. VULKAN_HPP_INLINE void Device::uninitializePerformanceApiINTEL(Dispatch const &d) const
  47418. {
  47419. d.vkUninitializePerformanceApiINTEL( m_device );
  47420. }
  47421. #else
  47422. template<typename Dispatch>
  47423. VULKAN_HPP_INLINE void Device::uninitializePerformanceApiINTEL(Dispatch const &d ) const
  47424. {
  47425. d.vkUninitializePerformanceApiINTEL( m_device );
  47426. }
  47427. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47428. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47429. template<typename Dispatch>
  47430. VULKAN_HPP_INLINE void Device::unmapMemory( DeviceMemory memory, Dispatch const &d) const
  47431. {
  47432. d.vkUnmapMemory( m_device, static_cast<VkDeviceMemory>( memory ) );
  47433. }
  47434. #else
  47435. template<typename Dispatch>
  47436. VULKAN_HPP_INLINE void Device::unmapMemory( DeviceMemory memory, Dispatch const &d ) const
  47437. {
  47438. d.vkUnmapMemory( m_device, static_cast<VkDeviceMemory>( memory ) );
  47439. }
  47440. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47441. template<typename Dispatch>
  47442. VULKAN_HPP_INLINE Result Device::unregisterObjectsNVX( ObjectTableNVX objectTable, uint32_t objectCount, const ObjectEntryTypeNVX* pObjectEntryTypes, const uint32_t* pObjectIndices, Dispatch const &d) const
  47443. {
  47444. return static_cast<Result>( d.vkUnregisterObjectsNVX( m_device, static_cast<VkObjectTableNVX>( objectTable ), objectCount, reinterpret_cast<const VkObjectEntryTypeNVX*>( pObjectEntryTypes ), pObjectIndices ) );
  47445. }
  47446. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47447. template<typename Dispatch>
  47448. VULKAN_HPP_INLINE ResultValueType<void>::type Device::unregisterObjectsNVX( ObjectTableNVX objectTable, ArrayProxy<const ObjectEntryTypeNVX> objectEntryTypes, ArrayProxy<const uint32_t> objectIndices, Dispatch const &d ) const
  47449. {
  47450. #ifdef VULKAN_HPP_NO_EXCEPTIONS
  47451. VULKAN_HPP_ASSERT( objectEntryTypes.size() == objectIndices.size() );
  47452. #else
  47453. if ( objectEntryTypes.size() != objectIndices.size() )
  47454. {
  47455. throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkDevice::unregisterObjectsNVX: objectEntryTypes.size() != objectIndices.size()" );
  47456. }
  47457. #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
  47458. Result result = static_cast<Result>( d.vkUnregisterObjectsNVX( m_device, static_cast<VkObjectTableNVX>( objectTable ), objectEntryTypes.size() , reinterpret_cast<const VkObjectEntryTypeNVX*>( objectEntryTypes.data() ), objectIndices.data() ) );
  47459. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::unregisterObjectsNVX" );
  47460. }
  47461. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47462. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47463. template<typename Dispatch>
  47464. VULKAN_HPP_INLINE void Device::updateDescriptorSetWithTemplate( DescriptorSet descriptorSet, DescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData, Dispatch const &d) const
  47465. {
  47466. d.vkUpdateDescriptorSetWithTemplate( m_device, static_cast<VkDescriptorSet>( descriptorSet ), static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), pData );
  47467. }
  47468. #else
  47469. template<typename Dispatch>
  47470. VULKAN_HPP_INLINE void Device::updateDescriptorSetWithTemplate( DescriptorSet descriptorSet, DescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData, Dispatch const &d ) const
  47471. {
  47472. d.vkUpdateDescriptorSetWithTemplate( m_device, static_cast<VkDescriptorSet>( descriptorSet ), static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), pData );
  47473. }
  47474. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47475. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47476. template<typename Dispatch>
  47477. VULKAN_HPP_INLINE void Device::updateDescriptorSetWithTemplateKHR( DescriptorSet descriptorSet, DescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData, Dispatch const &d) const
  47478. {
  47479. d.vkUpdateDescriptorSetWithTemplateKHR( m_device, static_cast<VkDescriptorSet>( descriptorSet ), static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), pData );
  47480. }
  47481. #else
  47482. template<typename Dispatch>
  47483. VULKAN_HPP_INLINE void Device::updateDescriptorSetWithTemplateKHR( DescriptorSet descriptorSet, DescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData, Dispatch const &d ) const
  47484. {
  47485. d.vkUpdateDescriptorSetWithTemplateKHR( m_device, static_cast<VkDescriptorSet>( descriptorSet ), static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), pData );
  47486. }
  47487. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47488. template<typename Dispatch>
  47489. VULKAN_HPP_INLINE void Device::updateDescriptorSets( uint32_t descriptorWriteCount, const WriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const CopyDescriptorSet* pDescriptorCopies, Dispatch const &d) const
  47490. {
  47491. d.vkUpdateDescriptorSets( m_device, descriptorWriteCount, reinterpret_cast<const VkWriteDescriptorSet*>( pDescriptorWrites ), descriptorCopyCount, reinterpret_cast<const VkCopyDescriptorSet*>( pDescriptorCopies ) );
  47492. }
  47493. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47494. template<typename Dispatch>
  47495. VULKAN_HPP_INLINE void Device::updateDescriptorSets( ArrayProxy<const WriteDescriptorSet> descriptorWrites, ArrayProxy<const CopyDescriptorSet> descriptorCopies, Dispatch const &d ) const
  47496. {
  47497. d.vkUpdateDescriptorSets( m_device, descriptorWrites.size() , reinterpret_cast<const VkWriteDescriptorSet*>( descriptorWrites.data() ), descriptorCopies.size() , reinterpret_cast<const VkCopyDescriptorSet*>( descriptorCopies.data() ) );
  47498. }
  47499. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47500. template<typename Dispatch>
  47501. VULKAN_HPP_INLINE Result Device::waitForFences( uint32_t fenceCount, const Fence* pFences, Bool32 waitAll, uint64_t timeout, Dispatch const &d) const
  47502. {
  47503. return static_cast<Result>( d.vkWaitForFences( m_device, fenceCount, reinterpret_cast<const VkFence*>( pFences ), static_cast<VkBool32>( waitAll ), timeout ) );
  47504. }
  47505. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47506. template<typename Dispatch>
  47507. VULKAN_HPP_INLINE Result Device::waitForFences( ArrayProxy<const Fence> fences, Bool32 waitAll, uint64_t timeout, Dispatch const &d ) const
  47508. {
  47509. Result result = static_cast<Result>( d.vkWaitForFences( m_device, fences.size() , reinterpret_cast<const VkFence*>( fences.data() ), static_cast<VkBool32>( waitAll ), timeout ) );
  47510. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::waitForFences", { Result::eSuccess, Result::eTimeout } );
  47511. }
  47512. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47513. #ifdef VK_USE_PLATFORM_ANDROID_KHR
  47514. template<typename Dispatch>
  47515. VULKAN_HPP_INLINE Result Instance::createAndroidSurfaceKHR( const AndroidSurfaceCreateInfoKHR* pCreateInfo, const AllocationCallbacks* pAllocator, SurfaceKHR* pSurface, Dispatch const &d) const
  47516. {
  47517. return static_cast<Result>( d.vkCreateAndroidSurfaceKHR( m_instance, reinterpret_cast<const VkAndroidSurfaceCreateInfoKHR*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
  47518. }
  47519. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47520. template<typename Dispatch>
  47521. VULKAN_HPP_INLINE ResultValueType<SurfaceKHR>::type Instance::createAndroidSurfaceKHR( const AndroidSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  47522. {
  47523. SurfaceKHR surface;
  47524. Result result = static_cast<Result>( d.vkCreateAndroidSurfaceKHR( m_instance, reinterpret_cast<const VkAndroidSurfaceCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
  47525. return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createAndroidSurfaceKHR" );
  47526. }
  47527. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  47528. template<typename Dispatch>
  47529. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createAndroidSurfaceKHRUnique( const AndroidSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  47530. {
  47531. SurfaceKHR surface;
  47532. Result result = static_cast<Result>( d.vkCreateAndroidSurfaceKHR( m_instance, reinterpret_cast<const VkAndroidSurfaceCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
  47533. ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
  47534. return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createAndroidSurfaceKHRUnique", deleter );
  47535. }
  47536. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  47537. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47538. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  47539. template<typename Dispatch>
  47540. VULKAN_HPP_INLINE Result Instance::createDebugReportCallbackEXT( const DebugReportCallbackCreateInfoEXT* pCreateInfo, const AllocationCallbacks* pAllocator, DebugReportCallbackEXT* pCallback, Dispatch const &d) const
  47541. {
  47542. return static_cast<Result>( d.vkCreateDebugReportCallbackEXT( m_instance, reinterpret_cast<const VkDebugReportCallbackCreateInfoEXT*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkDebugReportCallbackEXT*>( pCallback ) ) );
  47543. }
  47544. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47545. template<typename Dispatch>
  47546. VULKAN_HPP_INLINE ResultValueType<DebugReportCallbackEXT>::type Instance::createDebugReportCallbackEXT( const DebugReportCallbackCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  47547. {
  47548. DebugReportCallbackEXT callback;
  47549. Result result = static_cast<Result>( d.vkCreateDebugReportCallbackEXT( m_instance, reinterpret_cast<const VkDebugReportCallbackCreateInfoEXT*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDebugReportCallbackEXT*>( &callback ) ) );
  47550. return createResultValue( result, callback, VULKAN_HPP_NAMESPACE_STRING"::Instance::createDebugReportCallbackEXT" );
  47551. }
  47552. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  47553. template<typename Dispatch>
  47554. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<DebugReportCallbackEXT,Dispatch>>::type Instance::createDebugReportCallbackEXTUnique( const DebugReportCallbackCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  47555. {
  47556. DebugReportCallbackEXT callback;
  47557. Result result = static_cast<Result>( d.vkCreateDebugReportCallbackEXT( m_instance, reinterpret_cast<const VkDebugReportCallbackCreateInfoEXT*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDebugReportCallbackEXT*>( &callback ) ) );
  47558. ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
  47559. return createResultValue<DebugReportCallbackEXT,Dispatch>( result, callback, VULKAN_HPP_NAMESPACE_STRING"::Instance::createDebugReportCallbackEXTUnique", deleter );
  47560. }
  47561. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  47562. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47563. template<typename Dispatch>
  47564. VULKAN_HPP_INLINE Result Instance::createDebugUtilsMessengerEXT( const DebugUtilsMessengerCreateInfoEXT* pCreateInfo, const AllocationCallbacks* pAllocator, DebugUtilsMessengerEXT* pMessenger, Dispatch const &d) const
  47565. {
  47566. return static_cast<Result>( d.vkCreateDebugUtilsMessengerEXT( m_instance, reinterpret_cast<const VkDebugUtilsMessengerCreateInfoEXT*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkDebugUtilsMessengerEXT*>( pMessenger ) ) );
  47567. }
  47568. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47569. template<typename Dispatch>
  47570. VULKAN_HPP_INLINE ResultValueType<DebugUtilsMessengerEXT>::type Instance::createDebugUtilsMessengerEXT( const DebugUtilsMessengerCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  47571. {
  47572. DebugUtilsMessengerEXT messenger;
  47573. Result result = static_cast<Result>( d.vkCreateDebugUtilsMessengerEXT( m_instance, reinterpret_cast<const VkDebugUtilsMessengerCreateInfoEXT*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDebugUtilsMessengerEXT*>( &messenger ) ) );
  47574. return createResultValue( result, messenger, VULKAN_HPP_NAMESPACE_STRING"::Instance::createDebugUtilsMessengerEXT" );
  47575. }
  47576. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  47577. template<typename Dispatch>
  47578. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<DebugUtilsMessengerEXT,Dispatch>>::type Instance::createDebugUtilsMessengerEXTUnique( const DebugUtilsMessengerCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  47579. {
  47580. DebugUtilsMessengerEXT messenger;
  47581. Result result = static_cast<Result>( d.vkCreateDebugUtilsMessengerEXT( m_instance, reinterpret_cast<const VkDebugUtilsMessengerCreateInfoEXT*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDebugUtilsMessengerEXT*>( &messenger ) ) );
  47582. ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
  47583. return createResultValue<DebugUtilsMessengerEXT,Dispatch>( result, messenger, VULKAN_HPP_NAMESPACE_STRING"::Instance::createDebugUtilsMessengerEXTUnique", deleter );
  47584. }
  47585. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  47586. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47587. template<typename Dispatch>
  47588. VULKAN_HPP_INLINE Result Instance::createDisplayPlaneSurfaceKHR( const DisplaySurfaceCreateInfoKHR* pCreateInfo, const AllocationCallbacks* pAllocator, SurfaceKHR* pSurface, Dispatch const &d) const
  47589. {
  47590. return static_cast<Result>( d.vkCreateDisplayPlaneSurfaceKHR( m_instance, reinterpret_cast<const VkDisplaySurfaceCreateInfoKHR*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
  47591. }
  47592. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47593. template<typename Dispatch>
  47594. VULKAN_HPP_INLINE ResultValueType<SurfaceKHR>::type Instance::createDisplayPlaneSurfaceKHR( const DisplaySurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  47595. {
  47596. SurfaceKHR surface;
  47597. Result result = static_cast<Result>( d.vkCreateDisplayPlaneSurfaceKHR( m_instance, reinterpret_cast<const VkDisplaySurfaceCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
  47598. return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createDisplayPlaneSurfaceKHR" );
  47599. }
  47600. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  47601. template<typename Dispatch>
  47602. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createDisplayPlaneSurfaceKHRUnique( const DisplaySurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  47603. {
  47604. SurfaceKHR surface;
  47605. Result result = static_cast<Result>( d.vkCreateDisplayPlaneSurfaceKHR( m_instance, reinterpret_cast<const VkDisplaySurfaceCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
  47606. ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
  47607. return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createDisplayPlaneSurfaceKHRUnique", deleter );
  47608. }
  47609. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  47610. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47611. template<typename Dispatch>
  47612. VULKAN_HPP_INLINE Result Instance::createHeadlessSurfaceEXT( const HeadlessSurfaceCreateInfoEXT* pCreateInfo, const AllocationCallbacks* pAllocator, SurfaceKHR* pSurface, Dispatch const &d) const
  47613. {
  47614. return static_cast<Result>( d.vkCreateHeadlessSurfaceEXT( m_instance, reinterpret_cast<const VkHeadlessSurfaceCreateInfoEXT*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
  47615. }
  47616. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47617. template<typename Dispatch>
  47618. VULKAN_HPP_INLINE ResultValueType<SurfaceKHR>::type Instance::createHeadlessSurfaceEXT( const HeadlessSurfaceCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  47619. {
  47620. SurfaceKHR surface;
  47621. Result result = static_cast<Result>( d.vkCreateHeadlessSurfaceEXT( m_instance, reinterpret_cast<const VkHeadlessSurfaceCreateInfoEXT*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
  47622. return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createHeadlessSurfaceEXT" );
  47623. }
  47624. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  47625. template<typename Dispatch>
  47626. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createHeadlessSurfaceEXTUnique( const HeadlessSurfaceCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  47627. {
  47628. SurfaceKHR surface;
  47629. Result result = static_cast<Result>( d.vkCreateHeadlessSurfaceEXT( m_instance, reinterpret_cast<const VkHeadlessSurfaceCreateInfoEXT*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
  47630. ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
  47631. return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createHeadlessSurfaceEXTUnique", deleter );
  47632. }
  47633. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  47634. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47635. #ifdef VK_USE_PLATFORM_IOS_MVK
  47636. template<typename Dispatch>
  47637. VULKAN_HPP_INLINE Result Instance::createIOSSurfaceMVK( const IOSSurfaceCreateInfoMVK* pCreateInfo, const AllocationCallbacks* pAllocator, SurfaceKHR* pSurface, Dispatch const &d) const
  47638. {
  47639. return static_cast<Result>( d.vkCreateIOSSurfaceMVK( m_instance, reinterpret_cast<const VkIOSSurfaceCreateInfoMVK*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
  47640. }
  47641. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47642. template<typename Dispatch>
  47643. VULKAN_HPP_INLINE ResultValueType<SurfaceKHR>::type Instance::createIOSSurfaceMVK( const IOSSurfaceCreateInfoMVK & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  47644. {
  47645. SurfaceKHR surface;
  47646. Result result = static_cast<Result>( d.vkCreateIOSSurfaceMVK( m_instance, reinterpret_cast<const VkIOSSurfaceCreateInfoMVK*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
  47647. return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createIOSSurfaceMVK" );
  47648. }
  47649. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  47650. template<typename Dispatch>
  47651. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createIOSSurfaceMVKUnique( const IOSSurfaceCreateInfoMVK & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  47652. {
  47653. SurfaceKHR surface;
  47654. Result result = static_cast<Result>( d.vkCreateIOSSurfaceMVK( m_instance, reinterpret_cast<const VkIOSSurfaceCreateInfoMVK*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
  47655. ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
  47656. return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createIOSSurfaceMVKUnique", deleter );
  47657. }
  47658. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  47659. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47660. #endif /*VK_USE_PLATFORM_IOS_MVK*/
  47661. #ifdef VK_USE_PLATFORM_FUCHSIA
  47662. template<typename Dispatch>
  47663. VULKAN_HPP_INLINE Result Instance::createImagePipeSurfaceFUCHSIA( const ImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const AllocationCallbacks* pAllocator, SurfaceKHR* pSurface, Dispatch const &d) const
  47664. {
  47665. return static_cast<Result>( d.vkCreateImagePipeSurfaceFUCHSIA( m_instance, reinterpret_cast<const VkImagePipeSurfaceCreateInfoFUCHSIA*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
  47666. }
  47667. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47668. template<typename Dispatch>
  47669. VULKAN_HPP_INLINE ResultValueType<SurfaceKHR>::type Instance::createImagePipeSurfaceFUCHSIA( const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  47670. {
  47671. SurfaceKHR surface;
  47672. Result result = static_cast<Result>( d.vkCreateImagePipeSurfaceFUCHSIA( m_instance, reinterpret_cast<const VkImagePipeSurfaceCreateInfoFUCHSIA*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
  47673. return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createImagePipeSurfaceFUCHSIA" );
  47674. }
  47675. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  47676. template<typename Dispatch>
  47677. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createImagePipeSurfaceFUCHSIAUnique( const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  47678. {
  47679. SurfaceKHR surface;
  47680. Result result = static_cast<Result>( d.vkCreateImagePipeSurfaceFUCHSIA( m_instance, reinterpret_cast<const VkImagePipeSurfaceCreateInfoFUCHSIA*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
  47681. ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
  47682. return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createImagePipeSurfaceFUCHSIAUnique", deleter );
  47683. }
  47684. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  47685. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47686. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  47687. #ifdef VK_USE_PLATFORM_MACOS_MVK
  47688. template<typename Dispatch>
  47689. VULKAN_HPP_INLINE Result Instance::createMacOSSurfaceMVK( const MacOSSurfaceCreateInfoMVK* pCreateInfo, const AllocationCallbacks* pAllocator, SurfaceKHR* pSurface, Dispatch const &d) const
  47690. {
  47691. return static_cast<Result>( d.vkCreateMacOSSurfaceMVK( m_instance, reinterpret_cast<const VkMacOSSurfaceCreateInfoMVK*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
  47692. }
  47693. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47694. template<typename Dispatch>
  47695. VULKAN_HPP_INLINE ResultValueType<SurfaceKHR>::type Instance::createMacOSSurfaceMVK( const MacOSSurfaceCreateInfoMVK & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  47696. {
  47697. SurfaceKHR surface;
  47698. Result result = static_cast<Result>( d.vkCreateMacOSSurfaceMVK( m_instance, reinterpret_cast<const VkMacOSSurfaceCreateInfoMVK*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
  47699. return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createMacOSSurfaceMVK" );
  47700. }
  47701. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  47702. template<typename Dispatch>
  47703. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createMacOSSurfaceMVKUnique( const MacOSSurfaceCreateInfoMVK & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  47704. {
  47705. SurfaceKHR surface;
  47706. Result result = static_cast<Result>( d.vkCreateMacOSSurfaceMVK( m_instance, reinterpret_cast<const VkMacOSSurfaceCreateInfoMVK*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
  47707. ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
  47708. return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createMacOSSurfaceMVKUnique", deleter );
  47709. }
  47710. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  47711. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47712. #endif /*VK_USE_PLATFORM_MACOS_MVK*/
  47713. #ifdef VK_USE_PLATFORM_METAL_EXT
  47714. template<typename Dispatch>
  47715. VULKAN_HPP_INLINE Result Instance::createMetalSurfaceEXT( const MetalSurfaceCreateInfoEXT* pCreateInfo, const AllocationCallbacks* pAllocator, SurfaceKHR* pSurface, Dispatch const &d) const
  47716. {
  47717. return static_cast<Result>( d.vkCreateMetalSurfaceEXT( m_instance, reinterpret_cast<const VkMetalSurfaceCreateInfoEXT*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
  47718. }
  47719. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47720. template<typename Dispatch>
  47721. VULKAN_HPP_INLINE ResultValueType<SurfaceKHR>::type Instance::createMetalSurfaceEXT( const MetalSurfaceCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  47722. {
  47723. SurfaceKHR surface;
  47724. Result result = static_cast<Result>( d.vkCreateMetalSurfaceEXT( m_instance, reinterpret_cast<const VkMetalSurfaceCreateInfoEXT*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
  47725. return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createMetalSurfaceEXT" );
  47726. }
  47727. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  47728. template<typename Dispatch>
  47729. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createMetalSurfaceEXTUnique( const MetalSurfaceCreateInfoEXT & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  47730. {
  47731. SurfaceKHR surface;
  47732. Result result = static_cast<Result>( d.vkCreateMetalSurfaceEXT( m_instance, reinterpret_cast<const VkMetalSurfaceCreateInfoEXT*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
  47733. ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
  47734. return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createMetalSurfaceEXTUnique", deleter );
  47735. }
  47736. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  47737. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47738. #endif /*VK_USE_PLATFORM_METAL_EXT*/
  47739. #ifdef VK_USE_PLATFORM_GGP
  47740. template<typename Dispatch>
  47741. VULKAN_HPP_INLINE Result Instance::createStreamDescriptorSurfaceGGP( const StreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, const AllocationCallbacks* pAllocator, SurfaceKHR* pSurface, Dispatch const &d) const
  47742. {
  47743. return static_cast<Result>( d.vkCreateStreamDescriptorSurfaceGGP( m_instance, reinterpret_cast<const VkStreamDescriptorSurfaceCreateInfoGGP*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
  47744. }
  47745. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47746. template<typename Dispatch>
  47747. VULKAN_HPP_INLINE ResultValueType<SurfaceKHR>::type Instance::createStreamDescriptorSurfaceGGP( const StreamDescriptorSurfaceCreateInfoGGP & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  47748. {
  47749. SurfaceKHR surface;
  47750. Result result = static_cast<Result>( d.vkCreateStreamDescriptorSurfaceGGP( m_instance, reinterpret_cast<const VkStreamDescriptorSurfaceCreateInfoGGP*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
  47751. return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createStreamDescriptorSurfaceGGP" );
  47752. }
  47753. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  47754. template<typename Dispatch>
  47755. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createStreamDescriptorSurfaceGGPUnique( const StreamDescriptorSurfaceCreateInfoGGP & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  47756. {
  47757. SurfaceKHR surface;
  47758. Result result = static_cast<Result>( d.vkCreateStreamDescriptorSurfaceGGP( m_instance, reinterpret_cast<const VkStreamDescriptorSurfaceCreateInfoGGP*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
  47759. ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
  47760. return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createStreamDescriptorSurfaceGGPUnique", deleter );
  47761. }
  47762. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  47763. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47764. #endif /*VK_USE_PLATFORM_GGP*/
  47765. #ifdef VK_USE_PLATFORM_VI_NN
  47766. template<typename Dispatch>
  47767. VULKAN_HPP_INLINE Result Instance::createViSurfaceNN( const ViSurfaceCreateInfoNN* pCreateInfo, const AllocationCallbacks* pAllocator, SurfaceKHR* pSurface, Dispatch const &d) const
  47768. {
  47769. return static_cast<Result>( d.vkCreateViSurfaceNN( m_instance, reinterpret_cast<const VkViSurfaceCreateInfoNN*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
  47770. }
  47771. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47772. template<typename Dispatch>
  47773. VULKAN_HPP_INLINE ResultValueType<SurfaceKHR>::type Instance::createViSurfaceNN( const ViSurfaceCreateInfoNN & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  47774. {
  47775. SurfaceKHR surface;
  47776. Result result = static_cast<Result>( d.vkCreateViSurfaceNN( m_instance, reinterpret_cast<const VkViSurfaceCreateInfoNN*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
  47777. return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createViSurfaceNN" );
  47778. }
  47779. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  47780. template<typename Dispatch>
  47781. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createViSurfaceNNUnique( const ViSurfaceCreateInfoNN & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  47782. {
  47783. SurfaceKHR surface;
  47784. Result result = static_cast<Result>( d.vkCreateViSurfaceNN( m_instance, reinterpret_cast<const VkViSurfaceCreateInfoNN*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
  47785. ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
  47786. return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createViSurfaceNNUnique", deleter );
  47787. }
  47788. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  47789. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47790. #endif /*VK_USE_PLATFORM_VI_NN*/
  47791. #ifdef VK_USE_PLATFORM_WAYLAND_KHR
  47792. template<typename Dispatch>
  47793. VULKAN_HPP_INLINE Result Instance::createWaylandSurfaceKHR( const WaylandSurfaceCreateInfoKHR* pCreateInfo, const AllocationCallbacks* pAllocator, SurfaceKHR* pSurface, Dispatch const &d) const
  47794. {
  47795. return static_cast<Result>( d.vkCreateWaylandSurfaceKHR( m_instance, reinterpret_cast<const VkWaylandSurfaceCreateInfoKHR*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
  47796. }
  47797. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47798. template<typename Dispatch>
  47799. VULKAN_HPP_INLINE ResultValueType<SurfaceKHR>::type Instance::createWaylandSurfaceKHR( const WaylandSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  47800. {
  47801. SurfaceKHR surface;
  47802. Result result = static_cast<Result>( d.vkCreateWaylandSurfaceKHR( m_instance, reinterpret_cast<const VkWaylandSurfaceCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
  47803. return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createWaylandSurfaceKHR" );
  47804. }
  47805. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  47806. template<typename Dispatch>
  47807. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createWaylandSurfaceKHRUnique( const WaylandSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  47808. {
  47809. SurfaceKHR surface;
  47810. Result result = static_cast<Result>( d.vkCreateWaylandSurfaceKHR( m_instance, reinterpret_cast<const VkWaylandSurfaceCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
  47811. ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
  47812. return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createWaylandSurfaceKHRUnique", deleter );
  47813. }
  47814. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  47815. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47816. #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
  47817. #ifdef VK_USE_PLATFORM_WIN32_KHR
  47818. template<typename Dispatch>
  47819. VULKAN_HPP_INLINE Result Instance::createWin32SurfaceKHR( const Win32SurfaceCreateInfoKHR* pCreateInfo, const AllocationCallbacks* pAllocator, SurfaceKHR* pSurface, Dispatch const &d) const
  47820. {
  47821. return static_cast<Result>( d.vkCreateWin32SurfaceKHR( m_instance, reinterpret_cast<const VkWin32SurfaceCreateInfoKHR*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
  47822. }
  47823. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47824. template<typename Dispatch>
  47825. VULKAN_HPP_INLINE ResultValueType<SurfaceKHR>::type Instance::createWin32SurfaceKHR( const Win32SurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  47826. {
  47827. SurfaceKHR surface;
  47828. Result result = static_cast<Result>( d.vkCreateWin32SurfaceKHR( m_instance, reinterpret_cast<const VkWin32SurfaceCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
  47829. return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createWin32SurfaceKHR" );
  47830. }
  47831. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  47832. template<typename Dispatch>
  47833. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createWin32SurfaceKHRUnique( const Win32SurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  47834. {
  47835. SurfaceKHR surface;
  47836. Result result = static_cast<Result>( d.vkCreateWin32SurfaceKHR( m_instance, reinterpret_cast<const VkWin32SurfaceCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
  47837. ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
  47838. return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createWin32SurfaceKHRUnique", deleter );
  47839. }
  47840. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  47841. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47842. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  47843. #ifdef VK_USE_PLATFORM_XCB_KHR
  47844. template<typename Dispatch>
  47845. VULKAN_HPP_INLINE Result Instance::createXcbSurfaceKHR( const XcbSurfaceCreateInfoKHR* pCreateInfo, const AllocationCallbacks* pAllocator, SurfaceKHR* pSurface, Dispatch const &d) const
  47846. {
  47847. return static_cast<Result>( d.vkCreateXcbSurfaceKHR( m_instance, reinterpret_cast<const VkXcbSurfaceCreateInfoKHR*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
  47848. }
  47849. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47850. template<typename Dispatch>
  47851. VULKAN_HPP_INLINE ResultValueType<SurfaceKHR>::type Instance::createXcbSurfaceKHR( const XcbSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  47852. {
  47853. SurfaceKHR surface;
  47854. Result result = static_cast<Result>( d.vkCreateXcbSurfaceKHR( m_instance, reinterpret_cast<const VkXcbSurfaceCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
  47855. return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createXcbSurfaceKHR" );
  47856. }
  47857. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  47858. template<typename Dispatch>
  47859. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createXcbSurfaceKHRUnique( const XcbSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  47860. {
  47861. SurfaceKHR surface;
  47862. Result result = static_cast<Result>( d.vkCreateXcbSurfaceKHR( m_instance, reinterpret_cast<const VkXcbSurfaceCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
  47863. ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
  47864. return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createXcbSurfaceKHRUnique", deleter );
  47865. }
  47866. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  47867. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47868. #endif /*VK_USE_PLATFORM_XCB_KHR*/
  47869. #ifdef VK_USE_PLATFORM_XLIB_KHR
  47870. template<typename Dispatch>
  47871. VULKAN_HPP_INLINE Result Instance::createXlibSurfaceKHR( const XlibSurfaceCreateInfoKHR* pCreateInfo, const AllocationCallbacks* pAllocator, SurfaceKHR* pSurface, Dispatch const &d) const
  47872. {
  47873. return static_cast<Result>( d.vkCreateXlibSurfaceKHR( m_instance, reinterpret_cast<const VkXlibSurfaceCreateInfoKHR*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkSurfaceKHR*>( pSurface ) ) );
  47874. }
  47875. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47876. template<typename Dispatch>
  47877. VULKAN_HPP_INLINE ResultValueType<SurfaceKHR>::type Instance::createXlibSurfaceKHR( const XlibSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  47878. {
  47879. SurfaceKHR surface;
  47880. Result result = static_cast<Result>( d.vkCreateXlibSurfaceKHR( m_instance, reinterpret_cast<const VkXlibSurfaceCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
  47881. return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createXlibSurfaceKHR" );
  47882. }
  47883. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  47884. template<typename Dispatch>
  47885. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<SurfaceKHR,Dispatch>>::type Instance::createXlibSurfaceKHRUnique( const XlibSurfaceCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  47886. {
  47887. SurfaceKHR surface;
  47888. Result result = static_cast<Result>( d.vkCreateXlibSurfaceKHR( m_instance, reinterpret_cast<const VkXlibSurfaceCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkSurfaceKHR*>( &surface ) ) );
  47889. ObjectDestroy<Instance,Dispatch> deleter( *this, allocator, d );
  47890. return createResultValue<SurfaceKHR,Dispatch>( result, surface, VULKAN_HPP_NAMESPACE_STRING"::Instance::createXlibSurfaceKHRUnique", deleter );
  47891. }
  47892. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  47893. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47894. #endif /*VK_USE_PLATFORM_XLIB_KHR*/
  47895. template<typename Dispatch>
  47896. VULKAN_HPP_INLINE void Instance::debugReportMessageEXT( DebugReportFlagsEXT flags, DebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage, Dispatch const &d) const
  47897. {
  47898. d.vkDebugReportMessageEXT( m_instance, static_cast<VkDebugReportFlagsEXT>( flags ), static_cast<VkDebugReportObjectTypeEXT>( objectType ), object, location, messageCode, pLayerPrefix, pMessage );
  47899. }
  47900. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47901. template<typename Dispatch>
  47902. VULKAN_HPP_INLINE void Instance::debugReportMessageEXT( DebugReportFlagsEXT flags, DebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const std::string & layerPrefix, const std::string & message, Dispatch const &d ) const
  47903. {
  47904. #ifdef VULKAN_HPP_NO_EXCEPTIONS
  47905. VULKAN_HPP_ASSERT( layerPrefix.size() == message.size() );
  47906. #else
  47907. if ( layerPrefix.size() != message.size() )
  47908. {
  47909. throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkInstance::debugReportMessageEXT: layerPrefix.size() != message.size()" );
  47910. }
  47911. #endif /*VULKAN_HPP_NO_EXCEPTIONS*/
  47912. d.vkDebugReportMessageEXT( m_instance, static_cast<VkDebugReportFlagsEXT>( flags ), static_cast<VkDebugReportObjectTypeEXT>( objectType ), object, location, messageCode, layerPrefix.c_str(), message.c_str() );
  47913. }
  47914. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47915. template<typename Dispatch>
  47916. VULKAN_HPP_INLINE void Instance::destroyDebugReportCallbackEXT( DebugReportCallbackEXT callback, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  47917. {
  47918. d.vkDestroyDebugReportCallbackEXT( m_instance, static_cast<VkDebugReportCallbackEXT>( callback ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  47919. }
  47920. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47921. template<typename Dispatch>
  47922. VULKAN_HPP_INLINE void Instance::destroyDebugReportCallbackEXT( DebugReportCallbackEXT callback, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  47923. {
  47924. d.vkDestroyDebugReportCallbackEXT( m_instance, static_cast<VkDebugReportCallbackEXT>( callback ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  47925. }
  47926. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47927. template<typename Dispatch>
  47928. VULKAN_HPP_INLINE void Instance::destroy( DebugReportCallbackEXT callback, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  47929. {
  47930. d.vkDestroyDebugReportCallbackEXT( m_instance, static_cast<VkDebugReportCallbackEXT>( callback ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  47931. }
  47932. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47933. template<typename Dispatch>
  47934. VULKAN_HPP_INLINE void Instance::destroy( DebugReportCallbackEXT callback, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  47935. {
  47936. d.vkDestroyDebugReportCallbackEXT( m_instance, static_cast<VkDebugReportCallbackEXT>( callback ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  47937. }
  47938. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47939. template<typename Dispatch>
  47940. VULKAN_HPP_INLINE void Instance::destroyDebugUtilsMessengerEXT( DebugUtilsMessengerEXT messenger, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  47941. {
  47942. d.vkDestroyDebugUtilsMessengerEXT( m_instance, static_cast<VkDebugUtilsMessengerEXT>( messenger ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  47943. }
  47944. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47945. template<typename Dispatch>
  47946. VULKAN_HPP_INLINE void Instance::destroyDebugUtilsMessengerEXT( DebugUtilsMessengerEXT messenger, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  47947. {
  47948. d.vkDestroyDebugUtilsMessengerEXT( m_instance, static_cast<VkDebugUtilsMessengerEXT>( messenger ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  47949. }
  47950. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47951. template<typename Dispatch>
  47952. VULKAN_HPP_INLINE void Instance::destroy( DebugUtilsMessengerEXT messenger, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  47953. {
  47954. d.vkDestroyDebugUtilsMessengerEXT( m_instance, static_cast<VkDebugUtilsMessengerEXT>( messenger ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  47955. }
  47956. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47957. template<typename Dispatch>
  47958. VULKAN_HPP_INLINE void Instance::destroy( DebugUtilsMessengerEXT messenger, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  47959. {
  47960. d.vkDestroyDebugUtilsMessengerEXT( m_instance, static_cast<VkDebugUtilsMessengerEXT>( messenger ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  47961. }
  47962. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47963. template<typename Dispatch>
  47964. VULKAN_HPP_INLINE void Instance::destroy( const AllocationCallbacks* pAllocator, Dispatch const &d) const
  47965. {
  47966. d.vkDestroyInstance( m_instance, reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  47967. }
  47968. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47969. template<typename Dispatch>
  47970. VULKAN_HPP_INLINE void Instance::destroy( Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  47971. {
  47972. d.vkDestroyInstance( m_instance, reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  47973. }
  47974. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47975. template<typename Dispatch>
  47976. VULKAN_HPP_INLINE void Instance::destroySurfaceKHR( SurfaceKHR surface, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  47977. {
  47978. d.vkDestroySurfaceKHR( m_instance, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  47979. }
  47980. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47981. template<typename Dispatch>
  47982. VULKAN_HPP_INLINE void Instance::destroySurfaceKHR( SurfaceKHR surface, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  47983. {
  47984. d.vkDestroySurfaceKHR( m_instance, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  47985. }
  47986. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47987. template<typename Dispatch>
  47988. VULKAN_HPP_INLINE void Instance::destroy( SurfaceKHR surface, const AllocationCallbacks* pAllocator, Dispatch const &d) const
  47989. {
  47990. d.vkDestroySurfaceKHR( m_instance, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ) );
  47991. }
  47992. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  47993. template<typename Dispatch>
  47994. VULKAN_HPP_INLINE void Instance::destroy( SurfaceKHR surface, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  47995. {
  47996. d.vkDestroySurfaceKHR( m_instance, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ) );
  47997. }
  47998. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  47999. template<typename Dispatch>
  48000. VULKAN_HPP_INLINE Result Instance::enumeratePhysicalDeviceGroups( uint32_t* pPhysicalDeviceGroupCount, PhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties, Dispatch const &d) const
  48001. {
  48002. return static_cast<Result>( d.vkEnumeratePhysicalDeviceGroups( m_instance, pPhysicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties*>( pPhysicalDeviceGroupProperties ) ) );
  48003. }
  48004. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  48005. template<typename Allocator, typename Dispatch>
  48006. VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDeviceGroupProperties,Allocator>>::type Instance::enumeratePhysicalDeviceGroups(Dispatch const &d ) const
  48007. {
  48008. std::vector<PhysicalDeviceGroupProperties,Allocator> physicalDeviceGroupProperties;
  48009. uint32_t physicalDeviceGroupCount;
  48010. Result result;
  48011. do
  48012. {
  48013. result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroups( m_instance, &physicalDeviceGroupCount, nullptr ) );
  48014. if ( ( result == Result::eSuccess ) && physicalDeviceGroupCount )
  48015. {
  48016. physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
  48017. result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroups( m_instance, &physicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties*>( physicalDeviceGroupProperties.data() ) ) );
  48018. }
  48019. } while ( result == Result::eIncomplete );
  48020. if ( result == Result::eSuccess )
  48021. {
  48022. VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() );
  48023. physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
  48024. }
  48025. return createResultValue( result, physicalDeviceGroupProperties, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDeviceGroups" );
  48026. }
  48027. template<typename Allocator, typename Dispatch>
  48028. VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDeviceGroupProperties,Allocator>>::type Instance::enumeratePhysicalDeviceGroups(Allocator const& vectorAllocator, Dispatch const &d ) const
  48029. {
  48030. std::vector<PhysicalDeviceGroupProperties,Allocator> physicalDeviceGroupProperties( vectorAllocator );
  48031. uint32_t physicalDeviceGroupCount;
  48032. Result result;
  48033. do
  48034. {
  48035. result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroups( m_instance, &physicalDeviceGroupCount, nullptr ) );
  48036. if ( ( result == Result::eSuccess ) && physicalDeviceGroupCount )
  48037. {
  48038. physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
  48039. result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroups( m_instance, &physicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties*>( physicalDeviceGroupProperties.data() ) ) );
  48040. }
  48041. } while ( result == Result::eIncomplete );
  48042. if ( result == Result::eSuccess )
  48043. {
  48044. VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() );
  48045. physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
  48046. }
  48047. return createResultValue( result, physicalDeviceGroupProperties, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDeviceGroups" );
  48048. }
  48049. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  48050. template<typename Dispatch>
  48051. VULKAN_HPP_INLINE Result Instance::enumeratePhysicalDeviceGroupsKHR( uint32_t* pPhysicalDeviceGroupCount, PhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties, Dispatch const &d) const
  48052. {
  48053. return static_cast<Result>( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, pPhysicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties*>( pPhysicalDeviceGroupProperties ) ) );
  48054. }
  48055. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  48056. template<typename Allocator, typename Dispatch>
  48057. VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDeviceGroupProperties,Allocator>>::type Instance::enumeratePhysicalDeviceGroupsKHR(Dispatch const &d ) const
  48058. {
  48059. std::vector<PhysicalDeviceGroupProperties,Allocator> physicalDeviceGroupProperties;
  48060. uint32_t physicalDeviceGroupCount;
  48061. Result result;
  48062. do
  48063. {
  48064. result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, &physicalDeviceGroupCount, nullptr ) );
  48065. if ( ( result == Result::eSuccess ) && physicalDeviceGroupCount )
  48066. {
  48067. physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
  48068. result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, &physicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties*>( physicalDeviceGroupProperties.data() ) ) );
  48069. }
  48070. } while ( result == Result::eIncomplete );
  48071. if ( result == Result::eSuccess )
  48072. {
  48073. VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() );
  48074. physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
  48075. }
  48076. return createResultValue( result, physicalDeviceGroupProperties, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDeviceGroupsKHR" );
  48077. }
  48078. template<typename Allocator, typename Dispatch>
  48079. VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDeviceGroupProperties,Allocator>>::type Instance::enumeratePhysicalDeviceGroupsKHR(Allocator const& vectorAllocator, Dispatch const &d ) const
  48080. {
  48081. std::vector<PhysicalDeviceGroupProperties,Allocator> physicalDeviceGroupProperties( vectorAllocator );
  48082. uint32_t physicalDeviceGroupCount;
  48083. Result result;
  48084. do
  48085. {
  48086. result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, &physicalDeviceGroupCount, nullptr ) );
  48087. if ( ( result == Result::eSuccess ) && physicalDeviceGroupCount )
  48088. {
  48089. physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
  48090. result = static_cast<Result>( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, &physicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties*>( physicalDeviceGroupProperties.data() ) ) );
  48091. }
  48092. } while ( result == Result::eIncomplete );
  48093. if ( result == Result::eSuccess )
  48094. {
  48095. VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() );
  48096. physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
  48097. }
  48098. return createResultValue( result, physicalDeviceGroupProperties, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDeviceGroupsKHR" );
  48099. }
  48100. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  48101. template<typename Dispatch>
  48102. VULKAN_HPP_INLINE Result Instance::enumeratePhysicalDevices( uint32_t* pPhysicalDeviceCount, PhysicalDevice* pPhysicalDevices, Dispatch const &d) const
  48103. {
  48104. return static_cast<Result>( d.vkEnumeratePhysicalDevices( m_instance, pPhysicalDeviceCount, reinterpret_cast<VkPhysicalDevice*>( pPhysicalDevices ) ) );
  48105. }
  48106. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  48107. template<typename Allocator, typename Dispatch>
  48108. VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDevice,Allocator>>::type Instance::enumeratePhysicalDevices(Dispatch const &d ) const
  48109. {
  48110. std::vector<PhysicalDevice,Allocator> physicalDevices;
  48111. uint32_t physicalDeviceCount;
  48112. Result result;
  48113. do
  48114. {
  48115. result = static_cast<Result>( d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, nullptr ) );
  48116. if ( ( result == Result::eSuccess ) && physicalDeviceCount )
  48117. {
  48118. physicalDevices.resize( physicalDeviceCount );
  48119. result = static_cast<Result>( d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, reinterpret_cast<VkPhysicalDevice*>( physicalDevices.data() ) ) );
  48120. }
  48121. } while ( result == Result::eIncomplete );
  48122. if ( result == Result::eSuccess )
  48123. {
  48124. VULKAN_HPP_ASSERT( physicalDeviceCount <= physicalDevices.size() );
  48125. physicalDevices.resize( physicalDeviceCount );
  48126. }
  48127. return createResultValue( result, physicalDevices, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDevices" );
  48128. }
  48129. template<typename Allocator, typename Dispatch>
  48130. VULKAN_HPP_INLINE typename ResultValueType<std::vector<PhysicalDevice,Allocator>>::type Instance::enumeratePhysicalDevices(Allocator const& vectorAllocator, Dispatch const &d ) const
  48131. {
  48132. std::vector<PhysicalDevice,Allocator> physicalDevices( vectorAllocator );
  48133. uint32_t physicalDeviceCount;
  48134. Result result;
  48135. do
  48136. {
  48137. result = static_cast<Result>( d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, nullptr ) );
  48138. if ( ( result == Result::eSuccess ) && physicalDeviceCount )
  48139. {
  48140. physicalDevices.resize( physicalDeviceCount );
  48141. result = static_cast<Result>( d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, reinterpret_cast<VkPhysicalDevice*>( physicalDevices.data() ) ) );
  48142. }
  48143. } while ( result == Result::eIncomplete );
  48144. if ( result == Result::eSuccess )
  48145. {
  48146. VULKAN_HPP_ASSERT( physicalDeviceCount <= physicalDevices.size() );
  48147. physicalDevices.resize( physicalDeviceCount );
  48148. }
  48149. return createResultValue( result, physicalDevices, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDevices" );
  48150. }
  48151. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  48152. template<typename Dispatch>
  48153. VULKAN_HPP_INLINE PFN_vkVoidFunction Instance::getProcAddr( const char* pName, Dispatch const &d) const
  48154. {
  48155. return d.vkGetInstanceProcAddr( m_instance, pName );
  48156. }
  48157. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  48158. template<typename Dispatch>
  48159. VULKAN_HPP_INLINE PFN_vkVoidFunction Instance::getProcAddr( const std::string & name, Dispatch const &d ) const
  48160. {
  48161. return d.vkGetInstanceProcAddr( m_instance, name.c_str() );
  48162. }
  48163. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  48164. template<typename Dispatch>
  48165. VULKAN_HPP_INLINE void Instance::submitDebugUtilsMessageEXT( DebugUtilsMessageSeverityFlagBitsEXT messageSeverity, DebugUtilsMessageTypeFlagsEXT messageTypes, const DebugUtilsMessengerCallbackDataEXT* pCallbackData, Dispatch const &d) const
  48166. {
  48167. d.vkSubmitDebugUtilsMessageEXT( m_instance, static_cast<VkDebugUtilsMessageSeverityFlagBitsEXT>( messageSeverity ), static_cast<VkDebugUtilsMessageTypeFlagsEXT>( messageTypes ), reinterpret_cast<const VkDebugUtilsMessengerCallbackDataEXT*>( pCallbackData ) );
  48168. }
  48169. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  48170. template<typename Dispatch>
  48171. VULKAN_HPP_INLINE void Instance::submitDebugUtilsMessageEXT( DebugUtilsMessageSeverityFlagBitsEXT messageSeverity, DebugUtilsMessageTypeFlagsEXT messageTypes, const DebugUtilsMessengerCallbackDataEXT & callbackData, Dispatch const &d ) const
  48172. {
  48173. d.vkSubmitDebugUtilsMessageEXT( m_instance, static_cast<VkDebugUtilsMessageSeverityFlagBitsEXT>( messageSeverity ), static_cast<VkDebugUtilsMessageTypeFlagsEXT>( messageTypes ), reinterpret_cast<const VkDebugUtilsMessengerCallbackDataEXT*>( &callbackData ) );
  48174. }
  48175. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  48176. #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
  48177. template<typename Dispatch>
  48178. VULKAN_HPP_INLINE Result PhysicalDevice::acquireXlibDisplayEXT( Display* dpy, DisplayKHR display, Dispatch const &d) const
  48179. {
  48180. return static_cast<Result>( d.vkAcquireXlibDisplayEXT( m_physicalDevice, dpy, static_cast<VkDisplayKHR>( display ) ) );
  48181. }
  48182. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  48183. template<typename Dispatch>
  48184. VULKAN_HPP_INLINE ResultValueType<Display>::type PhysicalDevice::acquireXlibDisplayEXT( DisplayKHR display, Dispatch const &d ) const
  48185. {
  48186. Display dpy;
  48187. Result result = static_cast<Result>( d.vkAcquireXlibDisplayEXT( m_physicalDevice, &dpy, static_cast<VkDisplayKHR>( display ) ) );
  48188. return createResultValue( result, dpy, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::acquireXlibDisplayEXT" );
  48189. }
  48190. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  48191. #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
  48192. template<typename Dispatch>
  48193. VULKAN_HPP_INLINE Result PhysicalDevice::createDevice( const DeviceCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, Device* pDevice, Dispatch const &d) const
  48194. {
  48195. return static_cast<Result>( d.vkCreateDevice( m_physicalDevice, reinterpret_cast<const VkDeviceCreateInfo*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkDevice*>( pDevice ) ) );
  48196. }
  48197. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  48198. template<typename Dispatch>
  48199. VULKAN_HPP_INLINE ResultValueType<Device>::type PhysicalDevice::createDevice( const DeviceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  48200. {
  48201. Device device;
  48202. Result result = static_cast<Result>( d.vkCreateDevice( m_physicalDevice, reinterpret_cast<const VkDeviceCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDevice*>( &device ) ) );
  48203. return createResultValue( result, device, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::createDevice" );
  48204. }
  48205. #ifndef VULKAN_HPP_NO_SMART_HANDLE
  48206. template<typename Dispatch>
  48207. VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<Device,Dispatch>>::type PhysicalDevice::createDeviceUnique( const DeviceCreateInfo & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  48208. {
  48209. Device device;
  48210. Result result = static_cast<Result>( d.vkCreateDevice( m_physicalDevice, reinterpret_cast<const VkDeviceCreateInfo*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDevice*>( &device ) ) );
  48211. ObjectDestroy<NoParent,Dispatch> deleter( allocator, d );
  48212. return createResultValue<Device,Dispatch>( result, device, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::createDeviceUnique", deleter );
  48213. }
  48214. #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
  48215. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  48216. template<typename Dispatch>
  48217. VULKAN_HPP_INLINE Result PhysicalDevice::createDisplayModeKHR( DisplayKHR display, const DisplayModeCreateInfoKHR* pCreateInfo, const AllocationCallbacks* pAllocator, DisplayModeKHR* pMode, Dispatch const &d) const
  48218. {
  48219. return static_cast<Result>( d.vkCreateDisplayModeKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), reinterpret_cast<const VkDisplayModeCreateInfoKHR*>( pCreateInfo ), reinterpret_cast<const VkAllocationCallbacks*>( pAllocator ), reinterpret_cast<VkDisplayModeKHR*>( pMode ) ) );
  48220. }
  48221. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  48222. template<typename Dispatch>
  48223. VULKAN_HPP_INLINE ResultValueType<DisplayModeKHR>::type PhysicalDevice::createDisplayModeKHR( DisplayKHR display, const DisplayModeCreateInfoKHR & createInfo, Optional<const AllocationCallbacks> allocator, Dispatch const &d ) const
  48224. {
  48225. DisplayModeKHR mode;
  48226. Result result = static_cast<Result>( d.vkCreateDisplayModeKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), reinterpret_cast<const VkDisplayModeCreateInfoKHR*>( &createInfo ), reinterpret_cast<const VkAllocationCallbacks*>( static_cast<const AllocationCallbacks*>( allocator ) ), reinterpret_cast<VkDisplayModeKHR*>( &mode ) ) );
  48227. return createResultValue( result, mode, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::createDisplayModeKHR" );
  48228. }
  48229. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  48230. template<typename Dispatch>
  48231. VULKAN_HPP_INLINE Result PhysicalDevice::enumerateDeviceExtensionProperties( const char* pLayerName, uint32_t* pPropertyCount, ExtensionProperties* pProperties, Dispatch const &d) const
  48232. {
  48233. return static_cast<Result>( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, pLayerName, pPropertyCount, reinterpret_cast<VkExtensionProperties*>( pProperties ) ) );
  48234. }
  48235. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  48236. template<typename Allocator, typename Dispatch>
  48237. VULKAN_HPP_INLINE typename ResultValueType<std::vector<ExtensionProperties,Allocator>>::type PhysicalDevice::enumerateDeviceExtensionProperties( Optional<const std::string> layerName, Dispatch const &d ) const
  48238. {
  48239. std::vector<ExtensionProperties,Allocator> properties;
  48240. uint32_t propertyCount;
  48241. Result result;
  48242. do
  48243. {
  48244. result = static_cast<Result>( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) );
  48245. if ( ( result == Result::eSuccess ) && propertyCount )
  48246. {
  48247. properties.resize( propertyCount );
  48248. result = static_cast<Result>( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast<VkExtensionProperties*>( properties.data() ) ) );
  48249. }
  48250. } while ( result == Result::eIncomplete );
  48251. if ( result == Result::eSuccess )
  48252. {
  48253. VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
  48254. properties.resize( propertyCount );
  48255. }
  48256. return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateDeviceExtensionProperties" );
  48257. }
  48258. template<typename Allocator, typename Dispatch>
  48259. VULKAN_HPP_INLINE typename ResultValueType<std::vector<ExtensionProperties,Allocator>>::type PhysicalDevice::enumerateDeviceExtensionProperties( Optional<const std::string> layerName, Allocator const& vectorAllocator, Dispatch const &d ) const
  48260. {
  48261. std::vector<ExtensionProperties,Allocator> properties( vectorAllocator );
  48262. uint32_t propertyCount;
  48263. Result result;
  48264. do
  48265. {
  48266. result = static_cast<Result>( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) );
  48267. if ( ( result == Result::eSuccess ) && propertyCount )
  48268. {
  48269. properties.resize( propertyCount );
  48270. result = static_cast<Result>( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast<VkExtensionProperties*>( properties.data() ) ) );
  48271. }
  48272. } while ( result == Result::eIncomplete );
  48273. if ( result == Result::eSuccess )
  48274. {
  48275. VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
  48276. properties.resize( propertyCount );
  48277. }
  48278. return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateDeviceExtensionProperties" );
  48279. }
  48280. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  48281. template<typename Dispatch>
  48282. VULKAN_HPP_INLINE Result PhysicalDevice::enumerateDeviceLayerProperties( uint32_t* pPropertyCount, LayerProperties* pProperties, Dispatch const &d) const
  48283. {
  48284. return static_cast<Result>( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, pPropertyCount, reinterpret_cast<VkLayerProperties*>( pProperties ) ) );
  48285. }
  48286. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  48287. template<typename Allocator, typename Dispatch>
  48288. VULKAN_HPP_INLINE typename ResultValueType<std::vector<LayerProperties,Allocator>>::type PhysicalDevice::enumerateDeviceLayerProperties(Dispatch const &d ) const
  48289. {
  48290. std::vector<LayerProperties,Allocator> properties;
  48291. uint32_t propertyCount;
  48292. Result result;
  48293. do
  48294. {
  48295. result = static_cast<Result>( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, nullptr ) );
  48296. if ( ( result == Result::eSuccess ) && propertyCount )
  48297. {
  48298. properties.resize( propertyCount );
  48299. result = static_cast<Result>( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, reinterpret_cast<VkLayerProperties*>( properties.data() ) ) );
  48300. }
  48301. } while ( result == Result::eIncomplete );
  48302. if ( result == Result::eSuccess )
  48303. {
  48304. VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
  48305. properties.resize( propertyCount );
  48306. }
  48307. return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateDeviceLayerProperties" );
  48308. }
  48309. template<typename Allocator, typename Dispatch>
  48310. VULKAN_HPP_INLINE typename ResultValueType<std::vector<LayerProperties,Allocator>>::type PhysicalDevice::enumerateDeviceLayerProperties(Allocator const& vectorAllocator, Dispatch const &d ) const
  48311. {
  48312. std::vector<LayerProperties,Allocator> properties( vectorAllocator );
  48313. uint32_t propertyCount;
  48314. Result result;
  48315. do
  48316. {
  48317. result = static_cast<Result>( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, nullptr ) );
  48318. if ( ( result == Result::eSuccess ) && propertyCount )
  48319. {
  48320. properties.resize( propertyCount );
  48321. result = static_cast<Result>( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, reinterpret_cast<VkLayerProperties*>( properties.data() ) ) );
  48322. }
  48323. } while ( result == Result::eIncomplete );
  48324. if ( result == Result::eSuccess )
  48325. {
  48326. VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
  48327. properties.resize( propertyCount );
  48328. }
  48329. return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateDeviceLayerProperties" );
  48330. }
  48331. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  48332. template<typename Dispatch>
  48333. VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayModeProperties2KHR( DisplayKHR display, uint32_t* pPropertyCount, DisplayModeProperties2KHR* pProperties, Dispatch const &d) const
  48334. {
  48335. return static_cast<Result>( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), pPropertyCount, reinterpret_cast<VkDisplayModeProperties2KHR*>( pProperties ) ) );
  48336. }
  48337. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  48338. template<typename Allocator, typename Dispatch>
  48339. VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayModeProperties2KHR,Allocator>>::type PhysicalDevice::getDisplayModeProperties2KHR( DisplayKHR display, Dispatch const &d ) const
  48340. {
  48341. std::vector<DisplayModeProperties2KHR,Allocator> properties;
  48342. uint32_t propertyCount;
  48343. Result result;
  48344. do
  48345. {
  48346. result = static_cast<Result>( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, nullptr ) );
  48347. if ( ( result == Result::eSuccess ) && propertyCount )
  48348. {
  48349. properties.resize( propertyCount );
  48350. result = static_cast<Result>( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, reinterpret_cast<VkDisplayModeProperties2KHR*>( properties.data() ) ) );
  48351. }
  48352. } while ( result == Result::eIncomplete );
  48353. if ( result == Result::eSuccess )
  48354. {
  48355. VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
  48356. properties.resize( propertyCount );
  48357. }
  48358. return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayModeProperties2KHR" );
  48359. }
  48360. template<typename Allocator, typename Dispatch>
  48361. VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayModeProperties2KHR,Allocator>>::type PhysicalDevice::getDisplayModeProperties2KHR( DisplayKHR display, Allocator const& vectorAllocator, Dispatch const &d ) const
  48362. {
  48363. std::vector<DisplayModeProperties2KHR,Allocator> properties( vectorAllocator );
  48364. uint32_t propertyCount;
  48365. Result result;
  48366. do
  48367. {
  48368. result = static_cast<Result>( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, nullptr ) );
  48369. if ( ( result == Result::eSuccess ) && propertyCount )
  48370. {
  48371. properties.resize( propertyCount );
  48372. result = static_cast<Result>( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, reinterpret_cast<VkDisplayModeProperties2KHR*>( properties.data() ) ) );
  48373. }
  48374. } while ( result == Result::eIncomplete );
  48375. if ( result == Result::eSuccess )
  48376. {
  48377. VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
  48378. properties.resize( propertyCount );
  48379. }
  48380. return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayModeProperties2KHR" );
  48381. }
  48382. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  48383. template<typename Dispatch>
  48384. VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayModePropertiesKHR( DisplayKHR display, uint32_t* pPropertyCount, DisplayModePropertiesKHR* pProperties, Dispatch const &d) const
  48385. {
  48386. return static_cast<Result>( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), pPropertyCount, reinterpret_cast<VkDisplayModePropertiesKHR*>( pProperties ) ) );
  48387. }
  48388. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  48389. template<typename Allocator, typename Dispatch>
  48390. VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayModePropertiesKHR,Allocator>>::type PhysicalDevice::getDisplayModePropertiesKHR( DisplayKHR display, Dispatch const &d ) const
  48391. {
  48392. std::vector<DisplayModePropertiesKHR,Allocator> properties;
  48393. uint32_t propertyCount;
  48394. Result result;
  48395. do
  48396. {
  48397. result = static_cast<Result>( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, nullptr ) );
  48398. if ( ( result == Result::eSuccess ) && propertyCount )
  48399. {
  48400. properties.resize( propertyCount );
  48401. result = static_cast<Result>( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, reinterpret_cast<VkDisplayModePropertiesKHR*>( properties.data() ) ) );
  48402. }
  48403. } while ( result == Result::eIncomplete );
  48404. if ( result == Result::eSuccess )
  48405. {
  48406. VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
  48407. properties.resize( propertyCount );
  48408. }
  48409. return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayModePropertiesKHR" );
  48410. }
  48411. template<typename Allocator, typename Dispatch>
  48412. VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayModePropertiesKHR,Allocator>>::type PhysicalDevice::getDisplayModePropertiesKHR( DisplayKHR display, Allocator const& vectorAllocator, Dispatch const &d ) const
  48413. {
  48414. std::vector<DisplayModePropertiesKHR,Allocator> properties( vectorAllocator );
  48415. uint32_t propertyCount;
  48416. Result result;
  48417. do
  48418. {
  48419. result = static_cast<Result>( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, nullptr ) );
  48420. if ( ( result == Result::eSuccess ) && propertyCount )
  48421. {
  48422. properties.resize( propertyCount );
  48423. result = static_cast<Result>( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, reinterpret_cast<VkDisplayModePropertiesKHR*>( properties.data() ) ) );
  48424. }
  48425. } while ( result == Result::eIncomplete );
  48426. if ( result == Result::eSuccess )
  48427. {
  48428. VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
  48429. properties.resize( propertyCount );
  48430. }
  48431. return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayModePropertiesKHR" );
  48432. }
  48433. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  48434. template<typename Dispatch>
  48435. VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPlaneCapabilities2KHR( const DisplayPlaneInfo2KHR* pDisplayPlaneInfo, DisplayPlaneCapabilities2KHR* pCapabilities, Dispatch const &d) const
  48436. {
  48437. return static_cast<Result>( d.vkGetDisplayPlaneCapabilities2KHR( m_physicalDevice, reinterpret_cast<const VkDisplayPlaneInfo2KHR*>( pDisplayPlaneInfo ), reinterpret_cast<VkDisplayPlaneCapabilities2KHR*>( pCapabilities ) ) );
  48438. }
  48439. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  48440. template<typename Dispatch>
  48441. VULKAN_HPP_INLINE ResultValueType<DisplayPlaneCapabilities2KHR>::type PhysicalDevice::getDisplayPlaneCapabilities2KHR( const DisplayPlaneInfo2KHR & displayPlaneInfo, Dispatch const &d ) const
  48442. {
  48443. DisplayPlaneCapabilities2KHR capabilities;
  48444. Result result = static_cast<Result>( d.vkGetDisplayPlaneCapabilities2KHR( m_physicalDevice, reinterpret_cast<const VkDisplayPlaneInfo2KHR*>( &displayPlaneInfo ), reinterpret_cast<VkDisplayPlaneCapabilities2KHR*>( &capabilities ) ) );
  48445. return createResultValue( result, capabilities, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneCapabilities2KHR" );
  48446. }
  48447. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  48448. template<typename Dispatch>
  48449. VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPlaneCapabilitiesKHR( DisplayModeKHR mode, uint32_t planeIndex, DisplayPlaneCapabilitiesKHR* pCapabilities, Dispatch const &d) const
  48450. {
  48451. return static_cast<Result>( d.vkGetDisplayPlaneCapabilitiesKHR( m_physicalDevice, static_cast<VkDisplayModeKHR>( mode ), planeIndex, reinterpret_cast<VkDisplayPlaneCapabilitiesKHR*>( pCapabilities ) ) );
  48452. }
  48453. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  48454. template<typename Dispatch>
  48455. VULKAN_HPP_INLINE ResultValueType<DisplayPlaneCapabilitiesKHR>::type PhysicalDevice::getDisplayPlaneCapabilitiesKHR( DisplayModeKHR mode, uint32_t planeIndex, Dispatch const &d ) const
  48456. {
  48457. DisplayPlaneCapabilitiesKHR capabilities;
  48458. Result result = static_cast<Result>( d.vkGetDisplayPlaneCapabilitiesKHR( m_physicalDevice, static_cast<VkDisplayModeKHR>( mode ), planeIndex, reinterpret_cast<VkDisplayPlaneCapabilitiesKHR*>( &capabilities ) ) );
  48459. return createResultValue( result, capabilities, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneCapabilitiesKHR" );
  48460. }
  48461. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  48462. template<typename Dispatch>
  48463. VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, uint32_t* pDisplayCount, DisplayKHR* pDisplays, Dispatch const &d) const
  48464. {
  48465. return static_cast<Result>( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, pDisplayCount, reinterpret_cast<VkDisplayKHR*>( pDisplays ) ) );
  48466. }
  48467. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  48468. template<typename Allocator, typename Dispatch>
  48469. VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayKHR,Allocator>>::type PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, Dispatch const &d ) const
  48470. {
  48471. std::vector<DisplayKHR,Allocator> displays;
  48472. uint32_t displayCount;
  48473. Result result;
  48474. do
  48475. {
  48476. result = static_cast<Result>( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, nullptr ) );
  48477. if ( ( result == Result::eSuccess ) && displayCount )
  48478. {
  48479. displays.resize( displayCount );
  48480. result = static_cast<Result>( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, reinterpret_cast<VkDisplayKHR*>( displays.data() ) ) );
  48481. }
  48482. } while ( result == Result::eIncomplete );
  48483. if ( result == Result::eSuccess )
  48484. {
  48485. VULKAN_HPP_ASSERT( displayCount <= displays.size() );
  48486. displays.resize( displayCount );
  48487. }
  48488. return createResultValue( result, displays, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR" );
  48489. }
  48490. template<typename Allocator, typename Dispatch>
  48491. VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayKHR,Allocator>>::type PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, Allocator const& vectorAllocator, Dispatch const &d ) const
  48492. {
  48493. std::vector<DisplayKHR,Allocator> displays( vectorAllocator );
  48494. uint32_t displayCount;
  48495. Result result;
  48496. do
  48497. {
  48498. result = static_cast<Result>( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, nullptr ) );
  48499. if ( ( result == Result::eSuccess ) && displayCount )
  48500. {
  48501. displays.resize( displayCount );
  48502. result = static_cast<Result>( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, reinterpret_cast<VkDisplayKHR*>( displays.data() ) ) );
  48503. }
  48504. } while ( result == Result::eIncomplete );
  48505. if ( result == Result::eSuccess )
  48506. {
  48507. VULKAN_HPP_ASSERT( displayCount <= displays.size() );
  48508. displays.resize( displayCount );
  48509. }
  48510. return createResultValue( result, displays, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR" );
  48511. }
  48512. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  48513. template<typename Dispatch>
  48514. VULKAN_HPP_INLINE Result PhysicalDevice::getCalibrateableTimeDomainsEXT( uint32_t* pTimeDomainCount, TimeDomainEXT* pTimeDomains, Dispatch const &d) const
  48515. {
  48516. return static_cast<Result>( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, pTimeDomainCount, reinterpret_cast<VkTimeDomainEXT*>( pTimeDomains ) ) );
  48517. }
  48518. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  48519. template<typename Allocator, typename Dispatch>
  48520. VULKAN_HPP_INLINE typename ResultValueType<std::vector<TimeDomainEXT,Allocator>>::type PhysicalDevice::getCalibrateableTimeDomainsEXT(Dispatch const &d ) const
  48521. {
  48522. std::vector<TimeDomainEXT,Allocator> timeDomains;
  48523. uint32_t timeDomainCount;
  48524. Result result;
  48525. do
  48526. {
  48527. result = static_cast<Result>( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, nullptr ) );
  48528. if ( ( result == Result::eSuccess ) && timeDomainCount )
  48529. {
  48530. timeDomains.resize( timeDomainCount );
  48531. result = static_cast<Result>( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, reinterpret_cast<VkTimeDomainEXT*>( timeDomains.data() ) ) );
  48532. }
  48533. } while ( result == Result::eIncomplete );
  48534. if ( result == Result::eSuccess )
  48535. {
  48536. VULKAN_HPP_ASSERT( timeDomainCount <= timeDomains.size() );
  48537. timeDomains.resize( timeDomainCount );
  48538. }
  48539. return createResultValue( result, timeDomains, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getCalibrateableTimeDomainsEXT" );
  48540. }
  48541. template<typename Allocator, typename Dispatch>
  48542. VULKAN_HPP_INLINE typename ResultValueType<std::vector<TimeDomainEXT,Allocator>>::type PhysicalDevice::getCalibrateableTimeDomainsEXT(Allocator const& vectorAllocator, Dispatch const &d ) const
  48543. {
  48544. std::vector<TimeDomainEXT,Allocator> timeDomains( vectorAllocator );
  48545. uint32_t timeDomainCount;
  48546. Result result;
  48547. do
  48548. {
  48549. result = static_cast<Result>( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, nullptr ) );
  48550. if ( ( result == Result::eSuccess ) && timeDomainCount )
  48551. {
  48552. timeDomains.resize( timeDomainCount );
  48553. result = static_cast<Result>( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, reinterpret_cast<VkTimeDomainEXT*>( timeDomains.data() ) ) );
  48554. }
  48555. } while ( result == Result::eIncomplete );
  48556. if ( result == Result::eSuccess )
  48557. {
  48558. VULKAN_HPP_ASSERT( timeDomainCount <= timeDomains.size() );
  48559. timeDomains.resize( timeDomainCount );
  48560. }
  48561. return createResultValue( result, timeDomains, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getCalibrateableTimeDomainsEXT" );
  48562. }
  48563. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  48564. template<typename Dispatch>
  48565. VULKAN_HPP_INLINE Result PhysicalDevice::getCooperativeMatrixPropertiesNV( uint32_t* pPropertyCount, CooperativeMatrixPropertiesNV* pProperties, Dispatch const &d) const
  48566. {
  48567. return static_cast<Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, pPropertyCount, reinterpret_cast<VkCooperativeMatrixPropertiesNV*>( pProperties ) ) );
  48568. }
  48569. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  48570. template<typename Allocator, typename Dispatch>
  48571. VULKAN_HPP_INLINE typename ResultValueType<std::vector<CooperativeMatrixPropertiesNV,Allocator>>::type PhysicalDevice::getCooperativeMatrixPropertiesNV(Dispatch const &d ) const
  48572. {
  48573. std::vector<CooperativeMatrixPropertiesNV,Allocator> properties;
  48574. uint32_t propertyCount;
  48575. Result result;
  48576. do
  48577. {
  48578. result = static_cast<Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, &propertyCount, nullptr ) );
  48579. if ( ( result == Result::eSuccess ) && propertyCount )
  48580. {
  48581. properties.resize( propertyCount );
  48582. result = static_cast<Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, &propertyCount, reinterpret_cast<VkCooperativeMatrixPropertiesNV*>( properties.data() ) ) );
  48583. }
  48584. } while ( result == Result::eIncomplete );
  48585. if ( result == Result::eSuccess )
  48586. {
  48587. VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
  48588. properties.resize( propertyCount );
  48589. }
  48590. return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getCooperativeMatrixPropertiesNV" );
  48591. }
  48592. template<typename Allocator, typename Dispatch>
  48593. VULKAN_HPP_INLINE typename ResultValueType<std::vector<CooperativeMatrixPropertiesNV,Allocator>>::type PhysicalDevice::getCooperativeMatrixPropertiesNV(Allocator const& vectorAllocator, Dispatch const &d ) const
  48594. {
  48595. std::vector<CooperativeMatrixPropertiesNV,Allocator> properties( vectorAllocator );
  48596. uint32_t propertyCount;
  48597. Result result;
  48598. do
  48599. {
  48600. result = static_cast<Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, &propertyCount, nullptr ) );
  48601. if ( ( result == Result::eSuccess ) && propertyCount )
  48602. {
  48603. properties.resize( propertyCount );
  48604. result = static_cast<Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, &propertyCount, reinterpret_cast<VkCooperativeMatrixPropertiesNV*>( properties.data() ) ) );
  48605. }
  48606. } while ( result == Result::eIncomplete );
  48607. if ( result == Result::eSuccess )
  48608. {
  48609. VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
  48610. properties.resize( propertyCount );
  48611. }
  48612. return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getCooperativeMatrixPropertiesNV" );
  48613. }
  48614. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  48615. template<typename Dispatch>
  48616. VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPlaneProperties2KHR( uint32_t* pPropertyCount, DisplayPlaneProperties2KHR* pProperties, Dispatch const &d) const
  48617. {
  48618. return static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, pPropertyCount, reinterpret_cast<VkDisplayPlaneProperties2KHR*>( pProperties ) ) );
  48619. }
  48620. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  48621. template<typename Allocator, typename Dispatch>
  48622. VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayPlaneProperties2KHR,Allocator>>::type PhysicalDevice::getDisplayPlaneProperties2KHR(Dispatch const &d ) const
  48623. {
  48624. std::vector<DisplayPlaneProperties2KHR,Allocator> properties;
  48625. uint32_t propertyCount;
  48626. Result result;
  48627. do
  48628. {
  48629. result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) );
  48630. if ( ( result == Result::eSuccess ) && propertyCount )
  48631. {
  48632. properties.resize( propertyCount );
  48633. result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPlaneProperties2KHR*>( properties.data() ) ) );
  48634. }
  48635. } while ( result == Result::eIncomplete );
  48636. if ( result == Result::eSuccess )
  48637. {
  48638. VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
  48639. properties.resize( propertyCount );
  48640. }
  48641. return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneProperties2KHR" );
  48642. }
  48643. template<typename Allocator, typename Dispatch>
  48644. VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayPlaneProperties2KHR,Allocator>>::type PhysicalDevice::getDisplayPlaneProperties2KHR(Allocator const& vectorAllocator, Dispatch const &d ) const
  48645. {
  48646. std::vector<DisplayPlaneProperties2KHR,Allocator> properties( vectorAllocator );
  48647. uint32_t propertyCount;
  48648. Result result;
  48649. do
  48650. {
  48651. result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) );
  48652. if ( ( result == Result::eSuccess ) && propertyCount )
  48653. {
  48654. properties.resize( propertyCount );
  48655. result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPlaneProperties2KHR*>( properties.data() ) ) );
  48656. }
  48657. } while ( result == Result::eIncomplete );
  48658. if ( result == Result::eSuccess )
  48659. {
  48660. VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
  48661. properties.resize( propertyCount );
  48662. }
  48663. return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneProperties2KHR" );
  48664. }
  48665. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  48666. template<typename Dispatch>
  48667. VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPlanePropertiesKHR( uint32_t* pPropertyCount, DisplayPlanePropertiesKHR* pProperties, Dispatch const &d) const
  48668. {
  48669. return static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, pPropertyCount, reinterpret_cast<VkDisplayPlanePropertiesKHR*>( pProperties ) ) );
  48670. }
  48671. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  48672. template<typename Allocator, typename Dispatch>
  48673. VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayPlanePropertiesKHR,Allocator>>::type PhysicalDevice::getDisplayPlanePropertiesKHR(Dispatch const &d ) const
  48674. {
  48675. std::vector<DisplayPlanePropertiesKHR,Allocator> properties;
  48676. uint32_t propertyCount;
  48677. Result result;
  48678. do
  48679. {
  48680. result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) );
  48681. if ( ( result == Result::eSuccess ) && propertyCount )
  48682. {
  48683. properties.resize( propertyCount );
  48684. result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPlanePropertiesKHR*>( properties.data() ) ) );
  48685. }
  48686. } while ( result == Result::eIncomplete );
  48687. if ( result == Result::eSuccess )
  48688. {
  48689. VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
  48690. properties.resize( propertyCount );
  48691. }
  48692. return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlanePropertiesKHR" );
  48693. }
  48694. template<typename Allocator, typename Dispatch>
  48695. VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayPlanePropertiesKHR,Allocator>>::type PhysicalDevice::getDisplayPlanePropertiesKHR(Allocator const& vectorAllocator, Dispatch const &d ) const
  48696. {
  48697. std::vector<DisplayPlanePropertiesKHR,Allocator> properties( vectorAllocator );
  48698. uint32_t propertyCount;
  48699. Result result;
  48700. do
  48701. {
  48702. result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) );
  48703. if ( ( result == Result::eSuccess ) && propertyCount )
  48704. {
  48705. properties.resize( propertyCount );
  48706. result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPlanePropertiesKHR*>( properties.data() ) ) );
  48707. }
  48708. } while ( result == Result::eIncomplete );
  48709. if ( result == Result::eSuccess )
  48710. {
  48711. VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
  48712. properties.resize( propertyCount );
  48713. }
  48714. return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlanePropertiesKHR" );
  48715. }
  48716. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  48717. template<typename Dispatch>
  48718. VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayProperties2KHR( uint32_t* pPropertyCount, DisplayProperties2KHR* pProperties, Dispatch const &d) const
  48719. {
  48720. return static_cast<Result>( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, pPropertyCount, reinterpret_cast<VkDisplayProperties2KHR*>( pProperties ) ) );
  48721. }
  48722. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  48723. template<typename Allocator, typename Dispatch>
  48724. VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayProperties2KHR,Allocator>>::type PhysicalDevice::getDisplayProperties2KHR(Dispatch const &d ) const
  48725. {
  48726. std::vector<DisplayProperties2KHR,Allocator> properties;
  48727. uint32_t propertyCount;
  48728. Result result;
  48729. do
  48730. {
  48731. result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) );
  48732. if ( ( result == Result::eSuccess ) && propertyCount )
  48733. {
  48734. properties.resize( propertyCount );
  48735. result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayProperties2KHR*>( properties.data() ) ) );
  48736. }
  48737. } while ( result == Result::eIncomplete );
  48738. if ( result == Result::eSuccess )
  48739. {
  48740. VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
  48741. properties.resize( propertyCount );
  48742. }
  48743. return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayProperties2KHR" );
  48744. }
  48745. template<typename Allocator, typename Dispatch>
  48746. VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayProperties2KHR,Allocator>>::type PhysicalDevice::getDisplayProperties2KHR(Allocator const& vectorAllocator, Dispatch const &d ) const
  48747. {
  48748. std::vector<DisplayProperties2KHR,Allocator> properties( vectorAllocator );
  48749. uint32_t propertyCount;
  48750. Result result;
  48751. do
  48752. {
  48753. result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) );
  48754. if ( ( result == Result::eSuccess ) && propertyCount )
  48755. {
  48756. properties.resize( propertyCount );
  48757. result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayProperties2KHR*>( properties.data() ) ) );
  48758. }
  48759. } while ( result == Result::eIncomplete );
  48760. if ( result == Result::eSuccess )
  48761. {
  48762. VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
  48763. properties.resize( propertyCount );
  48764. }
  48765. return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayProperties2KHR" );
  48766. }
  48767. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  48768. template<typename Dispatch>
  48769. VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPropertiesKHR( uint32_t* pPropertyCount, DisplayPropertiesKHR* pProperties, Dispatch const &d) const
  48770. {
  48771. return static_cast<Result>( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, pPropertyCount, reinterpret_cast<VkDisplayPropertiesKHR*>( pProperties ) ) );
  48772. }
  48773. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  48774. template<typename Allocator, typename Dispatch>
  48775. VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayPropertiesKHR,Allocator>>::type PhysicalDevice::getDisplayPropertiesKHR(Dispatch const &d ) const
  48776. {
  48777. std::vector<DisplayPropertiesKHR,Allocator> properties;
  48778. uint32_t propertyCount;
  48779. Result result;
  48780. do
  48781. {
  48782. result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) );
  48783. if ( ( result == Result::eSuccess ) && propertyCount )
  48784. {
  48785. properties.resize( propertyCount );
  48786. result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPropertiesKHR*>( properties.data() ) ) );
  48787. }
  48788. } while ( result == Result::eIncomplete );
  48789. if ( result == Result::eSuccess )
  48790. {
  48791. VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
  48792. properties.resize( propertyCount );
  48793. }
  48794. return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPropertiesKHR" );
  48795. }
  48796. template<typename Allocator, typename Dispatch>
  48797. VULKAN_HPP_INLINE typename ResultValueType<std::vector<DisplayPropertiesKHR,Allocator>>::type PhysicalDevice::getDisplayPropertiesKHR(Allocator const& vectorAllocator, Dispatch const &d ) const
  48798. {
  48799. std::vector<DisplayPropertiesKHR,Allocator> properties( vectorAllocator );
  48800. uint32_t propertyCount;
  48801. Result result;
  48802. do
  48803. {
  48804. result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) );
  48805. if ( ( result == Result::eSuccess ) && propertyCount )
  48806. {
  48807. properties.resize( propertyCount );
  48808. result = static_cast<Result>( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPropertiesKHR*>( properties.data() ) ) );
  48809. }
  48810. } while ( result == Result::eIncomplete );
  48811. if ( result == Result::eSuccess )
  48812. {
  48813. VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
  48814. properties.resize( propertyCount );
  48815. }
  48816. return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPropertiesKHR" );
  48817. }
  48818. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  48819. template<typename Dispatch>
  48820. VULKAN_HPP_INLINE void PhysicalDevice::getExternalBufferProperties( const PhysicalDeviceExternalBufferInfo* pExternalBufferInfo, ExternalBufferProperties* pExternalBufferProperties, Dispatch const &d) const
  48821. {
  48822. d.vkGetPhysicalDeviceExternalBufferProperties( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo*>( pExternalBufferInfo ), reinterpret_cast<VkExternalBufferProperties*>( pExternalBufferProperties ) );
  48823. }
  48824. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  48825. template<typename Dispatch>
  48826. VULKAN_HPP_INLINE ExternalBufferProperties PhysicalDevice::getExternalBufferProperties( const PhysicalDeviceExternalBufferInfo & externalBufferInfo, Dispatch const &d ) const
  48827. {
  48828. ExternalBufferProperties externalBufferProperties;
  48829. d.vkGetPhysicalDeviceExternalBufferProperties( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo*>( &externalBufferInfo ), reinterpret_cast<VkExternalBufferProperties*>( &externalBufferProperties ) );
  48830. return externalBufferProperties;
  48831. }
  48832. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  48833. template<typename Dispatch>
  48834. VULKAN_HPP_INLINE void PhysicalDevice::getExternalBufferPropertiesKHR( const PhysicalDeviceExternalBufferInfo* pExternalBufferInfo, ExternalBufferProperties* pExternalBufferProperties, Dispatch const &d) const
  48835. {
  48836. d.vkGetPhysicalDeviceExternalBufferPropertiesKHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo*>( pExternalBufferInfo ), reinterpret_cast<VkExternalBufferProperties*>( pExternalBufferProperties ) );
  48837. }
  48838. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  48839. template<typename Dispatch>
  48840. VULKAN_HPP_INLINE ExternalBufferProperties PhysicalDevice::getExternalBufferPropertiesKHR( const PhysicalDeviceExternalBufferInfo & externalBufferInfo, Dispatch const &d ) const
  48841. {
  48842. ExternalBufferProperties externalBufferProperties;
  48843. d.vkGetPhysicalDeviceExternalBufferPropertiesKHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo*>( &externalBufferInfo ), reinterpret_cast<VkExternalBufferProperties*>( &externalBufferProperties ) );
  48844. return externalBufferProperties;
  48845. }
  48846. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  48847. template<typename Dispatch>
  48848. VULKAN_HPP_INLINE void PhysicalDevice::getExternalFenceProperties( const PhysicalDeviceExternalFenceInfo* pExternalFenceInfo, ExternalFenceProperties* pExternalFenceProperties, Dispatch const &d) const
  48849. {
  48850. d.vkGetPhysicalDeviceExternalFenceProperties( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo*>( pExternalFenceInfo ), reinterpret_cast<VkExternalFenceProperties*>( pExternalFenceProperties ) );
  48851. }
  48852. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  48853. template<typename Dispatch>
  48854. VULKAN_HPP_INLINE ExternalFenceProperties PhysicalDevice::getExternalFenceProperties( const PhysicalDeviceExternalFenceInfo & externalFenceInfo, Dispatch const &d ) const
  48855. {
  48856. ExternalFenceProperties externalFenceProperties;
  48857. d.vkGetPhysicalDeviceExternalFenceProperties( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo*>( &externalFenceInfo ), reinterpret_cast<VkExternalFenceProperties*>( &externalFenceProperties ) );
  48858. return externalFenceProperties;
  48859. }
  48860. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  48861. template<typename Dispatch>
  48862. VULKAN_HPP_INLINE void PhysicalDevice::getExternalFencePropertiesKHR( const PhysicalDeviceExternalFenceInfo* pExternalFenceInfo, ExternalFenceProperties* pExternalFenceProperties, Dispatch const &d) const
  48863. {
  48864. d.vkGetPhysicalDeviceExternalFencePropertiesKHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo*>( pExternalFenceInfo ), reinterpret_cast<VkExternalFenceProperties*>( pExternalFenceProperties ) );
  48865. }
  48866. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  48867. template<typename Dispatch>
  48868. VULKAN_HPP_INLINE ExternalFenceProperties PhysicalDevice::getExternalFencePropertiesKHR( const PhysicalDeviceExternalFenceInfo & externalFenceInfo, Dispatch const &d ) const
  48869. {
  48870. ExternalFenceProperties externalFenceProperties;
  48871. d.vkGetPhysicalDeviceExternalFencePropertiesKHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo*>( &externalFenceInfo ), reinterpret_cast<VkExternalFenceProperties*>( &externalFenceProperties ) );
  48872. return externalFenceProperties;
  48873. }
  48874. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  48875. template<typename Dispatch>
  48876. VULKAN_HPP_INLINE Result PhysicalDevice::getExternalImageFormatPropertiesNV( Format format, ImageType type, ImageTiling tiling, ImageUsageFlags usage, ImageCreateFlags flags, ExternalMemoryHandleTypeFlagsNV externalHandleType, ExternalImageFormatPropertiesNV* pExternalImageFormatProperties, Dispatch const &d) const
  48877. {
  48878. return static_cast<Result>( d.vkGetPhysicalDeviceExternalImageFormatPropertiesNV( m_physicalDevice, static_cast<VkFormat>( format ), static_cast<VkImageType>( type ), static_cast<VkImageTiling>( tiling ), static_cast<VkImageUsageFlags>( usage ), static_cast<VkImageCreateFlags>( flags ), static_cast<VkExternalMemoryHandleTypeFlagsNV>( externalHandleType ), reinterpret_cast<VkExternalImageFormatPropertiesNV*>( pExternalImageFormatProperties ) ) );
  48879. }
  48880. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  48881. template<typename Dispatch>
  48882. VULKAN_HPP_INLINE ResultValueType<ExternalImageFormatPropertiesNV>::type PhysicalDevice::getExternalImageFormatPropertiesNV( Format format, ImageType type, ImageTiling tiling, ImageUsageFlags usage, ImageCreateFlags flags, ExternalMemoryHandleTypeFlagsNV externalHandleType, Dispatch const &d ) const
  48883. {
  48884. ExternalImageFormatPropertiesNV externalImageFormatProperties;
  48885. Result result = static_cast<Result>( d.vkGetPhysicalDeviceExternalImageFormatPropertiesNV( m_physicalDevice, static_cast<VkFormat>( format ), static_cast<VkImageType>( type ), static_cast<VkImageTiling>( tiling ), static_cast<VkImageUsageFlags>( usage ), static_cast<VkImageCreateFlags>( flags ), static_cast<VkExternalMemoryHandleTypeFlagsNV>( externalHandleType ), reinterpret_cast<VkExternalImageFormatPropertiesNV*>( &externalImageFormatProperties ) ) );
  48886. return createResultValue( result, externalImageFormatProperties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getExternalImageFormatPropertiesNV" );
  48887. }
  48888. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  48889. template<typename Dispatch>
  48890. VULKAN_HPP_INLINE void PhysicalDevice::getExternalSemaphoreProperties( const PhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, ExternalSemaphoreProperties* pExternalSemaphoreProperties, Dispatch const &d) const
  48891. {
  48892. d.vkGetPhysicalDeviceExternalSemaphoreProperties( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo*>( pExternalSemaphoreInfo ), reinterpret_cast<VkExternalSemaphoreProperties*>( pExternalSemaphoreProperties ) );
  48893. }
  48894. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  48895. template<typename Dispatch>
  48896. VULKAN_HPP_INLINE ExternalSemaphoreProperties PhysicalDevice::getExternalSemaphoreProperties( const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, Dispatch const &d ) const
  48897. {
  48898. ExternalSemaphoreProperties externalSemaphoreProperties;
  48899. d.vkGetPhysicalDeviceExternalSemaphoreProperties( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo*>( &externalSemaphoreInfo ), reinterpret_cast<VkExternalSemaphoreProperties*>( &externalSemaphoreProperties ) );
  48900. return externalSemaphoreProperties;
  48901. }
  48902. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  48903. template<typename Dispatch>
  48904. VULKAN_HPP_INLINE void PhysicalDevice::getExternalSemaphorePropertiesKHR( const PhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, ExternalSemaphoreProperties* pExternalSemaphoreProperties, Dispatch const &d) const
  48905. {
  48906. d.vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo*>( pExternalSemaphoreInfo ), reinterpret_cast<VkExternalSemaphoreProperties*>( pExternalSemaphoreProperties ) );
  48907. }
  48908. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  48909. template<typename Dispatch>
  48910. VULKAN_HPP_INLINE ExternalSemaphoreProperties PhysicalDevice::getExternalSemaphorePropertiesKHR( const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, Dispatch const &d ) const
  48911. {
  48912. ExternalSemaphoreProperties externalSemaphoreProperties;
  48913. d.vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo*>( &externalSemaphoreInfo ), reinterpret_cast<VkExternalSemaphoreProperties*>( &externalSemaphoreProperties ) );
  48914. return externalSemaphoreProperties;
  48915. }
  48916. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  48917. template<typename Dispatch>
  48918. VULKAN_HPP_INLINE void PhysicalDevice::getFeatures( PhysicalDeviceFeatures* pFeatures, Dispatch const &d) const
  48919. {
  48920. d.vkGetPhysicalDeviceFeatures( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures*>( pFeatures ) );
  48921. }
  48922. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  48923. template<typename Dispatch>
  48924. VULKAN_HPP_INLINE PhysicalDeviceFeatures PhysicalDevice::getFeatures(Dispatch const &d ) const
  48925. {
  48926. PhysicalDeviceFeatures features;
  48927. d.vkGetPhysicalDeviceFeatures( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures*>( &features ) );
  48928. return features;
  48929. }
  48930. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  48931. template<typename Dispatch>
  48932. VULKAN_HPP_INLINE void PhysicalDevice::getFeatures2( PhysicalDeviceFeatures2* pFeatures, Dispatch const &d) const
  48933. {
  48934. d.vkGetPhysicalDeviceFeatures2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures2*>( pFeatures ) );
  48935. }
  48936. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  48937. template<typename Dispatch>
  48938. VULKAN_HPP_INLINE PhysicalDeviceFeatures2 PhysicalDevice::getFeatures2(Dispatch const &d ) const
  48939. {
  48940. PhysicalDeviceFeatures2 features;
  48941. d.vkGetPhysicalDeviceFeatures2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures2*>( &features ) );
  48942. return features;
  48943. }
  48944. template<typename X, typename Y, typename ...Z, typename Dispatch>
  48945. VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getFeatures2(Dispatch const &d ) const
  48946. {
  48947. StructureChain<X, Y, Z...> structureChain;
  48948. PhysicalDeviceFeatures2& features = structureChain.template get<PhysicalDeviceFeatures2>();
  48949. d.vkGetPhysicalDeviceFeatures2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures2*>( &features ) );
  48950. return structureChain;
  48951. }
  48952. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  48953. template<typename Dispatch>
  48954. VULKAN_HPP_INLINE void PhysicalDevice::getFeatures2KHR( PhysicalDeviceFeatures2* pFeatures, Dispatch const &d) const
  48955. {
  48956. d.vkGetPhysicalDeviceFeatures2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures2*>( pFeatures ) );
  48957. }
  48958. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  48959. template<typename Dispatch>
  48960. VULKAN_HPP_INLINE PhysicalDeviceFeatures2 PhysicalDevice::getFeatures2KHR(Dispatch const &d ) const
  48961. {
  48962. PhysicalDeviceFeatures2 features;
  48963. d.vkGetPhysicalDeviceFeatures2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures2*>( &features ) );
  48964. return features;
  48965. }
  48966. template<typename X, typename Y, typename ...Z, typename Dispatch>
  48967. VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getFeatures2KHR(Dispatch const &d ) const
  48968. {
  48969. StructureChain<X, Y, Z...> structureChain;
  48970. PhysicalDeviceFeatures2& features = structureChain.template get<PhysicalDeviceFeatures2>();
  48971. d.vkGetPhysicalDeviceFeatures2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures2*>( &features ) );
  48972. return structureChain;
  48973. }
  48974. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  48975. template<typename Dispatch>
  48976. VULKAN_HPP_INLINE void PhysicalDevice::getFormatProperties( Format format, FormatProperties* pFormatProperties, Dispatch const &d) const
  48977. {
  48978. d.vkGetPhysicalDeviceFormatProperties( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties*>( pFormatProperties ) );
  48979. }
  48980. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  48981. template<typename Dispatch>
  48982. VULKAN_HPP_INLINE FormatProperties PhysicalDevice::getFormatProperties( Format format, Dispatch const &d ) const
  48983. {
  48984. FormatProperties formatProperties;
  48985. d.vkGetPhysicalDeviceFormatProperties( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties*>( &formatProperties ) );
  48986. return formatProperties;
  48987. }
  48988. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  48989. template<typename Dispatch>
  48990. VULKAN_HPP_INLINE void PhysicalDevice::getFormatProperties2( Format format, FormatProperties2* pFormatProperties, Dispatch const &d) const
  48991. {
  48992. d.vkGetPhysicalDeviceFormatProperties2( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2*>( pFormatProperties ) );
  48993. }
  48994. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  48995. template<typename Dispatch>
  48996. VULKAN_HPP_INLINE FormatProperties2 PhysicalDevice::getFormatProperties2( Format format, Dispatch const &d ) const
  48997. {
  48998. FormatProperties2 formatProperties;
  48999. d.vkGetPhysicalDeviceFormatProperties2( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2*>( &formatProperties ) );
  49000. return formatProperties;
  49001. }
  49002. template<typename X, typename Y, typename ...Z, typename Dispatch>
  49003. VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getFormatProperties2( Format format, Dispatch const &d ) const
  49004. {
  49005. StructureChain<X, Y, Z...> structureChain;
  49006. FormatProperties2& formatProperties = structureChain.template get<FormatProperties2>();
  49007. d.vkGetPhysicalDeviceFormatProperties2( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2*>( &formatProperties ) );
  49008. return structureChain;
  49009. }
  49010. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  49011. template<typename Dispatch>
  49012. VULKAN_HPP_INLINE void PhysicalDevice::getFormatProperties2KHR( Format format, FormatProperties2* pFormatProperties, Dispatch const &d) const
  49013. {
  49014. d.vkGetPhysicalDeviceFormatProperties2KHR( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2*>( pFormatProperties ) );
  49015. }
  49016. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  49017. template<typename Dispatch>
  49018. VULKAN_HPP_INLINE FormatProperties2 PhysicalDevice::getFormatProperties2KHR( Format format, Dispatch const &d ) const
  49019. {
  49020. FormatProperties2 formatProperties;
  49021. d.vkGetPhysicalDeviceFormatProperties2KHR( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2*>( &formatProperties ) );
  49022. return formatProperties;
  49023. }
  49024. template<typename X, typename Y, typename ...Z, typename Dispatch>
  49025. VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getFormatProperties2KHR( Format format, Dispatch const &d ) const
  49026. {
  49027. StructureChain<X, Y, Z...> structureChain;
  49028. FormatProperties2& formatProperties = structureChain.template get<FormatProperties2>();
  49029. d.vkGetPhysicalDeviceFormatProperties2KHR( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2*>( &formatProperties ) );
  49030. return structureChain;
  49031. }
  49032. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  49033. template<typename Dispatch>
  49034. VULKAN_HPP_INLINE void PhysicalDevice::getGeneratedCommandsPropertiesNVX( DeviceGeneratedCommandsFeaturesNVX* pFeatures, DeviceGeneratedCommandsLimitsNVX* pLimits, Dispatch const &d) const
  49035. {
  49036. d.vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX( m_physicalDevice, reinterpret_cast<VkDeviceGeneratedCommandsFeaturesNVX*>( pFeatures ), reinterpret_cast<VkDeviceGeneratedCommandsLimitsNVX*>( pLimits ) );
  49037. }
  49038. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  49039. template<typename Dispatch>
  49040. VULKAN_HPP_INLINE DeviceGeneratedCommandsLimitsNVX PhysicalDevice::getGeneratedCommandsPropertiesNVX( DeviceGeneratedCommandsFeaturesNVX & features, Dispatch const &d ) const
  49041. {
  49042. DeviceGeneratedCommandsLimitsNVX limits;
  49043. d.vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX( m_physicalDevice, reinterpret_cast<VkDeviceGeneratedCommandsFeaturesNVX*>( &features ), reinterpret_cast<VkDeviceGeneratedCommandsLimitsNVX*>( &limits ) );
  49044. return limits;
  49045. }
  49046. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  49047. template<typename Dispatch>
  49048. VULKAN_HPP_INLINE Result PhysicalDevice::getImageFormatProperties( Format format, ImageType type, ImageTiling tiling, ImageUsageFlags usage, ImageCreateFlags flags, ImageFormatProperties* pImageFormatProperties, Dispatch const &d) const
  49049. {
  49050. return static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties( m_physicalDevice, static_cast<VkFormat>( format ), static_cast<VkImageType>( type ), static_cast<VkImageTiling>( tiling ), static_cast<VkImageUsageFlags>( usage ), static_cast<VkImageCreateFlags>( flags ), reinterpret_cast<VkImageFormatProperties*>( pImageFormatProperties ) ) );
  49051. }
  49052. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  49053. template<typename Dispatch>
  49054. VULKAN_HPP_INLINE ResultValueType<ImageFormatProperties>::type PhysicalDevice::getImageFormatProperties( Format format, ImageType type, ImageTiling tiling, ImageUsageFlags usage, ImageCreateFlags flags, Dispatch const &d ) const
  49055. {
  49056. ImageFormatProperties imageFormatProperties;
  49057. Result result = static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties( m_physicalDevice, static_cast<VkFormat>( format ), static_cast<VkImageType>( type ), static_cast<VkImageTiling>( tiling ), static_cast<VkImageUsageFlags>( usage ), static_cast<VkImageCreateFlags>( flags ), reinterpret_cast<VkImageFormatProperties*>( &imageFormatProperties ) ) );
  49058. return createResultValue( result, imageFormatProperties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getImageFormatProperties" );
  49059. }
  49060. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  49061. template<typename Dispatch>
  49062. VULKAN_HPP_INLINE Result PhysicalDevice::getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2* pImageFormatInfo, ImageFormatProperties2* pImageFormatProperties, Dispatch const &d) const
  49063. {
  49064. return static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2*>( pImageFormatInfo ), reinterpret_cast<VkImageFormatProperties2*>( pImageFormatProperties ) ) );
  49065. }
  49066. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  49067. template<typename Dispatch>
  49068. VULKAN_HPP_INLINE ResultValueType<ImageFormatProperties2>::type PhysicalDevice::getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const &d ) const
  49069. {
  49070. ImageFormatProperties2 imageFormatProperties;
  49071. Result result = static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2*>( &imageFormatInfo ), reinterpret_cast<VkImageFormatProperties2*>( &imageFormatProperties ) ) );
  49072. return createResultValue( result, imageFormatProperties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getImageFormatProperties2" );
  49073. }
  49074. template<typename X, typename Y, typename ...Z, typename Dispatch>
  49075. VULKAN_HPP_INLINE typename ResultValueType<StructureChain<X, Y, Z...>>::type PhysicalDevice::getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const &d ) const
  49076. {
  49077. StructureChain<X, Y, Z...> structureChain;
  49078. ImageFormatProperties2& imageFormatProperties = structureChain.template get<ImageFormatProperties2>();
  49079. Result result = static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2*>( &imageFormatInfo ), reinterpret_cast<VkImageFormatProperties2*>( &imageFormatProperties ) ) );
  49080. return createResultValue( result, structureChain, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getImageFormatProperties2" );
  49081. }
  49082. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  49083. template<typename Dispatch>
  49084. VULKAN_HPP_INLINE Result PhysicalDevice::getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2* pImageFormatInfo, ImageFormatProperties2* pImageFormatProperties, Dispatch const &d) const
  49085. {
  49086. return static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2*>( pImageFormatInfo ), reinterpret_cast<VkImageFormatProperties2*>( pImageFormatProperties ) ) );
  49087. }
  49088. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  49089. template<typename Dispatch>
  49090. VULKAN_HPP_INLINE ResultValueType<ImageFormatProperties2>::type PhysicalDevice::getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const &d ) const
  49091. {
  49092. ImageFormatProperties2 imageFormatProperties;
  49093. Result result = static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2*>( &imageFormatInfo ), reinterpret_cast<VkImageFormatProperties2*>( &imageFormatProperties ) ) );
  49094. return createResultValue( result, imageFormatProperties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getImageFormatProperties2KHR" );
  49095. }
  49096. template<typename X, typename Y, typename ...Z, typename Dispatch>
  49097. VULKAN_HPP_INLINE typename ResultValueType<StructureChain<X, Y, Z...>>::type PhysicalDevice::getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const &d ) const
  49098. {
  49099. StructureChain<X, Y, Z...> structureChain;
  49100. ImageFormatProperties2& imageFormatProperties = structureChain.template get<ImageFormatProperties2>();
  49101. Result result = static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2*>( &imageFormatInfo ), reinterpret_cast<VkImageFormatProperties2*>( &imageFormatProperties ) ) );
  49102. return createResultValue( result, structureChain, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getImageFormatProperties2KHR" );
  49103. }
  49104. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  49105. template<typename Dispatch>
  49106. VULKAN_HPP_INLINE void PhysicalDevice::getMemoryProperties( PhysicalDeviceMemoryProperties* pMemoryProperties, Dispatch const &d) const
  49107. {
  49108. d.vkGetPhysicalDeviceMemoryProperties( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties*>( pMemoryProperties ) );
  49109. }
  49110. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  49111. template<typename Dispatch>
  49112. VULKAN_HPP_INLINE PhysicalDeviceMemoryProperties PhysicalDevice::getMemoryProperties(Dispatch const &d ) const
  49113. {
  49114. PhysicalDeviceMemoryProperties memoryProperties;
  49115. d.vkGetPhysicalDeviceMemoryProperties( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties*>( &memoryProperties ) );
  49116. return memoryProperties;
  49117. }
  49118. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  49119. template<typename Dispatch>
  49120. VULKAN_HPP_INLINE void PhysicalDevice::getMemoryProperties2( PhysicalDeviceMemoryProperties2* pMemoryProperties, Dispatch const &d) const
  49121. {
  49122. d.vkGetPhysicalDeviceMemoryProperties2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties2*>( pMemoryProperties ) );
  49123. }
  49124. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  49125. template<typename Dispatch>
  49126. VULKAN_HPP_INLINE PhysicalDeviceMemoryProperties2 PhysicalDevice::getMemoryProperties2(Dispatch const &d ) const
  49127. {
  49128. PhysicalDeviceMemoryProperties2 memoryProperties;
  49129. d.vkGetPhysicalDeviceMemoryProperties2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties2*>( &memoryProperties ) );
  49130. return memoryProperties;
  49131. }
  49132. template<typename X, typename Y, typename ...Z, typename Dispatch>
  49133. VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getMemoryProperties2(Dispatch const &d ) const
  49134. {
  49135. StructureChain<X, Y, Z...> structureChain;
  49136. PhysicalDeviceMemoryProperties2& memoryProperties = structureChain.template get<PhysicalDeviceMemoryProperties2>();
  49137. d.vkGetPhysicalDeviceMemoryProperties2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties2*>( &memoryProperties ) );
  49138. return structureChain;
  49139. }
  49140. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  49141. template<typename Dispatch>
  49142. VULKAN_HPP_INLINE void PhysicalDevice::getMemoryProperties2KHR( PhysicalDeviceMemoryProperties2* pMemoryProperties, Dispatch const &d) const
  49143. {
  49144. d.vkGetPhysicalDeviceMemoryProperties2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties2*>( pMemoryProperties ) );
  49145. }
  49146. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  49147. template<typename Dispatch>
  49148. VULKAN_HPP_INLINE PhysicalDeviceMemoryProperties2 PhysicalDevice::getMemoryProperties2KHR(Dispatch const &d ) const
  49149. {
  49150. PhysicalDeviceMemoryProperties2 memoryProperties;
  49151. d.vkGetPhysicalDeviceMemoryProperties2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties2*>( &memoryProperties ) );
  49152. return memoryProperties;
  49153. }
  49154. template<typename X, typename Y, typename ...Z, typename Dispatch>
  49155. VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getMemoryProperties2KHR(Dispatch const &d ) const
  49156. {
  49157. StructureChain<X, Y, Z...> structureChain;
  49158. PhysicalDeviceMemoryProperties2& memoryProperties = structureChain.template get<PhysicalDeviceMemoryProperties2>();
  49159. d.vkGetPhysicalDeviceMemoryProperties2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties2*>( &memoryProperties ) );
  49160. return structureChain;
  49161. }
  49162. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  49163. template<typename Dispatch>
  49164. VULKAN_HPP_INLINE void PhysicalDevice::getMultisamplePropertiesEXT( SampleCountFlagBits samples, MultisamplePropertiesEXT* pMultisampleProperties, Dispatch const &d) const
  49165. {
  49166. d.vkGetPhysicalDeviceMultisamplePropertiesEXT( m_physicalDevice, static_cast<VkSampleCountFlagBits>( samples ), reinterpret_cast<VkMultisamplePropertiesEXT*>( pMultisampleProperties ) );
  49167. }
  49168. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  49169. template<typename Dispatch>
  49170. VULKAN_HPP_INLINE MultisamplePropertiesEXT PhysicalDevice::getMultisamplePropertiesEXT( SampleCountFlagBits samples, Dispatch const &d ) const
  49171. {
  49172. MultisamplePropertiesEXT multisampleProperties;
  49173. d.vkGetPhysicalDeviceMultisamplePropertiesEXT( m_physicalDevice, static_cast<VkSampleCountFlagBits>( samples ), reinterpret_cast<VkMultisamplePropertiesEXT*>( &multisampleProperties ) );
  49174. return multisampleProperties;
  49175. }
  49176. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  49177. template<typename Dispatch>
  49178. VULKAN_HPP_INLINE Result PhysicalDevice::getPresentRectanglesKHR( SurfaceKHR surface, uint32_t* pRectCount, Rect2D* pRects, Dispatch const &d) const
  49179. {
  49180. return static_cast<Result>( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), pRectCount, reinterpret_cast<VkRect2D*>( pRects ) ) );
  49181. }
  49182. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  49183. template<typename Allocator, typename Dispatch>
  49184. VULKAN_HPP_INLINE typename ResultValueType<std::vector<Rect2D,Allocator>>::type PhysicalDevice::getPresentRectanglesKHR( SurfaceKHR surface, Dispatch const &d ) const
  49185. {
  49186. std::vector<Rect2D,Allocator> rects;
  49187. uint32_t rectCount;
  49188. Result result;
  49189. do
  49190. {
  49191. result = static_cast<Result>( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &rectCount, nullptr ) );
  49192. if ( ( result == Result::eSuccess ) && rectCount )
  49193. {
  49194. rects.resize( rectCount );
  49195. result = static_cast<Result>( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &rectCount, reinterpret_cast<VkRect2D*>( rects.data() ) ) );
  49196. }
  49197. } while ( result == Result::eIncomplete );
  49198. if ( result == Result::eSuccess )
  49199. {
  49200. VULKAN_HPP_ASSERT( rectCount <= rects.size() );
  49201. rects.resize( rectCount );
  49202. }
  49203. return createResultValue( result, rects, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getPresentRectanglesKHR" );
  49204. }
  49205. template<typename Allocator, typename Dispatch>
  49206. VULKAN_HPP_INLINE typename ResultValueType<std::vector<Rect2D,Allocator>>::type PhysicalDevice::getPresentRectanglesKHR( SurfaceKHR surface, Allocator const& vectorAllocator, Dispatch const &d ) const
  49207. {
  49208. std::vector<Rect2D,Allocator> rects( vectorAllocator );
  49209. uint32_t rectCount;
  49210. Result result;
  49211. do
  49212. {
  49213. result = static_cast<Result>( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &rectCount, nullptr ) );
  49214. if ( ( result == Result::eSuccess ) && rectCount )
  49215. {
  49216. rects.resize( rectCount );
  49217. result = static_cast<Result>( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &rectCount, reinterpret_cast<VkRect2D*>( rects.data() ) ) );
  49218. }
  49219. } while ( result == Result::eIncomplete );
  49220. if ( result == Result::eSuccess )
  49221. {
  49222. VULKAN_HPP_ASSERT( rectCount <= rects.size() );
  49223. rects.resize( rectCount );
  49224. }
  49225. return createResultValue( result, rects, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getPresentRectanglesKHR" );
  49226. }
  49227. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  49228. template<typename Dispatch>
  49229. VULKAN_HPP_INLINE void PhysicalDevice::getProperties( PhysicalDeviceProperties* pProperties, Dispatch const &d) const
  49230. {
  49231. d.vkGetPhysicalDeviceProperties( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties*>( pProperties ) );
  49232. }
  49233. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  49234. template<typename Dispatch>
  49235. VULKAN_HPP_INLINE PhysicalDeviceProperties PhysicalDevice::getProperties(Dispatch const &d ) const
  49236. {
  49237. PhysicalDeviceProperties properties;
  49238. d.vkGetPhysicalDeviceProperties( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties*>( &properties ) );
  49239. return properties;
  49240. }
  49241. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  49242. template<typename Dispatch>
  49243. VULKAN_HPP_INLINE void PhysicalDevice::getProperties2( PhysicalDeviceProperties2* pProperties, Dispatch const &d) const
  49244. {
  49245. d.vkGetPhysicalDeviceProperties2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties2*>( pProperties ) );
  49246. }
  49247. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  49248. template<typename Dispatch>
  49249. VULKAN_HPP_INLINE PhysicalDeviceProperties2 PhysicalDevice::getProperties2(Dispatch const &d ) const
  49250. {
  49251. PhysicalDeviceProperties2 properties;
  49252. d.vkGetPhysicalDeviceProperties2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties2*>( &properties ) );
  49253. return properties;
  49254. }
  49255. template<typename X, typename Y, typename ...Z, typename Dispatch>
  49256. VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getProperties2(Dispatch const &d ) const
  49257. {
  49258. StructureChain<X, Y, Z...> structureChain;
  49259. PhysicalDeviceProperties2& properties = structureChain.template get<PhysicalDeviceProperties2>();
  49260. d.vkGetPhysicalDeviceProperties2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties2*>( &properties ) );
  49261. return structureChain;
  49262. }
  49263. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  49264. template<typename Dispatch>
  49265. VULKAN_HPP_INLINE void PhysicalDevice::getProperties2KHR( PhysicalDeviceProperties2* pProperties, Dispatch const &d) const
  49266. {
  49267. d.vkGetPhysicalDeviceProperties2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties2*>( pProperties ) );
  49268. }
  49269. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  49270. template<typename Dispatch>
  49271. VULKAN_HPP_INLINE PhysicalDeviceProperties2 PhysicalDevice::getProperties2KHR(Dispatch const &d ) const
  49272. {
  49273. PhysicalDeviceProperties2 properties;
  49274. d.vkGetPhysicalDeviceProperties2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties2*>( &properties ) );
  49275. return properties;
  49276. }
  49277. template<typename X, typename Y, typename ...Z, typename Dispatch>
  49278. VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getProperties2KHR(Dispatch const &d ) const
  49279. {
  49280. StructureChain<X, Y, Z...> structureChain;
  49281. PhysicalDeviceProperties2& properties = structureChain.template get<PhysicalDeviceProperties2>();
  49282. d.vkGetPhysicalDeviceProperties2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties2*>( &properties ) );
  49283. return structureChain;
  49284. }
  49285. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  49286. template<typename Dispatch>
  49287. VULKAN_HPP_INLINE void PhysicalDevice::getQueueFamilyProperties( uint32_t* pQueueFamilyPropertyCount, QueueFamilyProperties* pQueueFamilyProperties, Dispatch const &d) const
  49288. {
  49289. d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, pQueueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties*>( pQueueFamilyProperties ) );
  49290. }
  49291. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  49292. template<typename Allocator, typename Dispatch>
  49293. VULKAN_HPP_INLINE std::vector<QueueFamilyProperties,Allocator> PhysicalDevice::getQueueFamilyProperties(Dispatch const &d ) const
  49294. {
  49295. std::vector<QueueFamilyProperties,Allocator> queueFamilyProperties;
  49296. uint32_t queueFamilyPropertyCount;
  49297. d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
  49298. queueFamilyProperties.resize( queueFamilyPropertyCount );
  49299. d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties*>( queueFamilyProperties.data() ) );
  49300. return queueFamilyProperties;
  49301. }
  49302. template<typename Allocator, typename Dispatch>
  49303. VULKAN_HPP_INLINE std::vector<QueueFamilyProperties,Allocator> PhysicalDevice::getQueueFamilyProperties(Allocator const& vectorAllocator, Dispatch const &d ) const
  49304. {
  49305. std::vector<QueueFamilyProperties,Allocator> queueFamilyProperties( vectorAllocator );
  49306. uint32_t queueFamilyPropertyCount;
  49307. d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
  49308. queueFamilyProperties.resize( queueFamilyPropertyCount );
  49309. d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties*>( queueFamilyProperties.data() ) );
  49310. return queueFamilyProperties;
  49311. }
  49312. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  49313. template<typename Dispatch>
  49314. VULKAN_HPP_INLINE void PhysicalDevice::getQueueFamilyProperties2( uint32_t* pQueueFamilyPropertyCount, QueueFamilyProperties2* pQueueFamilyProperties, Dispatch const &d) const
  49315. {
  49316. d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, pQueueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( pQueueFamilyProperties ) );
  49317. }
  49318. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  49319. template<typename Allocator, typename Dispatch>
  49320. VULKAN_HPP_INLINE std::vector<QueueFamilyProperties2,Allocator> PhysicalDevice::getQueueFamilyProperties2(Dispatch const &d ) const
  49321. {
  49322. std::vector<QueueFamilyProperties2,Allocator> queueFamilyProperties;
  49323. uint32_t queueFamilyPropertyCount;
  49324. d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
  49325. queueFamilyProperties.resize( queueFamilyPropertyCount );
  49326. d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( queueFamilyProperties.data() ) );
  49327. return queueFamilyProperties;
  49328. }
  49329. template<typename Allocator, typename Dispatch>
  49330. VULKAN_HPP_INLINE std::vector<QueueFamilyProperties2,Allocator> PhysicalDevice::getQueueFamilyProperties2(Allocator const& vectorAllocator, Dispatch const &d ) const
  49331. {
  49332. std::vector<QueueFamilyProperties2,Allocator> queueFamilyProperties( vectorAllocator );
  49333. uint32_t queueFamilyPropertyCount;
  49334. d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
  49335. queueFamilyProperties.resize( queueFamilyPropertyCount );
  49336. d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( queueFamilyProperties.data() ) );
  49337. return queueFamilyProperties;
  49338. }
  49339. template<typename StructureChain, typename Allocator, typename Dispatch>
  49340. VULKAN_HPP_INLINE std::vector<StructureChain,Allocator> PhysicalDevice::getQueueFamilyProperties2(Dispatch const &d ) const
  49341. {
  49342. std::vector<StructureChain,Allocator> queueFamilyProperties;
  49343. uint32_t queueFamilyPropertyCount;
  49344. d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
  49345. queueFamilyProperties.resize( queueFamilyPropertyCount );
  49346. d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( queueFamilyProperties.data() ) );
  49347. return queueFamilyProperties;
  49348. }
  49349. template<typename StructureChain, typename Allocator, typename Dispatch>
  49350. VULKAN_HPP_INLINE std::vector<StructureChain,Allocator> PhysicalDevice::getQueueFamilyProperties2(Allocator const& vectorAllocator, Dispatch const &d ) const
  49351. {
  49352. std::vector<StructureChain,Allocator> queueFamilyProperties( vectorAllocator );
  49353. uint32_t queueFamilyPropertyCount;
  49354. d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
  49355. queueFamilyProperties.resize( queueFamilyPropertyCount );
  49356. d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( queueFamilyProperties.data() ) );
  49357. return queueFamilyProperties;
  49358. }
  49359. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  49360. template<typename Dispatch>
  49361. VULKAN_HPP_INLINE void PhysicalDevice::getQueueFamilyProperties2KHR( uint32_t* pQueueFamilyPropertyCount, QueueFamilyProperties2* pQueueFamilyProperties, Dispatch const &d) const
  49362. {
  49363. d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, pQueueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( pQueueFamilyProperties ) );
  49364. }
  49365. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  49366. template<typename Allocator, typename Dispatch>
  49367. VULKAN_HPP_INLINE std::vector<QueueFamilyProperties2,Allocator> PhysicalDevice::getQueueFamilyProperties2KHR(Dispatch const &d ) const
  49368. {
  49369. std::vector<QueueFamilyProperties2,Allocator> queueFamilyProperties;
  49370. uint32_t queueFamilyPropertyCount;
  49371. d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
  49372. queueFamilyProperties.resize( queueFamilyPropertyCount );
  49373. d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( queueFamilyProperties.data() ) );
  49374. return queueFamilyProperties;
  49375. }
  49376. template<typename Allocator, typename Dispatch>
  49377. VULKAN_HPP_INLINE std::vector<QueueFamilyProperties2,Allocator> PhysicalDevice::getQueueFamilyProperties2KHR(Allocator const& vectorAllocator, Dispatch const &d ) const
  49378. {
  49379. std::vector<QueueFamilyProperties2,Allocator> queueFamilyProperties( vectorAllocator );
  49380. uint32_t queueFamilyPropertyCount;
  49381. d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
  49382. queueFamilyProperties.resize( queueFamilyPropertyCount );
  49383. d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( queueFamilyProperties.data() ) );
  49384. return queueFamilyProperties;
  49385. }
  49386. template<typename StructureChain, typename Allocator, typename Dispatch>
  49387. VULKAN_HPP_INLINE std::vector<StructureChain,Allocator> PhysicalDevice::getQueueFamilyProperties2KHR(Dispatch const &d ) const
  49388. {
  49389. std::vector<StructureChain,Allocator> queueFamilyProperties;
  49390. uint32_t queueFamilyPropertyCount;
  49391. d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
  49392. queueFamilyProperties.resize( queueFamilyPropertyCount );
  49393. d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( queueFamilyProperties.data() ) );
  49394. return queueFamilyProperties;
  49395. }
  49396. template<typename StructureChain, typename Allocator, typename Dispatch>
  49397. VULKAN_HPP_INLINE std::vector<StructureChain,Allocator> PhysicalDevice::getQueueFamilyProperties2KHR(Allocator const& vectorAllocator, Dispatch const &d ) const
  49398. {
  49399. std::vector<StructureChain,Allocator> queueFamilyProperties( vectorAllocator );
  49400. uint32_t queueFamilyPropertyCount;
  49401. d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
  49402. queueFamilyProperties.resize( queueFamilyPropertyCount );
  49403. d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2*>( queueFamilyProperties.data() ) );
  49404. return queueFamilyProperties;
  49405. }
  49406. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  49407. template<typename Dispatch>
  49408. VULKAN_HPP_INLINE void PhysicalDevice::getSparseImageFormatProperties( Format format, ImageType type, SampleCountFlagBits samples, ImageUsageFlags usage, ImageTiling tiling, uint32_t* pPropertyCount, SparseImageFormatProperties* pProperties, Dispatch const &d) const
  49409. {
  49410. d.vkGetPhysicalDeviceSparseImageFormatProperties( m_physicalDevice, static_cast<VkFormat>( format ), static_cast<VkImageType>( type ), static_cast<VkSampleCountFlagBits>( samples ), static_cast<VkImageUsageFlags>( usage ), static_cast<VkImageTiling>( tiling ), pPropertyCount, reinterpret_cast<VkSparseImageFormatProperties*>( pProperties ) );
  49411. }
  49412. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  49413. template<typename Allocator, typename Dispatch>
  49414. VULKAN_HPP_INLINE std::vector<SparseImageFormatProperties,Allocator> PhysicalDevice::getSparseImageFormatProperties( Format format, ImageType type, SampleCountFlagBits samples, ImageUsageFlags usage, ImageTiling tiling, Dispatch const &d ) const
  49415. {
  49416. std::vector<SparseImageFormatProperties,Allocator> properties;
  49417. uint32_t propertyCount;
  49418. d.vkGetPhysicalDeviceSparseImageFormatProperties( m_physicalDevice, static_cast<VkFormat>( format ), static_cast<VkImageType>( type ), static_cast<VkSampleCountFlagBits>( samples ), static_cast<VkImageUsageFlags>( usage ), static_cast<VkImageTiling>( tiling ), &propertyCount, nullptr );
  49419. properties.resize( propertyCount );
  49420. d.vkGetPhysicalDeviceSparseImageFormatProperties( m_physicalDevice, static_cast<VkFormat>( format ), static_cast<VkImageType>( type ), static_cast<VkSampleCountFlagBits>( samples ), static_cast<VkImageUsageFlags>( usage ), static_cast<VkImageTiling>( tiling ), &propertyCount, reinterpret_cast<VkSparseImageFormatProperties*>( properties.data() ) );
  49421. return properties;
  49422. }
  49423. template<typename Allocator, typename Dispatch>
  49424. VULKAN_HPP_INLINE std::vector<SparseImageFormatProperties,Allocator> PhysicalDevice::getSparseImageFormatProperties( Format format, ImageType type, SampleCountFlagBits samples, ImageUsageFlags usage, ImageTiling tiling, Allocator const& vectorAllocator, Dispatch const &d ) const
  49425. {
  49426. std::vector<SparseImageFormatProperties,Allocator> properties( vectorAllocator );
  49427. uint32_t propertyCount;
  49428. d.vkGetPhysicalDeviceSparseImageFormatProperties( m_physicalDevice, static_cast<VkFormat>( format ), static_cast<VkImageType>( type ), static_cast<VkSampleCountFlagBits>( samples ), static_cast<VkImageUsageFlags>( usage ), static_cast<VkImageTiling>( tiling ), &propertyCount, nullptr );
  49429. properties.resize( propertyCount );
  49430. d.vkGetPhysicalDeviceSparseImageFormatProperties( m_physicalDevice, static_cast<VkFormat>( format ), static_cast<VkImageType>( type ), static_cast<VkSampleCountFlagBits>( samples ), static_cast<VkImageUsageFlags>( usage ), static_cast<VkImageTiling>( tiling ), &propertyCount, reinterpret_cast<VkSparseImageFormatProperties*>( properties.data() ) );
  49431. return properties;
  49432. }
  49433. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  49434. template<typename Dispatch>
  49435. VULKAN_HPP_INLINE void PhysicalDevice::getSparseImageFormatProperties2( const PhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, SparseImageFormatProperties2* pProperties, Dispatch const &d) const
  49436. {
  49437. d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2*>( pFormatInfo ), pPropertyCount, reinterpret_cast<VkSparseImageFormatProperties2*>( pProperties ) );
  49438. }
  49439. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  49440. template<typename Allocator, typename Dispatch>
  49441. VULKAN_HPP_INLINE std::vector<SparseImageFormatProperties2,Allocator> PhysicalDevice::getSparseImageFormatProperties2( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Dispatch const &d ) const
  49442. {
  49443. std::vector<SparseImageFormatProperties2,Allocator> properties;
  49444. uint32_t propertyCount;
  49445. d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2*>( &formatInfo ), &propertyCount, nullptr );
  49446. properties.resize( propertyCount );
  49447. d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2*>( &formatInfo ), &propertyCount, reinterpret_cast<VkSparseImageFormatProperties2*>( properties.data() ) );
  49448. return properties;
  49449. }
  49450. template<typename Allocator, typename Dispatch>
  49451. VULKAN_HPP_INLINE std::vector<SparseImageFormatProperties2,Allocator> PhysicalDevice::getSparseImageFormatProperties2( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Allocator const& vectorAllocator, Dispatch const &d ) const
  49452. {
  49453. std::vector<SparseImageFormatProperties2,Allocator> properties( vectorAllocator );
  49454. uint32_t propertyCount;
  49455. d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2*>( &formatInfo ), &propertyCount, nullptr );
  49456. properties.resize( propertyCount );
  49457. d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2*>( &formatInfo ), &propertyCount, reinterpret_cast<VkSparseImageFormatProperties2*>( properties.data() ) );
  49458. return properties;
  49459. }
  49460. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  49461. template<typename Dispatch>
  49462. VULKAN_HPP_INLINE void PhysicalDevice::getSparseImageFormatProperties2KHR( const PhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, SparseImageFormatProperties2* pProperties, Dispatch const &d) const
  49463. {
  49464. d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2*>( pFormatInfo ), pPropertyCount, reinterpret_cast<VkSparseImageFormatProperties2*>( pProperties ) );
  49465. }
  49466. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  49467. template<typename Allocator, typename Dispatch>
  49468. VULKAN_HPP_INLINE std::vector<SparseImageFormatProperties2,Allocator> PhysicalDevice::getSparseImageFormatProperties2KHR( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Dispatch const &d ) const
  49469. {
  49470. std::vector<SparseImageFormatProperties2,Allocator> properties;
  49471. uint32_t propertyCount;
  49472. d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2*>( &formatInfo ), &propertyCount, nullptr );
  49473. properties.resize( propertyCount );
  49474. d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2*>( &formatInfo ), &propertyCount, reinterpret_cast<VkSparseImageFormatProperties2*>( properties.data() ) );
  49475. return properties;
  49476. }
  49477. template<typename Allocator, typename Dispatch>
  49478. VULKAN_HPP_INLINE std::vector<SparseImageFormatProperties2,Allocator> PhysicalDevice::getSparseImageFormatProperties2KHR( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Allocator const& vectorAllocator, Dispatch const &d ) const
  49479. {
  49480. std::vector<SparseImageFormatProperties2,Allocator> properties( vectorAllocator );
  49481. uint32_t propertyCount;
  49482. d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2*>( &formatInfo ), &propertyCount, nullptr );
  49483. properties.resize( propertyCount );
  49484. d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2*>( &formatInfo ), &propertyCount, reinterpret_cast<VkSparseImageFormatProperties2*>( properties.data() ) );
  49485. return properties;
  49486. }
  49487. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  49488. template<typename Dispatch>
  49489. VULKAN_HPP_INLINE Result PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV( uint32_t* pCombinationCount, FramebufferMixedSamplesCombinationNV* pCombinations, Dispatch const &d) const
  49490. {
  49491. return static_cast<Result>( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, pCombinationCount, reinterpret_cast<VkFramebufferMixedSamplesCombinationNV*>( pCombinations ) ) );
  49492. }
  49493. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  49494. template<typename Allocator, typename Dispatch>
  49495. VULKAN_HPP_INLINE typename ResultValueType<std::vector<FramebufferMixedSamplesCombinationNV,Allocator>>::type PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV(Dispatch const &d ) const
  49496. {
  49497. std::vector<FramebufferMixedSamplesCombinationNV,Allocator> combinations;
  49498. uint32_t combinationCount;
  49499. Result result;
  49500. do
  49501. {
  49502. result = static_cast<Result>( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, &combinationCount, nullptr ) );
  49503. if ( ( result == Result::eSuccess ) && combinationCount )
  49504. {
  49505. combinations.resize( combinationCount );
  49506. result = static_cast<Result>( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, &combinationCount, reinterpret_cast<VkFramebufferMixedSamplesCombinationNV*>( combinations.data() ) ) );
  49507. }
  49508. } while ( result == Result::eIncomplete );
  49509. if ( result == Result::eSuccess )
  49510. {
  49511. VULKAN_HPP_ASSERT( combinationCount <= combinations.size() );
  49512. combinations.resize( combinationCount );
  49513. }
  49514. return createResultValue( result, combinations, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV" );
  49515. }
  49516. template<typename Allocator, typename Dispatch>
  49517. VULKAN_HPP_INLINE typename ResultValueType<std::vector<FramebufferMixedSamplesCombinationNV,Allocator>>::type PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV(Allocator const& vectorAllocator, Dispatch const &d ) const
  49518. {
  49519. std::vector<FramebufferMixedSamplesCombinationNV,Allocator> combinations( vectorAllocator );
  49520. uint32_t combinationCount;
  49521. Result result;
  49522. do
  49523. {
  49524. result = static_cast<Result>( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, &combinationCount, nullptr ) );
  49525. if ( ( result == Result::eSuccess ) && combinationCount )
  49526. {
  49527. combinations.resize( combinationCount );
  49528. result = static_cast<Result>( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, &combinationCount, reinterpret_cast<VkFramebufferMixedSamplesCombinationNV*>( combinations.data() ) ) );
  49529. }
  49530. } while ( result == Result::eIncomplete );
  49531. if ( result == Result::eSuccess )
  49532. {
  49533. VULKAN_HPP_ASSERT( combinationCount <= combinations.size() );
  49534. combinations.resize( combinationCount );
  49535. }
  49536. return createResultValue( result, combinations, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV" );
  49537. }
  49538. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  49539. template<typename Dispatch>
  49540. VULKAN_HPP_INLINE Result PhysicalDevice::getSurfaceCapabilities2EXT( SurfaceKHR surface, SurfaceCapabilities2EXT* pSurfaceCapabilities, Dispatch const &d) const
  49541. {
  49542. return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilities2EXT( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkSurfaceCapabilities2EXT*>( pSurfaceCapabilities ) ) );
  49543. }
  49544. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  49545. template<typename Dispatch>
  49546. VULKAN_HPP_INLINE ResultValueType<SurfaceCapabilities2EXT>::type PhysicalDevice::getSurfaceCapabilities2EXT( SurfaceKHR surface, Dispatch const &d ) const
  49547. {
  49548. SurfaceCapabilities2EXT surfaceCapabilities;
  49549. Result result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilities2EXT( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkSurfaceCapabilities2EXT*>( &surfaceCapabilities ) ) );
  49550. return createResultValue( result, surfaceCapabilities, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceCapabilities2EXT" );
  49551. }
  49552. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  49553. template<typename Dispatch>
  49554. VULKAN_HPP_INLINE Result PhysicalDevice::getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, SurfaceCapabilities2KHR* pSurfaceCapabilities, Dispatch const &d) const
  49555. {
  49556. return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilities2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( pSurfaceInfo ), reinterpret_cast<VkSurfaceCapabilities2KHR*>( pSurfaceCapabilities ) ) );
  49557. }
  49558. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  49559. template<typename Dispatch>
  49560. VULKAN_HPP_INLINE ResultValueType<SurfaceCapabilities2KHR>::type PhysicalDevice::getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d ) const
  49561. {
  49562. SurfaceCapabilities2KHR surfaceCapabilities;
  49563. Result result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilities2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), reinterpret_cast<VkSurfaceCapabilities2KHR*>( &surfaceCapabilities ) ) );
  49564. return createResultValue( result, surfaceCapabilities, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceCapabilities2KHR" );
  49565. }
  49566. template<typename X, typename Y, typename ...Z, typename Dispatch>
  49567. VULKAN_HPP_INLINE typename ResultValueType<StructureChain<X, Y, Z...>>::type PhysicalDevice::getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d ) const
  49568. {
  49569. StructureChain<X, Y, Z...> structureChain;
  49570. SurfaceCapabilities2KHR& surfaceCapabilities = structureChain.template get<SurfaceCapabilities2KHR>();
  49571. Result result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilities2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), reinterpret_cast<VkSurfaceCapabilities2KHR*>( &surfaceCapabilities ) ) );
  49572. return createResultValue( result, structureChain, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceCapabilities2KHR" );
  49573. }
  49574. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  49575. template<typename Dispatch>
  49576. VULKAN_HPP_INLINE Result PhysicalDevice::getSurfaceCapabilitiesKHR( SurfaceKHR surface, SurfaceCapabilitiesKHR* pSurfaceCapabilities, Dispatch const &d) const
  49577. {
  49578. return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilitiesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkSurfaceCapabilitiesKHR*>( pSurfaceCapabilities ) ) );
  49579. }
  49580. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  49581. template<typename Dispatch>
  49582. VULKAN_HPP_INLINE ResultValueType<SurfaceCapabilitiesKHR>::type PhysicalDevice::getSurfaceCapabilitiesKHR( SurfaceKHR surface, Dispatch const &d ) const
  49583. {
  49584. SurfaceCapabilitiesKHR surfaceCapabilities;
  49585. Result result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilitiesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkSurfaceCapabilitiesKHR*>( &surfaceCapabilities ) ) );
  49586. return createResultValue( result, surfaceCapabilities, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceCapabilitiesKHR" );
  49587. }
  49588. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  49589. template<typename Dispatch>
  49590. VULKAN_HPP_INLINE Result PhysicalDevice::getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, SurfaceFormat2KHR* pSurfaceFormats, Dispatch const &d) const
  49591. {
  49592. return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( pSurfaceInfo ), pSurfaceFormatCount, reinterpret_cast<VkSurfaceFormat2KHR*>( pSurfaceFormats ) ) );
  49593. }
  49594. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  49595. template<typename Allocator, typename Dispatch>
  49596. VULKAN_HPP_INLINE typename ResultValueType<std::vector<SurfaceFormat2KHR,Allocator>>::type PhysicalDevice::getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d ) const
  49597. {
  49598. std::vector<SurfaceFormat2KHR,Allocator> surfaceFormats;
  49599. uint32_t surfaceFormatCount;
  49600. Result result;
  49601. do
  49602. {
  49603. result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), &surfaceFormatCount, nullptr ) );
  49604. if ( ( result == Result::eSuccess ) && surfaceFormatCount )
  49605. {
  49606. surfaceFormats.resize( surfaceFormatCount );
  49607. result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), &surfaceFormatCount, reinterpret_cast<VkSurfaceFormat2KHR*>( surfaceFormats.data() ) ) );
  49608. }
  49609. } while ( result == Result::eIncomplete );
  49610. if ( result == Result::eSuccess )
  49611. {
  49612. VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() );
  49613. surfaceFormats.resize( surfaceFormatCount );
  49614. }
  49615. return createResultValue( result, surfaceFormats, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceFormats2KHR" );
  49616. }
  49617. template<typename Allocator, typename Dispatch>
  49618. VULKAN_HPP_INLINE typename ResultValueType<std::vector<SurfaceFormat2KHR,Allocator>>::type PhysicalDevice::getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Allocator const& vectorAllocator, Dispatch const &d ) const
  49619. {
  49620. std::vector<SurfaceFormat2KHR,Allocator> surfaceFormats( vectorAllocator );
  49621. uint32_t surfaceFormatCount;
  49622. Result result;
  49623. do
  49624. {
  49625. result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), &surfaceFormatCount, nullptr ) );
  49626. if ( ( result == Result::eSuccess ) && surfaceFormatCount )
  49627. {
  49628. surfaceFormats.resize( surfaceFormatCount );
  49629. result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), &surfaceFormatCount, reinterpret_cast<VkSurfaceFormat2KHR*>( surfaceFormats.data() ) ) );
  49630. }
  49631. } while ( result == Result::eIncomplete );
  49632. if ( result == Result::eSuccess )
  49633. {
  49634. VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() );
  49635. surfaceFormats.resize( surfaceFormatCount );
  49636. }
  49637. return createResultValue( result, surfaceFormats, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceFormats2KHR" );
  49638. }
  49639. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  49640. template<typename Dispatch>
  49641. VULKAN_HPP_INLINE Result PhysicalDevice::getSurfaceFormatsKHR( SurfaceKHR surface, uint32_t* pSurfaceFormatCount, SurfaceFormatKHR* pSurfaceFormats, Dispatch const &d) const
  49642. {
  49643. return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), pSurfaceFormatCount, reinterpret_cast<VkSurfaceFormatKHR*>( pSurfaceFormats ) ) );
  49644. }
  49645. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  49646. template<typename Allocator, typename Dispatch>
  49647. VULKAN_HPP_INLINE typename ResultValueType<std::vector<SurfaceFormatKHR,Allocator>>::type PhysicalDevice::getSurfaceFormatsKHR( SurfaceKHR surface, Dispatch const &d ) const
  49648. {
  49649. std::vector<SurfaceFormatKHR,Allocator> surfaceFormats;
  49650. uint32_t surfaceFormatCount;
  49651. Result result;
  49652. do
  49653. {
  49654. result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &surfaceFormatCount, nullptr ) );
  49655. if ( ( result == Result::eSuccess ) && surfaceFormatCount )
  49656. {
  49657. surfaceFormats.resize( surfaceFormatCount );
  49658. result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &surfaceFormatCount, reinterpret_cast<VkSurfaceFormatKHR*>( surfaceFormats.data() ) ) );
  49659. }
  49660. } while ( result == Result::eIncomplete );
  49661. if ( result == Result::eSuccess )
  49662. {
  49663. VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() );
  49664. surfaceFormats.resize( surfaceFormatCount );
  49665. }
  49666. return createResultValue( result, surfaceFormats, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceFormatsKHR" );
  49667. }
  49668. template<typename Allocator, typename Dispatch>
  49669. VULKAN_HPP_INLINE typename ResultValueType<std::vector<SurfaceFormatKHR,Allocator>>::type PhysicalDevice::getSurfaceFormatsKHR( SurfaceKHR surface, Allocator const& vectorAllocator, Dispatch const &d ) const
  49670. {
  49671. std::vector<SurfaceFormatKHR,Allocator> surfaceFormats( vectorAllocator );
  49672. uint32_t surfaceFormatCount;
  49673. Result result;
  49674. do
  49675. {
  49676. result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &surfaceFormatCount, nullptr ) );
  49677. if ( ( result == Result::eSuccess ) && surfaceFormatCount )
  49678. {
  49679. surfaceFormats.resize( surfaceFormatCount );
  49680. result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &surfaceFormatCount, reinterpret_cast<VkSurfaceFormatKHR*>( surfaceFormats.data() ) ) );
  49681. }
  49682. } while ( result == Result::eIncomplete );
  49683. if ( result == Result::eSuccess )
  49684. {
  49685. VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() );
  49686. surfaceFormats.resize( surfaceFormatCount );
  49687. }
  49688. return createResultValue( result, surfaceFormats, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceFormatsKHR" );
  49689. }
  49690. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  49691. #ifdef VK_USE_PLATFORM_WIN32_KHR
  49692. template<typename Dispatch>
  49693. VULKAN_HPP_INLINE Result PhysicalDevice::getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, PresentModeKHR* pPresentModes, Dispatch const &d) const
  49694. {
  49695. return static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( pSurfaceInfo ), pPresentModeCount, reinterpret_cast<VkPresentModeKHR*>( pPresentModes ) ) );
  49696. }
  49697. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  49698. template<typename Allocator, typename Dispatch>
  49699. VULKAN_HPP_INLINE typename ResultValueType<std::vector<PresentModeKHR,Allocator>>::type PhysicalDevice::getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const &d ) const
  49700. {
  49701. std::vector<PresentModeKHR,Allocator> presentModes;
  49702. uint32_t presentModeCount;
  49703. Result result;
  49704. do
  49705. {
  49706. result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), &presentModeCount, nullptr ) );
  49707. if ( ( result == Result::eSuccess ) && presentModeCount )
  49708. {
  49709. presentModes.resize( presentModeCount );
  49710. result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), &presentModeCount, reinterpret_cast<VkPresentModeKHR*>( presentModes.data() ) ) );
  49711. }
  49712. } while ( result == Result::eIncomplete );
  49713. if ( result == Result::eSuccess )
  49714. {
  49715. VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() );
  49716. presentModes.resize( presentModeCount );
  49717. }
  49718. return createResultValue( result, presentModes, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfacePresentModes2EXT" );
  49719. }
  49720. template<typename Allocator, typename Dispatch>
  49721. VULKAN_HPP_INLINE typename ResultValueType<std::vector<PresentModeKHR,Allocator>>::type PhysicalDevice::getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Allocator const& vectorAllocator, Dispatch const &d ) const
  49722. {
  49723. std::vector<PresentModeKHR,Allocator> presentModes( vectorAllocator );
  49724. uint32_t presentModeCount;
  49725. Result result;
  49726. do
  49727. {
  49728. result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), &presentModeCount, nullptr ) );
  49729. if ( ( result == Result::eSuccess ) && presentModeCount )
  49730. {
  49731. presentModes.resize( presentModeCount );
  49732. result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR*>( &surfaceInfo ), &presentModeCount, reinterpret_cast<VkPresentModeKHR*>( presentModes.data() ) ) );
  49733. }
  49734. } while ( result == Result::eIncomplete );
  49735. if ( result == Result::eSuccess )
  49736. {
  49737. VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() );
  49738. presentModes.resize( presentModeCount );
  49739. }
  49740. return createResultValue( result, presentModes, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfacePresentModes2EXT" );
  49741. }
  49742. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  49743. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  49744. template<typename Dispatch>
  49745. VULKAN_HPP_INLINE Result PhysicalDevice::getSurfacePresentModesKHR( SurfaceKHR surface, uint32_t* pPresentModeCount, PresentModeKHR* pPresentModes, Dispatch const &d) const
  49746. {
  49747. return static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), pPresentModeCount, reinterpret_cast<VkPresentModeKHR*>( pPresentModes ) ) );
  49748. }
  49749. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  49750. template<typename Allocator, typename Dispatch>
  49751. VULKAN_HPP_INLINE typename ResultValueType<std::vector<PresentModeKHR,Allocator>>::type PhysicalDevice::getSurfacePresentModesKHR( SurfaceKHR surface, Dispatch const &d ) const
  49752. {
  49753. std::vector<PresentModeKHR,Allocator> presentModes;
  49754. uint32_t presentModeCount;
  49755. Result result;
  49756. do
  49757. {
  49758. result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &presentModeCount, nullptr ) );
  49759. if ( ( result == Result::eSuccess ) && presentModeCount )
  49760. {
  49761. presentModes.resize( presentModeCount );
  49762. result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &presentModeCount, reinterpret_cast<VkPresentModeKHR*>( presentModes.data() ) ) );
  49763. }
  49764. } while ( result == Result::eIncomplete );
  49765. if ( result == Result::eSuccess )
  49766. {
  49767. VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() );
  49768. presentModes.resize( presentModeCount );
  49769. }
  49770. return createResultValue( result, presentModes, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfacePresentModesKHR" );
  49771. }
  49772. template<typename Allocator, typename Dispatch>
  49773. VULKAN_HPP_INLINE typename ResultValueType<std::vector<PresentModeKHR,Allocator>>::type PhysicalDevice::getSurfacePresentModesKHR( SurfaceKHR surface, Allocator const& vectorAllocator, Dispatch const &d ) const
  49774. {
  49775. std::vector<PresentModeKHR,Allocator> presentModes( vectorAllocator );
  49776. uint32_t presentModeCount;
  49777. Result result;
  49778. do
  49779. {
  49780. result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &presentModeCount, nullptr ) );
  49781. if ( ( result == Result::eSuccess ) && presentModeCount )
  49782. {
  49783. presentModes.resize( presentModeCount );
  49784. result = static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &presentModeCount, reinterpret_cast<VkPresentModeKHR*>( presentModes.data() ) ) );
  49785. }
  49786. } while ( result == Result::eIncomplete );
  49787. if ( result == Result::eSuccess )
  49788. {
  49789. VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() );
  49790. presentModes.resize( presentModeCount );
  49791. }
  49792. return createResultValue( result, presentModes, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfacePresentModesKHR" );
  49793. }
  49794. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  49795. template<typename Dispatch>
  49796. VULKAN_HPP_INLINE Result PhysicalDevice::getSurfaceSupportKHR( uint32_t queueFamilyIndex, SurfaceKHR surface, Bool32* pSupported, Dispatch const &d) const
  49797. {
  49798. return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceSupportKHR( m_physicalDevice, queueFamilyIndex, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkBool32*>( pSupported ) ) );
  49799. }
  49800. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  49801. template<typename Dispatch>
  49802. VULKAN_HPP_INLINE ResultValueType<Bool32>::type PhysicalDevice::getSurfaceSupportKHR( uint32_t queueFamilyIndex, SurfaceKHR surface, Dispatch const &d ) const
  49803. {
  49804. Bool32 supported;
  49805. Result result = static_cast<Result>( d.vkGetPhysicalDeviceSurfaceSupportKHR( m_physicalDevice, queueFamilyIndex, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkBool32*>( &supported ) ) );
  49806. return createResultValue( result, supported, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceSupportKHR" );
  49807. }
  49808. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  49809. #ifdef VK_USE_PLATFORM_WAYLAND_KHR
  49810. template<typename Dispatch>
  49811. VULKAN_HPP_INLINE Bool32 PhysicalDevice::getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display* display, Dispatch const &d) const
  49812. {
  49813. return static_cast<Bool32>( d.vkGetPhysicalDeviceWaylandPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, display ) );
  49814. }
  49815. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  49816. template<typename Dispatch>
  49817. VULKAN_HPP_INLINE Bool32 PhysicalDevice::getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display & display, Dispatch const &d ) const
  49818. {
  49819. return d.vkGetPhysicalDeviceWaylandPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, &display );
  49820. }
  49821. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  49822. #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
  49823. #ifdef VK_USE_PLATFORM_WIN32_KHR
  49824. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  49825. template<typename Dispatch>
  49826. VULKAN_HPP_INLINE Bool32 PhysicalDevice::getWin32PresentationSupportKHR( uint32_t queueFamilyIndex, Dispatch const &d) const
  49827. {
  49828. return static_cast<Bool32>( d.vkGetPhysicalDeviceWin32PresentationSupportKHR( m_physicalDevice, queueFamilyIndex ) );
  49829. }
  49830. #else
  49831. template<typename Dispatch>
  49832. VULKAN_HPP_INLINE Bool32 PhysicalDevice::getWin32PresentationSupportKHR( uint32_t queueFamilyIndex, Dispatch const &d ) const
  49833. {
  49834. return d.vkGetPhysicalDeviceWin32PresentationSupportKHR( m_physicalDevice, queueFamilyIndex );
  49835. }
  49836. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  49837. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  49838. #ifdef VK_USE_PLATFORM_XCB_KHR
  49839. template<typename Dispatch>
  49840. VULKAN_HPP_INLINE Bool32 PhysicalDevice::getXcbPresentationSupportKHR( uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id, Dispatch const &d) const
  49841. {
  49842. return static_cast<Bool32>( d.vkGetPhysicalDeviceXcbPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, connection, visual_id ) );
  49843. }
  49844. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  49845. template<typename Dispatch>
  49846. VULKAN_HPP_INLINE Bool32 PhysicalDevice::getXcbPresentationSupportKHR( uint32_t queueFamilyIndex, xcb_connection_t & connection, xcb_visualid_t visual_id, Dispatch const &d ) const
  49847. {
  49848. return d.vkGetPhysicalDeviceXcbPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, &connection, visual_id );
  49849. }
  49850. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  49851. #endif /*VK_USE_PLATFORM_XCB_KHR*/
  49852. #ifdef VK_USE_PLATFORM_XLIB_KHR
  49853. template<typename Dispatch>
  49854. VULKAN_HPP_INLINE Bool32 PhysicalDevice::getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display* dpy, VisualID visualID, Dispatch const &d) const
  49855. {
  49856. return static_cast<Bool32>( d.vkGetPhysicalDeviceXlibPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, dpy, visualID ) );
  49857. }
  49858. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  49859. template<typename Dispatch>
  49860. VULKAN_HPP_INLINE Bool32 PhysicalDevice::getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display & dpy, VisualID visualID, Dispatch const &d ) const
  49861. {
  49862. return d.vkGetPhysicalDeviceXlibPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, &dpy, visualID );
  49863. }
  49864. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  49865. #endif /*VK_USE_PLATFORM_XLIB_KHR*/
  49866. #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
  49867. template<typename Dispatch>
  49868. VULKAN_HPP_INLINE Result PhysicalDevice::getRandROutputDisplayEXT( Display* dpy, RROutput rrOutput, DisplayKHR* pDisplay, Dispatch const &d) const
  49869. {
  49870. return static_cast<Result>( d.vkGetRandROutputDisplayEXT( m_physicalDevice, dpy, rrOutput, reinterpret_cast<VkDisplayKHR*>( pDisplay ) ) );
  49871. }
  49872. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  49873. template<typename Dispatch>
  49874. VULKAN_HPP_INLINE ResultValueType<DisplayKHR>::type PhysicalDevice::getRandROutputDisplayEXT( Display & dpy, RROutput rrOutput, Dispatch const &d ) const
  49875. {
  49876. DisplayKHR display;
  49877. Result result = static_cast<Result>( d.vkGetRandROutputDisplayEXT( m_physicalDevice, &dpy, rrOutput, reinterpret_cast<VkDisplayKHR*>( &display ) ) );
  49878. return createResultValue( result, display, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getRandROutputDisplayEXT" );
  49879. }
  49880. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  49881. #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
  49882. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  49883. template<typename Dispatch>
  49884. VULKAN_HPP_INLINE Result PhysicalDevice::releaseDisplayEXT( DisplayKHR display, Dispatch const &d) const
  49885. {
  49886. return static_cast<Result>( d.vkReleaseDisplayEXT( m_physicalDevice, static_cast<VkDisplayKHR>( display ) ) );
  49887. }
  49888. #else
  49889. template<typename Dispatch>
  49890. VULKAN_HPP_INLINE ResultValueType<void>::type PhysicalDevice::releaseDisplayEXT( DisplayKHR display, Dispatch const &d ) const
  49891. {
  49892. Result result = static_cast<Result>( d.vkReleaseDisplayEXT( m_physicalDevice, static_cast<VkDisplayKHR>( display ) ) );
  49893. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::releaseDisplayEXT" );
  49894. }
  49895. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  49896. template<typename Dispatch>
  49897. VULKAN_HPP_INLINE void Queue::getCheckpointDataNV( uint32_t* pCheckpointDataCount, CheckpointDataNV* pCheckpointData, Dispatch const &d) const
  49898. {
  49899. d.vkGetQueueCheckpointDataNV( m_queue, pCheckpointDataCount, reinterpret_cast<VkCheckpointDataNV*>( pCheckpointData ) );
  49900. }
  49901. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  49902. template<typename Allocator, typename Dispatch>
  49903. VULKAN_HPP_INLINE std::vector<CheckpointDataNV,Allocator> Queue::getCheckpointDataNV(Dispatch const &d ) const
  49904. {
  49905. std::vector<CheckpointDataNV,Allocator> checkpointData;
  49906. uint32_t checkpointDataCount;
  49907. d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, nullptr );
  49908. checkpointData.resize( checkpointDataCount );
  49909. d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, reinterpret_cast<VkCheckpointDataNV*>( checkpointData.data() ) );
  49910. return checkpointData;
  49911. }
  49912. template<typename Allocator, typename Dispatch>
  49913. VULKAN_HPP_INLINE std::vector<CheckpointDataNV,Allocator> Queue::getCheckpointDataNV(Allocator const& vectorAllocator, Dispatch const &d ) const
  49914. {
  49915. std::vector<CheckpointDataNV,Allocator> checkpointData( vectorAllocator );
  49916. uint32_t checkpointDataCount;
  49917. d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, nullptr );
  49918. checkpointData.resize( checkpointDataCount );
  49919. d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, reinterpret_cast<VkCheckpointDataNV*>( checkpointData.data() ) );
  49920. return checkpointData;
  49921. }
  49922. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  49923. template<typename Dispatch>
  49924. VULKAN_HPP_INLINE void Queue::beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT* pLabelInfo, Dispatch const &d) const
  49925. {
  49926. d.vkQueueBeginDebugUtilsLabelEXT( m_queue, reinterpret_cast<const VkDebugUtilsLabelEXT*>( pLabelInfo ) );
  49927. }
  49928. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  49929. template<typename Dispatch>
  49930. VULKAN_HPP_INLINE void Queue::beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const &d ) const
  49931. {
  49932. d.vkQueueBeginDebugUtilsLabelEXT( m_queue, reinterpret_cast<const VkDebugUtilsLabelEXT*>( &labelInfo ) );
  49933. }
  49934. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  49935. template<typename Dispatch>
  49936. VULKAN_HPP_INLINE Result Queue::bindSparse( uint32_t bindInfoCount, const BindSparseInfo* pBindInfo, Fence fence, Dispatch const &d) const
  49937. {
  49938. return static_cast<Result>( d.vkQueueBindSparse( m_queue, bindInfoCount, reinterpret_cast<const VkBindSparseInfo*>( pBindInfo ), static_cast<VkFence>( fence ) ) );
  49939. }
  49940. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  49941. template<typename Dispatch>
  49942. VULKAN_HPP_INLINE ResultValueType<void>::type Queue::bindSparse( ArrayProxy<const BindSparseInfo> bindInfo, Fence fence, Dispatch const &d ) const
  49943. {
  49944. Result result = static_cast<Result>( d.vkQueueBindSparse( m_queue, bindInfo.size() , reinterpret_cast<const VkBindSparseInfo*>( bindInfo.data() ), static_cast<VkFence>( fence ) ) );
  49945. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Queue::bindSparse" );
  49946. }
  49947. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  49948. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  49949. template<typename Dispatch>
  49950. VULKAN_HPP_INLINE void Queue::endDebugUtilsLabelEXT(Dispatch const &d) const
  49951. {
  49952. d.vkQueueEndDebugUtilsLabelEXT( m_queue );
  49953. }
  49954. #else
  49955. template<typename Dispatch>
  49956. VULKAN_HPP_INLINE void Queue::endDebugUtilsLabelEXT(Dispatch const &d ) const
  49957. {
  49958. d.vkQueueEndDebugUtilsLabelEXT( m_queue );
  49959. }
  49960. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  49961. template<typename Dispatch>
  49962. VULKAN_HPP_INLINE void Queue::insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT* pLabelInfo, Dispatch const &d) const
  49963. {
  49964. d.vkQueueInsertDebugUtilsLabelEXT( m_queue, reinterpret_cast<const VkDebugUtilsLabelEXT*>( pLabelInfo ) );
  49965. }
  49966. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  49967. template<typename Dispatch>
  49968. VULKAN_HPP_INLINE void Queue::insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const &d ) const
  49969. {
  49970. d.vkQueueInsertDebugUtilsLabelEXT( m_queue, reinterpret_cast<const VkDebugUtilsLabelEXT*>( &labelInfo ) );
  49971. }
  49972. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  49973. template<typename Dispatch>
  49974. VULKAN_HPP_INLINE Result Queue::presentKHR( const PresentInfoKHR* pPresentInfo, Dispatch const &d) const
  49975. {
  49976. return static_cast<Result>( d.vkQueuePresentKHR( m_queue, reinterpret_cast<const VkPresentInfoKHR*>( pPresentInfo ) ) );
  49977. }
  49978. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  49979. template<typename Dispatch>
  49980. VULKAN_HPP_INLINE Result Queue::presentKHR( const PresentInfoKHR & presentInfo, Dispatch const &d ) const
  49981. {
  49982. Result result = static_cast<Result>( d.vkQueuePresentKHR( m_queue, reinterpret_cast<const VkPresentInfoKHR*>( &presentInfo ) ) );
  49983. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Queue::presentKHR", { Result::eSuccess, Result::eSuboptimalKHR } );
  49984. }
  49985. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  49986. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  49987. template<typename Dispatch>
  49988. VULKAN_HPP_INLINE Result Queue::setPerformanceConfigurationINTEL( PerformanceConfigurationINTEL configuration, Dispatch const &d) const
  49989. {
  49990. return static_cast<Result>( d.vkQueueSetPerformanceConfigurationINTEL( m_queue, static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
  49991. }
  49992. #else
  49993. template<typename Dispatch>
  49994. VULKAN_HPP_INLINE ResultValueType<void>::type Queue::setPerformanceConfigurationINTEL( PerformanceConfigurationINTEL configuration, Dispatch const &d ) const
  49995. {
  49996. Result result = static_cast<Result>( d.vkQueueSetPerformanceConfigurationINTEL( m_queue, static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
  49997. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Queue::setPerformanceConfigurationINTEL" );
  49998. }
  49999. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  50000. template<typename Dispatch>
  50001. VULKAN_HPP_INLINE Result Queue::submit( uint32_t submitCount, const SubmitInfo* pSubmits, Fence fence, Dispatch const &d) const
  50002. {
  50003. return static_cast<Result>( d.vkQueueSubmit( m_queue, submitCount, reinterpret_cast<const VkSubmitInfo*>( pSubmits ), static_cast<VkFence>( fence ) ) );
  50004. }
  50005. #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
  50006. template<typename Dispatch>
  50007. VULKAN_HPP_INLINE ResultValueType<void>::type Queue::submit( ArrayProxy<const SubmitInfo> submits, Fence fence, Dispatch const &d ) const
  50008. {
  50009. Result result = static_cast<Result>( d.vkQueueSubmit( m_queue, submits.size() , reinterpret_cast<const VkSubmitInfo*>( submits.data() ), static_cast<VkFence>( fence ) ) );
  50010. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Queue::submit" );
  50011. }
  50012. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  50013. #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
  50014. template<typename Dispatch>
  50015. VULKAN_HPP_INLINE Result Queue::waitIdle(Dispatch const &d) const
  50016. {
  50017. return static_cast<Result>( d.vkQueueWaitIdle( m_queue ) );
  50018. }
  50019. #else
  50020. template<typename Dispatch>
  50021. VULKAN_HPP_INLINE ResultValueType<void>::type Queue::waitIdle(Dispatch const &d ) const
  50022. {
  50023. Result result = static_cast<Result>( d.vkQueueWaitIdle( m_queue ) );
  50024. return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Queue::waitIdle" );
  50025. }
  50026. #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
  50027. #ifdef VK_USE_PLATFORM_ANDROID_KHR
  50028. template <> struct isStructureChainValid<AndroidHardwareBufferPropertiesANDROID, AndroidHardwareBufferFormatPropertiesANDROID>{ enum { value = true }; };
  50029. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  50030. #ifdef VK_USE_PLATFORM_ANDROID_KHR
  50031. template <> struct isStructureChainValid<ImageFormatProperties2, AndroidHardwareBufferUsageANDROID>{ enum { value = true }; };
  50032. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  50033. template <> struct isStructureChainValid<BindBufferMemoryInfo, BindBufferMemoryDeviceGroupInfo>{ enum { value = true }; };
  50034. template <> struct isStructureChainValid<BindImageMemoryInfo, BindImageMemoryDeviceGroupInfo>{ enum { value = true }; };
  50035. template <> struct isStructureChainValid<BindImageMemoryInfo, BindImageMemorySwapchainInfoKHR>{ enum { value = true }; };
  50036. template <> struct isStructureChainValid<BindImageMemoryInfo, BindImagePlaneMemoryInfo>{ enum { value = true }; };
  50037. template <> struct isStructureChainValid<BufferCreateInfo, BufferDeviceAddressCreateInfoEXT>{ enum { value = true }; };
  50038. template <> struct isStructureChainValid<CommandBufferInheritanceInfo, CommandBufferInheritanceConditionalRenderingInfoEXT>{ enum { value = true }; };
  50039. #ifdef VK_USE_PLATFORM_WIN32_KHR
  50040. template <> struct isStructureChainValid<SubmitInfo, D3D12FenceSubmitInfoKHR>{ enum { value = true }; };
  50041. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  50042. template <> struct isStructureChainValid<InstanceCreateInfo, DebugReportCallbackCreateInfoEXT>{ enum { value = true }; };
  50043. template <> struct isStructureChainValid<InstanceCreateInfo, DebugUtilsMessengerCreateInfoEXT>{ enum { value = true }; };
  50044. template <> struct isStructureChainValid<BufferCreateInfo, DedicatedAllocationBufferCreateInfoNV>{ enum { value = true }; };
  50045. template <> struct isStructureChainValid<ImageCreateInfo, DedicatedAllocationImageCreateInfoNV>{ enum { value = true }; };
  50046. template <> struct isStructureChainValid<MemoryAllocateInfo, DedicatedAllocationMemoryAllocateInfoNV>{ enum { value = true }; };
  50047. template <> struct isStructureChainValid<DescriptorPoolCreateInfo, DescriptorPoolInlineUniformBlockCreateInfoEXT>{ enum { value = true }; };
  50048. template <> struct isStructureChainValid<DescriptorSetLayoutCreateInfo, DescriptorSetLayoutBindingFlagsCreateInfoEXT>{ enum { value = true }; };
  50049. template <> struct isStructureChainValid<DescriptorSetAllocateInfo, DescriptorSetVariableDescriptorCountAllocateInfoEXT>{ enum { value = true }; };
  50050. template <> struct isStructureChainValid<DescriptorSetLayoutSupport, DescriptorSetVariableDescriptorCountLayoutSupportEXT>{ enum { value = true }; };
  50051. template <> struct isStructureChainValid<BindSparseInfo, DeviceGroupBindSparseInfo>{ enum { value = true }; };
  50052. template <> struct isStructureChainValid<CommandBufferBeginInfo, DeviceGroupCommandBufferBeginInfo>{ enum { value = true }; };
  50053. template <> struct isStructureChainValid<DeviceCreateInfo, DeviceGroupDeviceCreateInfo>{ enum { value = true }; };
  50054. template <> struct isStructureChainValid<PresentInfoKHR, DeviceGroupPresentInfoKHR>{ enum { value = true }; };
  50055. template <> struct isStructureChainValid<RenderPassBeginInfo, DeviceGroupRenderPassBeginInfo>{ enum { value = true }; };
  50056. template <> struct isStructureChainValid<SubmitInfo, DeviceGroupSubmitInfo>{ enum { value = true }; };
  50057. template <> struct isStructureChainValid<SwapchainCreateInfoKHR, DeviceGroupSwapchainCreateInfoKHR>{ enum { value = true }; };
  50058. template <> struct isStructureChainValid<DeviceCreateInfo, DeviceMemoryOverallocationCreateInfoAMD>{ enum { value = true }; };
  50059. template <> struct isStructureChainValid<DeviceQueueCreateInfo, DeviceQueueGlobalPriorityCreateInfoEXT>{ enum { value = true }; };
  50060. template <> struct isStructureChainValid<SurfaceCapabilities2KHR, DisplayNativeHdrSurfaceCapabilitiesAMD>{ enum { value = true }; };
  50061. template <> struct isStructureChainValid<PresentInfoKHR, DisplayPresentInfoKHR>{ enum { value = true }; };
  50062. template <> struct isStructureChainValid<FormatProperties2, DrmFormatModifierPropertiesListEXT>{ enum { value = true }; };
  50063. template <> struct isStructureChainValid<FenceCreateInfo, ExportFenceCreateInfo>{ enum { value = true }; };
  50064. #ifdef VK_USE_PLATFORM_WIN32_KHR
  50065. template <> struct isStructureChainValid<FenceCreateInfo, ExportFenceWin32HandleInfoKHR>{ enum { value = true }; };
  50066. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  50067. template <> struct isStructureChainValid<MemoryAllocateInfo, ExportMemoryAllocateInfo>{ enum { value = true }; };
  50068. template <> struct isStructureChainValid<MemoryAllocateInfo, ExportMemoryAllocateInfoNV>{ enum { value = true }; };
  50069. #ifdef VK_USE_PLATFORM_WIN32_KHR
  50070. template <> struct isStructureChainValid<MemoryAllocateInfo, ExportMemoryWin32HandleInfoKHR>{ enum { value = true }; };
  50071. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  50072. #ifdef VK_USE_PLATFORM_WIN32_KHR
  50073. template <> struct isStructureChainValid<MemoryAllocateInfo, ExportMemoryWin32HandleInfoNV>{ enum { value = true }; };
  50074. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  50075. template <> struct isStructureChainValid<SemaphoreCreateInfo, ExportSemaphoreCreateInfo>{ enum { value = true }; };
  50076. #ifdef VK_USE_PLATFORM_WIN32_KHR
  50077. template <> struct isStructureChainValid<SemaphoreCreateInfo, ExportSemaphoreWin32HandleInfoKHR>{ enum { value = true }; };
  50078. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  50079. #ifdef VK_USE_PLATFORM_ANDROID_KHR
  50080. template <> struct isStructureChainValid<ImageCreateInfo, ExternalFormatANDROID>{ enum { value = true }; };
  50081. template <> struct isStructureChainValid<SamplerYcbcrConversionCreateInfo, ExternalFormatANDROID>{ enum { value = true }; };
  50082. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  50083. template <> struct isStructureChainValid<ImageFormatProperties2, ExternalImageFormatProperties>{ enum { value = true }; };
  50084. template <> struct isStructureChainValid<BufferCreateInfo, ExternalMemoryBufferCreateInfo>{ enum { value = true }; };
  50085. template <> struct isStructureChainValid<ImageCreateInfo, ExternalMemoryImageCreateInfo>{ enum { value = true }; };
  50086. template <> struct isStructureChainValid<ImageCreateInfo, ExternalMemoryImageCreateInfoNV>{ enum { value = true }; };
  50087. template <> struct isStructureChainValid<ImageFormatProperties2, FilterCubicImageViewImageFormatPropertiesEXT>{ enum { value = true }; };
  50088. template <> struct isStructureChainValid<FramebufferCreateInfo, FramebufferAttachmentsCreateInfoKHR>{ enum { value = true }; };
  50089. template <> struct isStructureChainValid<ImageCreateInfo, ImageDrmFormatModifierExplicitCreateInfoEXT>{ enum { value = true }; };
  50090. template <> struct isStructureChainValid<ImageCreateInfo, ImageDrmFormatModifierListCreateInfoEXT>{ enum { value = true }; };
  50091. template <> struct isStructureChainValid<ImageCreateInfo, ImageFormatListCreateInfoKHR>{ enum { value = true }; };
  50092. template <> struct isStructureChainValid<SwapchainCreateInfoKHR, ImageFormatListCreateInfoKHR>{ enum { value = true }; };
  50093. template <> struct isStructureChainValid<PhysicalDeviceImageFormatInfo2, ImageFormatListCreateInfoKHR>{ enum { value = true }; };
  50094. template <> struct isStructureChainValid<ImageMemoryRequirementsInfo2, ImagePlaneMemoryRequirementsInfo>{ enum { value = true }; };
  50095. template <> struct isStructureChainValid<ImageCreateInfo, ImageStencilUsageCreateInfoEXT>{ enum { value = true }; };
  50096. template <> struct isStructureChainValid<PhysicalDeviceImageFormatInfo2, ImageStencilUsageCreateInfoEXT>{ enum { value = true }; };
  50097. template <> struct isStructureChainValid<ImageCreateInfo, ImageSwapchainCreateInfoKHR>{ enum { value = true }; };
  50098. template <> struct isStructureChainValid<ImageViewCreateInfo, ImageViewASTCDecodeModeEXT>{ enum { value = true }; };
  50099. template <> struct isStructureChainValid<ImageViewCreateInfo, ImageViewUsageCreateInfo>{ enum { value = true }; };
  50100. #ifdef VK_USE_PLATFORM_ANDROID_KHR
  50101. template <> struct isStructureChainValid<MemoryAllocateInfo, ImportAndroidHardwareBufferInfoANDROID>{ enum { value = true }; };
  50102. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  50103. template <> struct isStructureChainValid<MemoryAllocateInfo, ImportMemoryFdInfoKHR>{ enum { value = true }; };
  50104. template <> struct isStructureChainValid<MemoryAllocateInfo, ImportMemoryHostPointerInfoEXT>{ enum { value = true }; };
  50105. #ifdef VK_USE_PLATFORM_WIN32_KHR
  50106. template <> struct isStructureChainValid<MemoryAllocateInfo, ImportMemoryWin32HandleInfoKHR>{ enum { value = true }; };
  50107. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  50108. #ifdef VK_USE_PLATFORM_WIN32_KHR
  50109. template <> struct isStructureChainValid<MemoryAllocateInfo, ImportMemoryWin32HandleInfoNV>{ enum { value = true }; };
  50110. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  50111. template <> struct isStructureChainValid<MemoryAllocateInfo, MemoryAllocateFlagsInfo>{ enum { value = true }; };
  50112. template <> struct isStructureChainValid<MemoryAllocateInfo, MemoryDedicatedAllocateInfo>{ enum { value = true }; };
  50113. template <> struct isStructureChainValid<MemoryRequirements2, MemoryDedicatedRequirements>{ enum { value = true }; };
  50114. template <> struct isStructureChainValid<MemoryAllocateInfo, MemoryPriorityAllocateInfoEXT>{ enum { value = true }; };
  50115. template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDevice16BitStorageFeatures>{ enum { value = true }; };
  50116. template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDevice16BitStorageFeatures>{ enum { value = true }; };
  50117. template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDevice8BitStorageFeaturesKHR>{ enum { value = true }; };
  50118. template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDevice8BitStorageFeaturesKHR>{ enum { value = true }; };
  50119. template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceASTCDecodeFeaturesEXT>{ enum { value = true }; };
  50120. template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceASTCDecodeFeaturesEXT>{ enum { value = true }; };
  50121. template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceBlendOperationAdvancedFeaturesEXT>{ enum { value = true }; };
  50122. template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceBlendOperationAdvancedFeaturesEXT>{ enum { value = true }; };
  50123. template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceBlendOperationAdvancedPropertiesEXT>{ enum { value = true }; };
  50124. template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceBufferDeviceAddressFeaturesEXT>{ enum { value = true }; };
  50125. template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceBufferDeviceAddressFeaturesEXT>{ enum { value = true }; };
  50126. template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceComputeShaderDerivativesFeaturesNV>{ enum { value = true }; };
  50127. template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceComputeShaderDerivativesFeaturesNV>{ enum { value = true }; };
  50128. template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceConditionalRenderingFeaturesEXT>{ enum { value = true }; };
  50129. template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceConditionalRenderingFeaturesEXT>{ enum { value = true }; };
  50130. template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceConservativeRasterizationPropertiesEXT>{ enum { value = true }; };
  50131. template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceCooperativeMatrixFeaturesNV>{ enum { value = true }; };
  50132. template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceCooperativeMatrixFeaturesNV>{ enum { value = true }; };
  50133. template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceCooperativeMatrixPropertiesNV>{ enum { value = true }; };
  50134. template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceCornerSampledImageFeaturesNV>{ enum { value = true }; };
  50135. template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceCornerSampledImageFeaturesNV>{ enum { value = true }; };
  50136. template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceCoverageReductionModeFeaturesNV>{ enum { value = true }; };
  50137. template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceCoverageReductionModeFeaturesNV>{ enum { value = true }; };
  50138. template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>{ enum { value = true }; };
  50139. template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>{ enum { value = true }; };
  50140. template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceDepthClipEnableFeaturesEXT>{ enum { value = true }; };
  50141. template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceDepthClipEnableFeaturesEXT>{ enum { value = true }; };
  50142. template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceDepthStencilResolvePropertiesKHR>{ enum { value = true }; };
  50143. template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceDescriptorIndexingFeaturesEXT>{ enum { value = true }; };
  50144. template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceDescriptorIndexingFeaturesEXT>{ enum { value = true }; };
  50145. template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceDescriptorIndexingPropertiesEXT>{ enum { value = true }; };
  50146. template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceDiscardRectanglePropertiesEXT>{ enum { value = true }; };
  50147. template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceDriverPropertiesKHR>{ enum { value = true }; };
  50148. template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceExclusiveScissorFeaturesNV>{ enum { value = true }; };
  50149. template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceExclusiveScissorFeaturesNV>{ enum { value = true }; };
  50150. template <> struct isStructureChainValid<PhysicalDeviceImageFormatInfo2, PhysicalDeviceExternalImageFormatInfo>{ enum { value = true }; };
  50151. template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceExternalMemoryHostPropertiesEXT>{ enum { value = true }; };
  50152. template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceFeatures2>{ enum { value = true }; };
  50153. template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceFloat16Int8FeaturesKHR>{ enum { value = true }; };
  50154. template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceFloat16Int8FeaturesKHR>{ enum { value = true }; };
  50155. template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceFloatControlsPropertiesKHR>{ enum { value = true }; };
  50156. template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceFragmentDensityMapFeaturesEXT>{ enum { value = true }; };
  50157. template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceFragmentDensityMapFeaturesEXT>{ enum { value = true }; };
  50158. template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceFragmentDensityMapPropertiesEXT>{ enum { value = true }; };
  50159. template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceFragmentShaderBarycentricFeaturesNV>{ enum { value = true }; };
  50160. template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceFragmentShaderBarycentricFeaturesNV>{ enum { value = true }; };
  50161. template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceFragmentShaderInterlockFeaturesEXT>{ enum { value = true }; };
  50162. template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceFragmentShaderInterlockFeaturesEXT>{ enum { value = true }; };
  50163. template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceHostQueryResetFeaturesEXT>{ enum { value = true }; };
  50164. template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceHostQueryResetFeaturesEXT>{ enum { value = true }; };
  50165. template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceIDProperties>{ enum { value = true }; };
  50166. template <> struct isStructureChainValid<PhysicalDeviceImageFormatInfo2, PhysicalDeviceImageDrmFormatModifierInfoEXT>{ enum { value = true }; };
  50167. template <> struct isStructureChainValid<PhysicalDeviceImageFormatInfo2, PhysicalDeviceImageViewImageFormatInfoEXT>{ enum { value = true }; };
  50168. template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceImagelessFramebufferFeaturesKHR>{ enum { value = true }; };
  50169. template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceImagelessFramebufferFeaturesKHR>{ enum { value = true }; };
  50170. template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceInlineUniformBlockFeaturesEXT>{ enum { value = true }; };
  50171. template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceInlineUniformBlockFeaturesEXT>{ enum { value = true }; };
  50172. template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceInlineUniformBlockPropertiesEXT>{ enum { value = true }; };
  50173. template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceMaintenance3Properties>{ enum { value = true }; };
  50174. template <> struct isStructureChainValid<PhysicalDeviceMemoryProperties2, PhysicalDeviceMemoryBudgetPropertiesEXT>{ enum { value = true }; };
  50175. template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceMemoryPriorityFeaturesEXT>{ enum { value = true }; };
  50176. template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceMemoryPriorityFeaturesEXT>{ enum { value = true }; };
  50177. template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceMeshShaderFeaturesNV>{ enum { value = true }; };
  50178. template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceMeshShaderFeaturesNV>{ enum { value = true }; };
  50179. template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceMeshShaderPropertiesNV>{ enum { value = true }; };
  50180. template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceMultiviewFeatures>{ enum { value = true }; };
  50181. template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceMultiviewFeatures>{ enum { value = true }; };
  50182. template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX>{ enum { value = true }; };
  50183. template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceMultiviewProperties>{ enum { value = true }; };
  50184. template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDevicePCIBusInfoPropertiesEXT>{ enum { value = true }; };
  50185. template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDevicePointClippingProperties>{ enum { value = true }; };
  50186. template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceProtectedMemoryFeatures>{ enum { value = true }; };
  50187. template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceProtectedMemoryFeatures>{ enum { value = true }; };
  50188. template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceProtectedMemoryProperties>{ enum { value = true }; };
  50189. template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDevicePushDescriptorPropertiesKHR>{ enum { value = true }; };
  50190. template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceRayTracingPropertiesNV>{ enum { value = true }; };
  50191. template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceRepresentativeFragmentTestFeaturesNV>{ enum { value = true }; };
  50192. template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceRepresentativeFragmentTestFeaturesNV>{ enum { value = true }; };
  50193. template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceSampleLocationsPropertiesEXT>{ enum { value = true }; };
  50194. template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceSamplerFilterMinmaxPropertiesEXT>{ enum { value = true }; };
  50195. template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceSamplerYcbcrConversionFeatures>{ enum { value = true }; };
  50196. template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceSamplerYcbcrConversionFeatures>{ enum { value = true }; };
  50197. template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceScalarBlockLayoutFeaturesEXT>{ enum { value = true }; };
  50198. template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceScalarBlockLayoutFeaturesEXT>{ enum { value = true }; };
  50199. template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceShaderAtomicInt64FeaturesKHR>{ enum { value = true }; };
  50200. template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceShaderAtomicInt64FeaturesKHR>{ enum { value = true }; };
  50201. template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceShaderCorePropertiesAMD>{ enum { value = true }; };
  50202. template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT>{ enum { value = true }; };
  50203. template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT>{ enum { value = true }; };
  50204. template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceShaderDrawParametersFeatures>{ enum { value = true }; };
  50205. template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceShaderDrawParametersFeatures>{ enum { value = true }; };
  50206. template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceShaderImageFootprintFeaturesNV>{ enum { value = true }; };
  50207. template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceShaderImageFootprintFeaturesNV>{ enum { value = true }; };
  50208. template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceShaderIntegerFunctions2INTEL>{ enum { value = true }; };
  50209. template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceShaderIntegerFunctions2INTEL>{ enum { value = true }; };
  50210. template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceShaderSMBuiltinsFeaturesNV>{ enum { value = true }; };
  50211. template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceShaderSMBuiltinsFeaturesNV>{ enum { value = true }; };
  50212. template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceShaderSMBuiltinsPropertiesNV>{ enum { value = true }; };
  50213. template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceShadingRateImageFeaturesNV>{ enum { value = true }; };
  50214. template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceShadingRateImageFeaturesNV>{ enum { value = true }; };
  50215. template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceShadingRateImagePropertiesNV>{ enum { value = true }; };
  50216. template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceSubgroupProperties>{ enum { value = true }; };
  50217. template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceTexelBufferAlignmentFeaturesEXT>{ enum { value = true }; };
  50218. template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceTexelBufferAlignmentFeaturesEXT>{ enum { value = true }; };
  50219. template <> struct isStructureChainValid<PhysicalDeviceMemoryProperties2, PhysicalDeviceTexelBufferAlignmentPropertiesEXT>{ enum { value = true }; };
  50220. template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceTransformFeedbackFeaturesEXT>{ enum { value = true }; };
  50221. template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceTransformFeedbackFeaturesEXT>{ enum { value = true }; };
  50222. template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceTransformFeedbackPropertiesEXT>{ enum { value = true }; };
  50223. template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR>{ enum { value = true }; };
  50224. template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR>{ enum { value = true }; };
  50225. template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceVariablePointersFeatures>{ enum { value = true }; };
  50226. template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceVariablePointersFeatures>{ enum { value = true }; };
  50227. template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceVertexAttributeDivisorFeaturesEXT>{ enum { value = true }; };
  50228. template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceVertexAttributeDivisorFeaturesEXT>{ enum { value = true }; };
  50229. template <> struct isStructureChainValid<PhysicalDeviceProperties2, PhysicalDeviceVertexAttributeDivisorPropertiesEXT>{ enum { value = true }; };
  50230. template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceVulkanMemoryModelFeaturesKHR>{ enum { value = true }; };
  50231. template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceVulkanMemoryModelFeaturesKHR>{ enum { value = true }; };
  50232. template <> struct isStructureChainValid<PhysicalDeviceFeatures2, PhysicalDeviceYcbcrImageArraysFeaturesEXT>{ enum { value = true }; };
  50233. template <> struct isStructureChainValid<DeviceCreateInfo, PhysicalDeviceYcbcrImageArraysFeaturesEXT>{ enum { value = true }; };
  50234. template <> struct isStructureChainValid<PipelineColorBlendStateCreateInfo, PipelineColorBlendAdvancedStateCreateInfoEXT>{ enum { value = true }; };
  50235. template <> struct isStructureChainValid<PipelineMultisampleStateCreateInfo, PipelineCoverageModulationStateCreateInfoNV>{ enum { value = true }; };
  50236. template <> struct isStructureChainValid<PipelineMultisampleStateCreateInfo, PipelineCoverageReductionStateCreateInfoNV>{ enum { value = true }; };
  50237. template <> struct isStructureChainValid<PipelineMultisampleStateCreateInfo, PipelineCoverageToColorStateCreateInfoNV>{ enum { value = true }; };
  50238. template <> struct isStructureChainValid<GraphicsPipelineCreateInfo, PipelineCreationFeedbackCreateInfoEXT>{ enum { value = true }; };
  50239. template <> struct isStructureChainValid<ComputePipelineCreateInfo, PipelineCreationFeedbackCreateInfoEXT>{ enum { value = true }; };
  50240. template <> struct isStructureChainValid<RayTracingPipelineCreateInfoNV, PipelineCreationFeedbackCreateInfoEXT>{ enum { value = true }; };
  50241. template <> struct isStructureChainValid<GraphicsPipelineCreateInfo, PipelineDiscardRectangleStateCreateInfoEXT>{ enum { value = true }; };
  50242. template <> struct isStructureChainValid<PipelineRasterizationStateCreateInfo, PipelineRasterizationConservativeStateCreateInfoEXT>{ enum { value = true }; };
  50243. template <> struct isStructureChainValid<PipelineRasterizationStateCreateInfo, PipelineRasterizationDepthClipStateCreateInfoEXT>{ enum { value = true }; };
  50244. template <> struct isStructureChainValid<PipelineRasterizationStateCreateInfo, PipelineRasterizationStateRasterizationOrderAMD>{ enum { value = true }; };
  50245. template <> struct isStructureChainValid<PipelineRasterizationStateCreateInfo, PipelineRasterizationStateStreamCreateInfoEXT>{ enum { value = true }; };
  50246. template <> struct isStructureChainValid<GraphicsPipelineCreateInfo, PipelineRepresentativeFragmentTestStateCreateInfoNV>{ enum { value = true }; };
  50247. template <> struct isStructureChainValid<PipelineMultisampleStateCreateInfo, PipelineSampleLocationsStateCreateInfoEXT>{ enum { value = true }; };
  50248. template <> struct isStructureChainValid<PipelineTessellationStateCreateInfo, PipelineTessellationDomainOriginStateCreateInfo>{ enum { value = true }; };
  50249. template <> struct isStructureChainValid<PipelineVertexInputStateCreateInfo, PipelineVertexInputDivisorStateCreateInfoEXT>{ enum { value = true }; };
  50250. template <> struct isStructureChainValid<PipelineViewportStateCreateInfo, PipelineViewportCoarseSampleOrderStateCreateInfoNV>{ enum { value = true }; };
  50251. template <> struct isStructureChainValid<PipelineViewportStateCreateInfo, PipelineViewportExclusiveScissorStateCreateInfoNV>{ enum { value = true }; };
  50252. template <> struct isStructureChainValid<PipelineViewportStateCreateInfo, PipelineViewportShadingRateImageStateCreateInfoNV>{ enum { value = true }; };
  50253. template <> struct isStructureChainValid<PipelineViewportStateCreateInfo, PipelineViewportSwizzleStateCreateInfoNV>{ enum { value = true }; };
  50254. template <> struct isStructureChainValid<PipelineViewportStateCreateInfo, PipelineViewportWScalingStateCreateInfoNV>{ enum { value = true }; };
  50255. #ifdef VK_USE_PLATFORM_GGP
  50256. template <> struct isStructureChainValid<PresentInfoKHR, PresentFrameTokenGGP>{ enum { value = true }; };
  50257. #endif /*VK_USE_PLATFORM_GGP*/
  50258. template <> struct isStructureChainValid<PresentInfoKHR, PresentRegionsKHR>{ enum { value = true }; };
  50259. template <> struct isStructureChainValid<PresentInfoKHR, PresentTimesInfoGOOGLE>{ enum { value = true }; };
  50260. template <> struct isStructureChainValid<SubmitInfo, ProtectedSubmitInfo>{ enum { value = true }; };
  50261. template <> struct isStructureChainValid<QueueFamilyProperties2, QueueFamilyCheckpointPropertiesNV>{ enum { value = true }; };
  50262. template <> struct isStructureChainValid<RenderPassBeginInfo, RenderPassAttachmentBeginInfoKHR>{ enum { value = true }; };
  50263. template <> struct isStructureChainValid<RenderPassCreateInfo, RenderPassFragmentDensityMapCreateInfoEXT>{ enum { value = true }; };
  50264. template <> struct isStructureChainValid<RenderPassCreateInfo, RenderPassInputAttachmentAspectCreateInfo>{ enum { value = true }; };
  50265. template <> struct isStructureChainValid<RenderPassCreateInfo, RenderPassMultiviewCreateInfo>{ enum { value = true }; };
  50266. template <> struct isStructureChainValid<RenderPassBeginInfo, RenderPassSampleLocationsBeginInfoEXT>{ enum { value = true }; };
  50267. template <> struct isStructureChainValid<ImageMemoryBarrier, SampleLocationsInfoEXT>{ enum { value = true }; };
  50268. template <> struct isStructureChainValid<SamplerCreateInfo, SamplerReductionModeCreateInfoEXT>{ enum { value = true }; };
  50269. template <> struct isStructureChainValid<ImageFormatProperties2, SamplerYcbcrConversionImageFormatProperties>{ enum { value = true }; };
  50270. template <> struct isStructureChainValid<SamplerCreateInfo, SamplerYcbcrConversionInfo>{ enum { value = true }; };
  50271. template <> struct isStructureChainValid<ImageViewCreateInfo, SamplerYcbcrConversionInfo>{ enum { value = true }; };
  50272. template <> struct isStructureChainValid<ShaderModuleCreateInfo, ShaderModuleValidationCacheCreateInfoEXT>{ enum { value = true }; };
  50273. template <> struct isStructureChainValid<SurfaceCapabilities2KHR, SharedPresentSurfaceCapabilitiesKHR>{ enum { value = true }; };
  50274. template <> struct isStructureChainValid<SubpassDescription2KHR, SubpassDescriptionDepthStencilResolveKHR>{ enum { value = true }; };
  50275. #ifdef VK_USE_PLATFORM_WIN32_KHR
  50276. template <> struct isStructureChainValid<SurfaceCapabilities2KHR, SurfaceCapabilitiesFullScreenExclusiveEXT>{ enum { value = true }; };
  50277. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  50278. #ifdef VK_USE_PLATFORM_WIN32_KHR
  50279. template <> struct isStructureChainValid<PhysicalDeviceSurfaceInfo2KHR, SurfaceFullScreenExclusiveInfoEXT>{ enum { value = true }; };
  50280. template <> struct isStructureChainValid<SwapchainCreateInfoKHR, SurfaceFullScreenExclusiveInfoEXT>{ enum { value = true }; };
  50281. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  50282. #ifdef VK_USE_PLATFORM_WIN32_KHR
  50283. template <> struct isStructureChainValid<PhysicalDeviceSurfaceInfo2KHR, SurfaceFullScreenExclusiveWin32InfoEXT>{ enum { value = true }; };
  50284. template <> struct isStructureChainValid<SwapchainCreateInfoKHR, SurfaceFullScreenExclusiveWin32InfoEXT>{ enum { value = true }; };
  50285. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  50286. template <> struct isStructureChainValid<SurfaceCapabilities2KHR, SurfaceProtectedCapabilitiesKHR>{ enum { value = true }; };
  50287. template <> struct isStructureChainValid<SwapchainCreateInfoKHR, SwapchainCounterCreateInfoEXT>{ enum { value = true }; };
  50288. template <> struct isStructureChainValid<SwapchainCreateInfoKHR, SwapchainDisplayNativeHdrCreateInfoAMD>{ enum { value = true }; };
  50289. template <> struct isStructureChainValid<ImageFormatProperties2, TextureLODGatherFormatPropertiesAMD>{ enum { value = true }; };
  50290. template <> struct isStructureChainValid<InstanceCreateInfo, ValidationFeaturesEXT>{ enum { value = true }; };
  50291. template <> struct isStructureChainValid<InstanceCreateInfo, ValidationFlagsEXT>{ enum { value = true }; };
  50292. #ifdef VK_USE_PLATFORM_WIN32_KHR
  50293. template <> struct isStructureChainValid<SubmitInfo, Win32KeyedMutexAcquireReleaseInfoKHR>{ enum { value = true }; };
  50294. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  50295. #ifdef VK_USE_PLATFORM_WIN32_KHR
  50296. template <> struct isStructureChainValid<SubmitInfo, Win32KeyedMutexAcquireReleaseInfoNV>{ enum { value = true }; };
  50297. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  50298. template <> struct isStructureChainValid<WriteDescriptorSet, WriteDescriptorSetAccelerationStructureNV>{ enum { value = true }; };
  50299. template <> struct isStructureChainValid<WriteDescriptorSet, WriteDescriptorSetInlineUniformBlockEXT>{ enum { value = true }; };
  50300. class DispatchLoaderDynamic
  50301. {
  50302. public:
  50303. PFN_vkCreateInstance vkCreateInstance = 0;
  50304. PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties = 0;
  50305. PFN_vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties = 0;
  50306. PFN_vkEnumerateInstanceVersion vkEnumerateInstanceVersion = 0;
  50307. PFN_vkBeginCommandBuffer vkBeginCommandBuffer = 0;
  50308. PFN_vkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXT = 0;
  50309. PFN_vkCmdBeginDebugUtilsLabelEXT vkCmdBeginDebugUtilsLabelEXT = 0;
  50310. PFN_vkCmdBeginQuery vkCmdBeginQuery = 0;
  50311. PFN_vkCmdBeginQueryIndexedEXT vkCmdBeginQueryIndexedEXT = 0;
  50312. PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass = 0;
  50313. PFN_vkCmdBeginRenderPass2KHR vkCmdBeginRenderPass2KHR = 0;
  50314. PFN_vkCmdBeginTransformFeedbackEXT vkCmdBeginTransformFeedbackEXT = 0;
  50315. PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets = 0;
  50316. PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer = 0;
  50317. PFN_vkCmdBindPipeline vkCmdBindPipeline = 0;
  50318. PFN_vkCmdBindShadingRateImageNV vkCmdBindShadingRateImageNV = 0;
  50319. PFN_vkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXT = 0;
  50320. PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers = 0;
  50321. PFN_vkCmdBlitImage vkCmdBlitImage = 0;
  50322. PFN_vkCmdBuildAccelerationStructureNV vkCmdBuildAccelerationStructureNV = 0;
  50323. PFN_vkCmdClearAttachments vkCmdClearAttachments = 0;
  50324. PFN_vkCmdClearColorImage vkCmdClearColorImage = 0;
  50325. PFN_vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage = 0;
  50326. PFN_vkCmdCopyAccelerationStructureNV vkCmdCopyAccelerationStructureNV = 0;
  50327. PFN_vkCmdCopyBuffer vkCmdCopyBuffer = 0;
  50328. PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage = 0;
  50329. PFN_vkCmdCopyImage vkCmdCopyImage = 0;
  50330. PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer = 0;
  50331. PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults = 0;
  50332. PFN_vkCmdDebugMarkerBeginEXT vkCmdDebugMarkerBeginEXT = 0;
  50333. PFN_vkCmdDebugMarkerEndEXT vkCmdDebugMarkerEndEXT = 0;
  50334. PFN_vkCmdDebugMarkerInsertEXT vkCmdDebugMarkerInsertEXT = 0;
  50335. PFN_vkCmdDispatch vkCmdDispatch = 0;
  50336. PFN_vkCmdDispatchBase vkCmdDispatchBase = 0;
  50337. PFN_vkCmdDispatchBaseKHR vkCmdDispatchBaseKHR = 0;
  50338. PFN_vkCmdDispatchIndirect vkCmdDispatchIndirect = 0;
  50339. PFN_vkCmdDraw vkCmdDraw = 0;
  50340. PFN_vkCmdDrawIndexed vkCmdDrawIndexed = 0;
  50341. PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect = 0;
  50342. PFN_vkCmdDrawIndexedIndirectCountAMD vkCmdDrawIndexedIndirectCountAMD = 0;
  50343. PFN_vkCmdDrawIndexedIndirectCountKHR vkCmdDrawIndexedIndirectCountKHR = 0;
  50344. PFN_vkCmdDrawIndirect vkCmdDrawIndirect = 0;
  50345. PFN_vkCmdDrawIndirectByteCountEXT vkCmdDrawIndirectByteCountEXT = 0;
  50346. PFN_vkCmdDrawIndirectCountAMD vkCmdDrawIndirectCountAMD = 0;
  50347. PFN_vkCmdDrawIndirectCountKHR vkCmdDrawIndirectCountKHR = 0;
  50348. PFN_vkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNV = 0;
  50349. PFN_vkCmdDrawMeshTasksIndirectNV vkCmdDrawMeshTasksIndirectNV = 0;
  50350. PFN_vkCmdDrawMeshTasksNV vkCmdDrawMeshTasksNV = 0;
  50351. PFN_vkCmdEndConditionalRenderingEXT vkCmdEndConditionalRenderingEXT = 0;
  50352. PFN_vkCmdEndDebugUtilsLabelEXT vkCmdEndDebugUtilsLabelEXT = 0;
  50353. PFN_vkCmdEndQuery vkCmdEndQuery = 0;
  50354. PFN_vkCmdEndQueryIndexedEXT vkCmdEndQueryIndexedEXT = 0;
  50355. PFN_vkCmdEndRenderPass vkCmdEndRenderPass = 0;
  50356. PFN_vkCmdEndRenderPass2KHR vkCmdEndRenderPass2KHR = 0;
  50357. PFN_vkCmdEndTransformFeedbackEXT vkCmdEndTransformFeedbackEXT = 0;
  50358. PFN_vkCmdExecuteCommands vkCmdExecuteCommands = 0;
  50359. PFN_vkCmdFillBuffer vkCmdFillBuffer = 0;
  50360. PFN_vkCmdInsertDebugUtilsLabelEXT vkCmdInsertDebugUtilsLabelEXT = 0;
  50361. PFN_vkCmdNextSubpass vkCmdNextSubpass = 0;
  50362. PFN_vkCmdNextSubpass2KHR vkCmdNextSubpass2KHR = 0;
  50363. PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier = 0;
  50364. PFN_vkCmdProcessCommandsNVX vkCmdProcessCommandsNVX = 0;
  50365. PFN_vkCmdPushConstants vkCmdPushConstants = 0;
  50366. PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR = 0;
  50367. PFN_vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR = 0;
  50368. PFN_vkCmdReserveSpaceForCommandsNVX vkCmdReserveSpaceForCommandsNVX = 0;
  50369. PFN_vkCmdResetEvent vkCmdResetEvent = 0;
  50370. PFN_vkCmdResetQueryPool vkCmdResetQueryPool = 0;
  50371. PFN_vkCmdResolveImage vkCmdResolveImage = 0;
  50372. PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants = 0;
  50373. PFN_vkCmdSetCheckpointNV vkCmdSetCheckpointNV = 0;
  50374. PFN_vkCmdSetCoarseSampleOrderNV vkCmdSetCoarseSampleOrderNV = 0;
  50375. PFN_vkCmdSetDepthBias vkCmdSetDepthBias = 0;
  50376. PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds = 0;
  50377. PFN_vkCmdSetDeviceMask vkCmdSetDeviceMask = 0;
  50378. PFN_vkCmdSetDeviceMaskKHR vkCmdSetDeviceMaskKHR = 0;
  50379. PFN_vkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXT = 0;
  50380. PFN_vkCmdSetEvent vkCmdSetEvent = 0;
  50381. PFN_vkCmdSetExclusiveScissorNV vkCmdSetExclusiveScissorNV = 0;
  50382. PFN_vkCmdSetLineWidth vkCmdSetLineWidth = 0;
  50383. PFN_vkCmdSetPerformanceMarkerINTEL vkCmdSetPerformanceMarkerINTEL = 0;
  50384. PFN_vkCmdSetPerformanceOverrideINTEL vkCmdSetPerformanceOverrideINTEL = 0;
  50385. PFN_vkCmdSetPerformanceStreamMarkerINTEL vkCmdSetPerformanceStreamMarkerINTEL = 0;
  50386. PFN_vkCmdSetSampleLocationsEXT vkCmdSetSampleLocationsEXT = 0;
  50387. PFN_vkCmdSetScissor vkCmdSetScissor = 0;
  50388. PFN_vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask = 0;
  50389. PFN_vkCmdSetStencilReference vkCmdSetStencilReference = 0;
  50390. PFN_vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask = 0;
  50391. PFN_vkCmdSetViewport vkCmdSetViewport = 0;
  50392. PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV = 0;
  50393. PFN_vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV = 0;
  50394. PFN_vkCmdTraceRaysNV vkCmdTraceRaysNV = 0;
  50395. PFN_vkCmdUpdateBuffer vkCmdUpdateBuffer = 0;
  50396. PFN_vkCmdWaitEvents vkCmdWaitEvents = 0;
  50397. PFN_vkCmdWriteAccelerationStructuresPropertiesNV vkCmdWriteAccelerationStructuresPropertiesNV = 0;
  50398. PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD = 0;
  50399. PFN_vkCmdWriteTimestamp vkCmdWriteTimestamp = 0;
  50400. PFN_vkEndCommandBuffer vkEndCommandBuffer = 0;
  50401. PFN_vkResetCommandBuffer vkResetCommandBuffer = 0;
  50402. #ifdef VK_USE_PLATFORM_WIN32_KHR
  50403. PFN_vkAcquireFullScreenExclusiveModeEXT vkAcquireFullScreenExclusiveModeEXT = 0;
  50404. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  50405. PFN_vkAcquireNextImage2KHR vkAcquireNextImage2KHR = 0;
  50406. PFN_vkAcquireNextImageKHR vkAcquireNextImageKHR = 0;
  50407. PFN_vkAcquirePerformanceConfigurationINTEL vkAcquirePerformanceConfigurationINTEL = 0;
  50408. PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers = 0;
  50409. PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets = 0;
  50410. PFN_vkAllocateMemory vkAllocateMemory = 0;
  50411. PFN_vkBindAccelerationStructureMemoryNV vkBindAccelerationStructureMemoryNV = 0;
  50412. PFN_vkBindBufferMemory vkBindBufferMemory = 0;
  50413. PFN_vkBindBufferMemory2 vkBindBufferMemory2 = 0;
  50414. PFN_vkBindBufferMemory2KHR vkBindBufferMemory2KHR = 0;
  50415. PFN_vkBindImageMemory vkBindImageMemory = 0;
  50416. PFN_vkBindImageMemory2 vkBindImageMemory2 = 0;
  50417. PFN_vkBindImageMemory2KHR vkBindImageMemory2KHR = 0;
  50418. PFN_vkCompileDeferredNV vkCompileDeferredNV = 0;
  50419. PFN_vkCreateAccelerationStructureNV vkCreateAccelerationStructureNV = 0;
  50420. PFN_vkCreateBuffer vkCreateBuffer = 0;
  50421. PFN_vkCreateBufferView vkCreateBufferView = 0;
  50422. PFN_vkCreateCommandPool vkCreateCommandPool = 0;
  50423. PFN_vkCreateComputePipelines vkCreateComputePipelines = 0;
  50424. PFN_vkCreateDescriptorPool vkCreateDescriptorPool = 0;
  50425. PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout = 0;
  50426. PFN_vkCreateDescriptorUpdateTemplate vkCreateDescriptorUpdateTemplate = 0;
  50427. PFN_vkCreateDescriptorUpdateTemplateKHR vkCreateDescriptorUpdateTemplateKHR = 0;
  50428. PFN_vkCreateEvent vkCreateEvent = 0;
  50429. PFN_vkCreateFence vkCreateFence = 0;
  50430. PFN_vkCreateFramebuffer vkCreateFramebuffer = 0;
  50431. PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines = 0;
  50432. PFN_vkCreateImage vkCreateImage = 0;
  50433. PFN_vkCreateImageView vkCreateImageView = 0;
  50434. PFN_vkCreateIndirectCommandsLayoutNVX vkCreateIndirectCommandsLayoutNVX = 0;
  50435. PFN_vkCreateObjectTableNVX vkCreateObjectTableNVX = 0;
  50436. PFN_vkCreatePipelineCache vkCreatePipelineCache = 0;
  50437. PFN_vkCreatePipelineLayout vkCreatePipelineLayout = 0;
  50438. PFN_vkCreateQueryPool vkCreateQueryPool = 0;
  50439. PFN_vkCreateRayTracingPipelinesNV vkCreateRayTracingPipelinesNV = 0;
  50440. PFN_vkCreateRenderPass vkCreateRenderPass = 0;
  50441. PFN_vkCreateRenderPass2KHR vkCreateRenderPass2KHR = 0;
  50442. PFN_vkCreateSampler vkCreateSampler = 0;
  50443. PFN_vkCreateSamplerYcbcrConversion vkCreateSamplerYcbcrConversion = 0;
  50444. PFN_vkCreateSamplerYcbcrConversionKHR vkCreateSamplerYcbcrConversionKHR = 0;
  50445. PFN_vkCreateSemaphore vkCreateSemaphore = 0;
  50446. PFN_vkCreateShaderModule vkCreateShaderModule = 0;
  50447. PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR = 0;
  50448. PFN_vkCreateSwapchainKHR vkCreateSwapchainKHR = 0;
  50449. PFN_vkCreateValidationCacheEXT vkCreateValidationCacheEXT = 0;
  50450. PFN_vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT = 0;
  50451. PFN_vkDebugMarkerSetObjectTagEXT vkDebugMarkerSetObjectTagEXT = 0;
  50452. PFN_vkDestroyAccelerationStructureNV vkDestroyAccelerationStructureNV = 0;
  50453. PFN_vkDestroyBuffer vkDestroyBuffer = 0;
  50454. PFN_vkDestroyBufferView vkDestroyBufferView = 0;
  50455. PFN_vkDestroyCommandPool vkDestroyCommandPool = 0;
  50456. PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool = 0;
  50457. PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout = 0;
  50458. PFN_vkDestroyDescriptorUpdateTemplate vkDestroyDescriptorUpdateTemplate = 0;
  50459. PFN_vkDestroyDescriptorUpdateTemplateKHR vkDestroyDescriptorUpdateTemplateKHR = 0;
  50460. PFN_vkDestroyDevice vkDestroyDevice = 0;
  50461. PFN_vkDestroyEvent vkDestroyEvent = 0;
  50462. PFN_vkDestroyFence vkDestroyFence = 0;
  50463. PFN_vkDestroyFramebuffer vkDestroyFramebuffer = 0;
  50464. PFN_vkDestroyImage vkDestroyImage = 0;
  50465. PFN_vkDestroyImageView vkDestroyImageView = 0;
  50466. PFN_vkDestroyIndirectCommandsLayoutNVX vkDestroyIndirectCommandsLayoutNVX = 0;
  50467. PFN_vkDestroyObjectTableNVX vkDestroyObjectTableNVX = 0;
  50468. PFN_vkDestroyPipeline vkDestroyPipeline = 0;
  50469. PFN_vkDestroyPipelineCache vkDestroyPipelineCache = 0;
  50470. PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout = 0;
  50471. PFN_vkDestroyQueryPool vkDestroyQueryPool = 0;
  50472. PFN_vkDestroyRenderPass vkDestroyRenderPass = 0;
  50473. PFN_vkDestroySampler vkDestroySampler = 0;
  50474. PFN_vkDestroySamplerYcbcrConversion vkDestroySamplerYcbcrConversion = 0;
  50475. PFN_vkDestroySamplerYcbcrConversionKHR vkDestroySamplerYcbcrConversionKHR = 0;
  50476. PFN_vkDestroySemaphore vkDestroySemaphore = 0;
  50477. PFN_vkDestroyShaderModule vkDestroyShaderModule = 0;
  50478. PFN_vkDestroySwapchainKHR vkDestroySwapchainKHR = 0;
  50479. PFN_vkDestroyValidationCacheEXT vkDestroyValidationCacheEXT = 0;
  50480. PFN_vkDeviceWaitIdle vkDeviceWaitIdle = 0;
  50481. PFN_vkDisplayPowerControlEXT vkDisplayPowerControlEXT = 0;
  50482. PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges = 0;
  50483. PFN_vkFreeCommandBuffers vkFreeCommandBuffers = 0;
  50484. PFN_vkFreeDescriptorSets vkFreeDescriptorSets = 0;
  50485. PFN_vkFreeMemory vkFreeMemory = 0;
  50486. PFN_vkGetAccelerationStructureHandleNV vkGetAccelerationStructureHandleNV = 0;
  50487. PFN_vkGetAccelerationStructureMemoryRequirementsNV vkGetAccelerationStructureMemoryRequirementsNV = 0;
  50488. #ifdef VK_USE_PLATFORM_ANDROID_KHR
  50489. PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID = 0;
  50490. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  50491. PFN_vkGetBufferDeviceAddressEXT vkGetBufferDeviceAddressEXT = 0;
  50492. PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements = 0;
  50493. PFN_vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2 = 0;
  50494. PFN_vkGetBufferMemoryRequirements2KHR vkGetBufferMemoryRequirements2KHR = 0;
  50495. PFN_vkGetCalibratedTimestampsEXT vkGetCalibratedTimestampsEXT = 0;
  50496. PFN_vkGetDescriptorSetLayoutSupport vkGetDescriptorSetLayoutSupport = 0;
  50497. PFN_vkGetDescriptorSetLayoutSupportKHR vkGetDescriptorSetLayoutSupportKHR = 0;
  50498. PFN_vkGetDeviceGroupPeerMemoryFeatures vkGetDeviceGroupPeerMemoryFeatures = 0;
  50499. PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR vkGetDeviceGroupPeerMemoryFeaturesKHR = 0;
  50500. PFN_vkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR = 0;
  50501. #ifdef VK_USE_PLATFORM_WIN32_KHR
  50502. PFN_vkGetDeviceGroupSurfacePresentModes2EXT vkGetDeviceGroupSurfacePresentModes2EXT = 0;
  50503. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  50504. PFN_vkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHR = 0;
  50505. PFN_vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment = 0;
  50506. PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr = 0;
  50507. PFN_vkGetDeviceQueue vkGetDeviceQueue = 0;
  50508. PFN_vkGetDeviceQueue2 vkGetDeviceQueue2 = 0;
  50509. PFN_vkGetEventStatus vkGetEventStatus = 0;
  50510. PFN_vkGetFenceFdKHR vkGetFenceFdKHR = 0;
  50511. PFN_vkGetFenceStatus vkGetFenceStatus = 0;
  50512. #ifdef VK_USE_PLATFORM_WIN32_KHR
  50513. PFN_vkGetFenceWin32HandleKHR vkGetFenceWin32HandleKHR = 0;
  50514. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  50515. PFN_vkGetImageDrmFormatModifierPropertiesEXT vkGetImageDrmFormatModifierPropertiesEXT = 0;
  50516. PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements = 0;
  50517. PFN_vkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2 = 0;
  50518. PFN_vkGetImageMemoryRequirements2KHR vkGetImageMemoryRequirements2KHR = 0;
  50519. PFN_vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements = 0;
  50520. PFN_vkGetImageSparseMemoryRequirements2 vkGetImageSparseMemoryRequirements2 = 0;
  50521. PFN_vkGetImageSparseMemoryRequirements2KHR vkGetImageSparseMemoryRequirements2KHR = 0;
  50522. PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout = 0;
  50523. PFN_vkGetImageViewHandleNVX vkGetImageViewHandleNVX = 0;
  50524. #ifdef VK_USE_PLATFORM_ANDROID_KHR
  50525. PFN_vkGetMemoryAndroidHardwareBufferANDROID vkGetMemoryAndroidHardwareBufferANDROID = 0;
  50526. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  50527. PFN_vkGetMemoryFdKHR vkGetMemoryFdKHR = 0;
  50528. PFN_vkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHR = 0;
  50529. PFN_vkGetMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXT = 0;
  50530. #ifdef VK_USE_PLATFORM_WIN32_KHR
  50531. PFN_vkGetMemoryWin32HandleKHR vkGetMemoryWin32HandleKHR = 0;
  50532. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  50533. #ifdef VK_USE_PLATFORM_WIN32_KHR
  50534. PFN_vkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNV = 0;
  50535. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  50536. #ifdef VK_USE_PLATFORM_WIN32_KHR
  50537. PFN_vkGetMemoryWin32HandlePropertiesKHR vkGetMemoryWin32HandlePropertiesKHR = 0;
  50538. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  50539. PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE = 0;
  50540. PFN_vkGetPerformanceParameterINTEL vkGetPerformanceParameterINTEL = 0;
  50541. PFN_vkGetPipelineCacheData vkGetPipelineCacheData = 0;
  50542. PFN_vkGetQueryPoolResults vkGetQueryPoolResults = 0;
  50543. PFN_vkGetRayTracingShaderGroupHandlesNV vkGetRayTracingShaderGroupHandlesNV = 0;
  50544. PFN_vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE = 0;
  50545. PFN_vkGetRenderAreaGranularity vkGetRenderAreaGranularity = 0;
  50546. PFN_vkGetSemaphoreFdKHR vkGetSemaphoreFdKHR = 0;
  50547. #ifdef VK_USE_PLATFORM_WIN32_KHR
  50548. PFN_vkGetSemaphoreWin32HandleKHR vkGetSemaphoreWin32HandleKHR = 0;
  50549. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  50550. PFN_vkGetShaderInfoAMD vkGetShaderInfoAMD = 0;
  50551. PFN_vkGetSwapchainCounterEXT vkGetSwapchainCounterEXT = 0;
  50552. PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR = 0;
  50553. PFN_vkGetSwapchainStatusKHR vkGetSwapchainStatusKHR = 0;
  50554. PFN_vkGetValidationCacheDataEXT vkGetValidationCacheDataEXT = 0;
  50555. PFN_vkImportFenceFdKHR vkImportFenceFdKHR = 0;
  50556. #ifdef VK_USE_PLATFORM_WIN32_KHR
  50557. PFN_vkImportFenceWin32HandleKHR vkImportFenceWin32HandleKHR = 0;
  50558. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  50559. PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR = 0;
  50560. #ifdef VK_USE_PLATFORM_WIN32_KHR
  50561. PFN_vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR = 0;
  50562. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  50563. PFN_vkInitializePerformanceApiINTEL vkInitializePerformanceApiINTEL = 0;
  50564. PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges = 0;
  50565. PFN_vkMapMemory vkMapMemory = 0;
  50566. PFN_vkMergePipelineCaches vkMergePipelineCaches = 0;
  50567. PFN_vkMergeValidationCachesEXT vkMergeValidationCachesEXT = 0;
  50568. PFN_vkRegisterDeviceEventEXT vkRegisterDeviceEventEXT = 0;
  50569. PFN_vkRegisterDisplayEventEXT vkRegisterDisplayEventEXT = 0;
  50570. PFN_vkRegisterObjectsNVX vkRegisterObjectsNVX = 0;
  50571. #ifdef VK_USE_PLATFORM_WIN32_KHR
  50572. PFN_vkReleaseFullScreenExclusiveModeEXT vkReleaseFullScreenExclusiveModeEXT = 0;
  50573. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  50574. PFN_vkReleasePerformanceConfigurationINTEL vkReleasePerformanceConfigurationINTEL = 0;
  50575. PFN_vkResetCommandPool vkResetCommandPool = 0;
  50576. PFN_vkResetDescriptorPool vkResetDescriptorPool = 0;
  50577. PFN_vkResetEvent vkResetEvent = 0;
  50578. PFN_vkResetFences vkResetFences = 0;
  50579. PFN_vkResetQueryPoolEXT vkResetQueryPoolEXT = 0;
  50580. PFN_vkSetDebugUtilsObjectNameEXT vkSetDebugUtilsObjectNameEXT = 0;
  50581. PFN_vkSetDebugUtilsObjectTagEXT vkSetDebugUtilsObjectTagEXT = 0;
  50582. PFN_vkSetEvent vkSetEvent = 0;
  50583. PFN_vkSetHdrMetadataEXT vkSetHdrMetadataEXT = 0;
  50584. PFN_vkSetLocalDimmingAMD vkSetLocalDimmingAMD = 0;
  50585. PFN_vkTrimCommandPool vkTrimCommandPool = 0;
  50586. PFN_vkTrimCommandPoolKHR vkTrimCommandPoolKHR = 0;
  50587. PFN_vkUninitializePerformanceApiINTEL vkUninitializePerformanceApiINTEL = 0;
  50588. PFN_vkUnmapMemory vkUnmapMemory = 0;
  50589. PFN_vkUnregisterObjectsNVX vkUnregisterObjectsNVX = 0;
  50590. PFN_vkUpdateDescriptorSetWithTemplate vkUpdateDescriptorSetWithTemplate = 0;
  50591. PFN_vkUpdateDescriptorSetWithTemplateKHR vkUpdateDescriptorSetWithTemplateKHR = 0;
  50592. PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets = 0;
  50593. PFN_vkWaitForFences vkWaitForFences = 0;
  50594. #ifdef VK_USE_PLATFORM_ANDROID_KHR
  50595. PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR = 0;
  50596. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  50597. PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT = 0;
  50598. PFN_vkCreateDebugUtilsMessengerEXT vkCreateDebugUtilsMessengerEXT = 0;
  50599. PFN_vkCreateDisplayPlaneSurfaceKHR vkCreateDisplayPlaneSurfaceKHR = 0;
  50600. PFN_vkCreateHeadlessSurfaceEXT vkCreateHeadlessSurfaceEXT = 0;
  50601. #ifdef VK_USE_PLATFORM_IOS_MVK
  50602. PFN_vkCreateIOSSurfaceMVK vkCreateIOSSurfaceMVK = 0;
  50603. #endif /*VK_USE_PLATFORM_IOS_MVK*/
  50604. #ifdef VK_USE_PLATFORM_FUCHSIA
  50605. PFN_vkCreateImagePipeSurfaceFUCHSIA vkCreateImagePipeSurfaceFUCHSIA = 0;
  50606. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  50607. #ifdef VK_USE_PLATFORM_MACOS_MVK
  50608. PFN_vkCreateMacOSSurfaceMVK vkCreateMacOSSurfaceMVK = 0;
  50609. #endif /*VK_USE_PLATFORM_MACOS_MVK*/
  50610. #ifdef VK_USE_PLATFORM_METAL_EXT
  50611. PFN_vkCreateMetalSurfaceEXT vkCreateMetalSurfaceEXT = 0;
  50612. #endif /*VK_USE_PLATFORM_METAL_EXT*/
  50613. #ifdef VK_USE_PLATFORM_GGP
  50614. PFN_vkCreateStreamDescriptorSurfaceGGP vkCreateStreamDescriptorSurfaceGGP = 0;
  50615. #endif /*VK_USE_PLATFORM_GGP*/
  50616. #ifdef VK_USE_PLATFORM_VI_NN
  50617. PFN_vkCreateViSurfaceNN vkCreateViSurfaceNN = 0;
  50618. #endif /*VK_USE_PLATFORM_VI_NN*/
  50619. #ifdef VK_USE_PLATFORM_WAYLAND_KHR
  50620. PFN_vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR = 0;
  50621. #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
  50622. #ifdef VK_USE_PLATFORM_WIN32_KHR
  50623. PFN_vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR = 0;
  50624. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  50625. #ifdef VK_USE_PLATFORM_XCB_KHR
  50626. PFN_vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR = 0;
  50627. #endif /*VK_USE_PLATFORM_XCB_KHR*/
  50628. #ifdef VK_USE_PLATFORM_XLIB_KHR
  50629. PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR = 0;
  50630. #endif /*VK_USE_PLATFORM_XLIB_KHR*/
  50631. PFN_vkDebugReportMessageEXT vkDebugReportMessageEXT = 0;
  50632. PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT = 0;
  50633. PFN_vkDestroyDebugUtilsMessengerEXT vkDestroyDebugUtilsMessengerEXT = 0;
  50634. PFN_vkDestroyInstance vkDestroyInstance = 0;
  50635. PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR = 0;
  50636. PFN_vkEnumeratePhysicalDeviceGroups vkEnumeratePhysicalDeviceGroups = 0;
  50637. PFN_vkEnumeratePhysicalDeviceGroupsKHR vkEnumeratePhysicalDeviceGroupsKHR = 0;
  50638. PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices = 0;
  50639. PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr = 0;
  50640. PFN_vkSubmitDebugUtilsMessageEXT vkSubmitDebugUtilsMessageEXT = 0;
  50641. #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
  50642. PFN_vkAcquireXlibDisplayEXT vkAcquireXlibDisplayEXT = 0;
  50643. #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
  50644. PFN_vkCreateDevice vkCreateDevice = 0;
  50645. PFN_vkCreateDisplayModeKHR vkCreateDisplayModeKHR = 0;
  50646. PFN_vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties = 0;
  50647. PFN_vkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerProperties = 0;
  50648. PFN_vkGetDisplayModeProperties2KHR vkGetDisplayModeProperties2KHR = 0;
  50649. PFN_vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR = 0;
  50650. PFN_vkGetDisplayPlaneCapabilities2KHR vkGetDisplayPlaneCapabilities2KHR = 0;
  50651. PFN_vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR = 0;
  50652. PFN_vkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHR = 0;
  50653. PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = 0;
  50654. PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = 0;
  50655. PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR vkGetPhysicalDeviceDisplayPlaneProperties2KHR = 0;
  50656. PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR = 0;
  50657. PFN_vkGetPhysicalDeviceDisplayProperties2KHR vkGetPhysicalDeviceDisplayProperties2KHR = 0;
  50658. PFN_vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR = 0;
  50659. PFN_vkGetPhysicalDeviceExternalBufferProperties vkGetPhysicalDeviceExternalBufferProperties = 0;
  50660. PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR vkGetPhysicalDeviceExternalBufferPropertiesKHR = 0;
  50661. PFN_vkGetPhysicalDeviceExternalFenceProperties vkGetPhysicalDeviceExternalFenceProperties = 0;
  50662. PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR vkGetPhysicalDeviceExternalFencePropertiesKHR = 0;
  50663. PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV vkGetPhysicalDeviceExternalImageFormatPropertiesNV = 0;
  50664. PFN_vkGetPhysicalDeviceExternalSemaphoreProperties vkGetPhysicalDeviceExternalSemaphoreProperties = 0;
  50665. PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = 0;
  50666. PFN_vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures = 0;
  50667. PFN_vkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2 = 0;
  50668. PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR = 0;
  50669. PFN_vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties = 0;
  50670. PFN_vkGetPhysicalDeviceFormatProperties2 vkGetPhysicalDeviceFormatProperties2 = 0;
  50671. PFN_vkGetPhysicalDeviceFormatProperties2KHR vkGetPhysicalDeviceFormatProperties2KHR = 0;
  50672. PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX = 0;
  50673. PFN_vkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatProperties = 0;
  50674. PFN_vkGetPhysicalDeviceImageFormatProperties2 vkGetPhysicalDeviceImageFormatProperties2 = 0;
  50675. PFN_vkGetPhysicalDeviceImageFormatProperties2KHR vkGetPhysicalDeviceImageFormatProperties2KHR = 0;
  50676. PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties = 0;
  50677. PFN_vkGetPhysicalDeviceMemoryProperties2 vkGetPhysicalDeviceMemoryProperties2 = 0;
  50678. PFN_vkGetPhysicalDeviceMemoryProperties2KHR vkGetPhysicalDeviceMemoryProperties2KHR = 0;
  50679. PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT vkGetPhysicalDeviceMultisamplePropertiesEXT = 0;
  50680. PFN_vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR = 0;
  50681. PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties = 0;
  50682. PFN_vkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2 = 0;
  50683. PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR = 0;
  50684. PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties = 0;
  50685. PFN_vkGetPhysicalDeviceQueueFamilyProperties2 vkGetPhysicalDeviceQueueFamilyProperties2 = 0;
  50686. PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR vkGetPhysicalDeviceQueueFamilyProperties2KHR = 0;
  50687. PFN_vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatProperties = 0;
  50688. PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 vkGetPhysicalDeviceSparseImageFormatProperties2 = 0;
  50689. PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR vkGetPhysicalDeviceSparseImageFormatProperties2KHR = 0;
  50690. PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = 0;
  50691. PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT vkGetPhysicalDeviceSurfaceCapabilities2EXT = 0;
  50692. PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR vkGetPhysicalDeviceSurfaceCapabilities2KHR = 0;
  50693. PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR = 0;
  50694. PFN_vkGetPhysicalDeviceSurfaceFormats2KHR vkGetPhysicalDeviceSurfaceFormats2KHR = 0;
  50695. PFN_vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHR = 0;
  50696. #ifdef VK_USE_PLATFORM_WIN32_KHR
  50697. PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT vkGetPhysicalDeviceSurfacePresentModes2EXT = 0;
  50698. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  50699. PFN_vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR = 0;
  50700. PFN_vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHR = 0;
  50701. #ifdef VK_USE_PLATFORM_WAYLAND_KHR
  50702. PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR = 0;
  50703. #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
  50704. #ifdef VK_USE_PLATFORM_WIN32_KHR
  50705. PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR = 0;
  50706. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  50707. #ifdef VK_USE_PLATFORM_XCB_KHR
  50708. PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR = 0;
  50709. #endif /*VK_USE_PLATFORM_XCB_KHR*/
  50710. #ifdef VK_USE_PLATFORM_XLIB_KHR
  50711. PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR = 0;
  50712. #endif /*VK_USE_PLATFORM_XLIB_KHR*/
  50713. #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
  50714. PFN_vkGetRandROutputDisplayEXT vkGetRandROutputDisplayEXT = 0;
  50715. #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
  50716. PFN_vkReleaseDisplayEXT vkReleaseDisplayEXT = 0;
  50717. PFN_vkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNV = 0;
  50718. PFN_vkQueueBeginDebugUtilsLabelEXT vkQueueBeginDebugUtilsLabelEXT = 0;
  50719. PFN_vkQueueBindSparse vkQueueBindSparse = 0;
  50720. PFN_vkQueueEndDebugUtilsLabelEXT vkQueueEndDebugUtilsLabelEXT = 0;
  50721. PFN_vkQueueInsertDebugUtilsLabelEXT vkQueueInsertDebugUtilsLabelEXT = 0;
  50722. PFN_vkQueuePresentKHR vkQueuePresentKHR = 0;
  50723. PFN_vkQueueSetPerformanceConfigurationINTEL vkQueueSetPerformanceConfigurationINTEL = 0;
  50724. PFN_vkQueueSubmit vkQueueSubmit = 0;
  50725. PFN_vkQueueWaitIdle vkQueueWaitIdle = 0;
  50726. public:
  50727. DispatchLoaderDynamic() = default;
  50728. #if !defined(VK_NO_PROTOTYPES)
  50729. // This interface is designed to be used for per-device function pointers in combination with a linked vulkan library.
  50730. DispatchLoaderDynamic(vk::Instance const& instance, vk::Device const& device = {})
  50731. {
  50732. init(instance, device);
  50733. }
  50734. // This interface is designed to be used for per-device function pointers in combination with a linked vulkan library.
  50735. void init(vk::Instance const& instance, vk::Device const& device = {})
  50736. {
  50737. init(static_cast<VkInstance>(instance), ::vkGetInstanceProcAddr, static_cast<VkDevice>(device), device ? ::vkGetDeviceProcAddr : nullptr);
  50738. }
  50739. #endif // !defined(VK_NO_PROTOTYPES)
  50740. // This interface does not require a linked vulkan library.
  50741. DispatchLoaderDynamic( VkInstance instance, PFN_vkGetInstanceProcAddr getInstanceProcAddr, VkDevice device = VK_NULL_HANDLE, PFN_vkGetDeviceProcAddr getDeviceProcAddr = nullptr )
  50742. {
  50743. init( instance, getInstanceProcAddr, device, getDeviceProcAddr );
  50744. }
  50745. // This interface does not require a linked vulkan library.
  50746. void init( VkInstance instance, PFN_vkGetInstanceProcAddr getInstanceProcAddr, VkDevice device = VK_NULL_HANDLE, PFN_vkGetDeviceProcAddr getDeviceProcAddr = nullptr )
  50747. {
  50748. VULKAN_HPP_ASSERT(instance && getInstanceProcAddr);
  50749. VULKAN_HPP_ASSERT(!!device == !!getDeviceProcAddr);
  50750. vkGetInstanceProcAddr = getInstanceProcAddr;
  50751. vkGetDeviceProcAddr = getDeviceProcAddr ? getDeviceProcAddr : PFN_vkGetDeviceProcAddr( vkGetInstanceProcAddr( instance, "vkGetDeviceProcAddr") );
  50752. vkCreateInstance = PFN_vkCreateInstance( vkGetInstanceProcAddr( instance, "vkCreateInstance" ) );
  50753. vkEnumerateInstanceExtensionProperties = PFN_vkEnumerateInstanceExtensionProperties( vkGetInstanceProcAddr( instance, "vkEnumerateInstanceExtensionProperties" ) );
  50754. vkEnumerateInstanceLayerProperties = PFN_vkEnumerateInstanceLayerProperties( vkGetInstanceProcAddr( instance, "vkEnumerateInstanceLayerProperties" ) );
  50755. vkEnumerateInstanceVersion = PFN_vkEnumerateInstanceVersion( vkGetInstanceProcAddr( instance, "vkEnumerateInstanceVersion" ) );
  50756. vkBeginCommandBuffer = PFN_vkBeginCommandBuffer( device ? vkGetDeviceProcAddr( device, "vkBeginCommandBuffer" ) : vkGetInstanceProcAddr( instance, "vkBeginCommandBuffer" ) );
  50757. vkCmdBeginConditionalRenderingEXT = PFN_vkCmdBeginConditionalRenderingEXT( device ? vkGetDeviceProcAddr( device, "vkCmdBeginConditionalRenderingEXT" ) : vkGetInstanceProcAddr( instance, "vkCmdBeginConditionalRenderingEXT" ) );
  50758. vkCmdBeginDebugUtilsLabelEXT = PFN_vkCmdBeginDebugUtilsLabelEXT( device ? vkGetDeviceProcAddr( device, "vkCmdBeginDebugUtilsLabelEXT" ) : vkGetInstanceProcAddr( instance, "vkCmdBeginDebugUtilsLabelEXT" ) );
  50759. vkCmdBeginQuery = PFN_vkCmdBeginQuery( device ? vkGetDeviceProcAddr( device, "vkCmdBeginQuery" ) : vkGetInstanceProcAddr( instance, "vkCmdBeginQuery" ) );
  50760. vkCmdBeginQueryIndexedEXT = PFN_vkCmdBeginQueryIndexedEXT( device ? vkGetDeviceProcAddr( device, "vkCmdBeginQueryIndexedEXT" ) : vkGetInstanceProcAddr( instance, "vkCmdBeginQueryIndexedEXT" ) );
  50761. vkCmdBeginRenderPass = PFN_vkCmdBeginRenderPass( device ? vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass" ) : vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass" ) );
  50762. vkCmdBeginRenderPass2KHR = PFN_vkCmdBeginRenderPass2KHR( device ? vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2KHR" ) : vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass2KHR" ) );
  50763. vkCmdBeginTransformFeedbackEXT = PFN_vkCmdBeginTransformFeedbackEXT( device ? vkGetDeviceProcAddr( device, "vkCmdBeginTransformFeedbackEXT" ) : vkGetInstanceProcAddr( instance, "vkCmdBeginTransformFeedbackEXT" ) );
  50764. vkCmdBindDescriptorSets = PFN_vkCmdBindDescriptorSets( device ? vkGetDeviceProcAddr( device, "vkCmdBindDescriptorSets" ) : vkGetInstanceProcAddr( instance, "vkCmdBindDescriptorSets" ) );
  50765. vkCmdBindIndexBuffer = PFN_vkCmdBindIndexBuffer( device ? vkGetDeviceProcAddr( device, "vkCmdBindIndexBuffer" ) : vkGetInstanceProcAddr( instance, "vkCmdBindIndexBuffer" ) );
  50766. vkCmdBindPipeline = PFN_vkCmdBindPipeline( device ? vkGetDeviceProcAddr( device, "vkCmdBindPipeline" ) : vkGetInstanceProcAddr( instance, "vkCmdBindPipeline" ) );
  50767. vkCmdBindShadingRateImageNV = PFN_vkCmdBindShadingRateImageNV( device ? vkGetDeviceProcAddr( device, "vkCmdBindShadingRateImageNV" ) : vkGetInstanceProcAddr( instance, "vkCmdBindShadingRateImageNV" ) );
  50768. vkCmdBindTransformFeedbackBuffersEXT = PFN_vkCmdBindTransformFeedbackBuffersEXT( device ? vkGetDeviceProcAddr( device, "vkCmdBindTransformFeedbackBuffersEXT" ) : vkGetInstanceProcAddr( instance, "vkCmdBindTransformFeedbackBuffersEXT" ) );
  50769. vkCmdBindVertexBuffers = PFN_vkCmdBindVertexBuffers( device ? vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers" ) : vkGetInstanceProcAddr( instance, "vkCmdBindVertexBuffers" ) );
  50770. vkCmdBlitImage = PFN_vkCmdBlitImage( device ? vkGetDeviceProcAddr( device, "vkCmdBlitImage" ) : vkGetInstanceProcAddr( instance, "vkCmdBlitImage" ) );
  50771. vkCmdBuildAccelerationStructureNV = PFN_vkCmdBuildAccelerationStructureNV( device ? vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructureNV" ) : vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructureNV" ) );
  50772. vkCmdClearAttachments = PFN_vkCmdClearAttachments( device ? vkGetDeviceProcAddr( device, "vkCmdClearAttachments" ) : vkGetInstanceProcAddr( instance, "vkCmdClearAttachments" ) );
  50773. vkCmdClearColorImage = PFN_vkCmdClearColorImage( device ? vkGetDeviceProcAddr( device, "vkCmdClearColorImage" ) : vkGetInstanceProcAddr( instance, "vkCmdClearColorImage" ) );
  50774. vkCmdClearDepthStencilImage = PFN_vkCmdClearDepthStencilImage( device ? vkGetDeviceProcAddr( device, "vkCmdClearDepthStencilImage" ) : vkGetInstanceProcAddr( instance, "vkCmdClearDepthStencilImage" ) );
  50775. vkCmdCopyAccelerationStructureNV = PFN_vkCmdCopyAccelerationStructureNV( device ? vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureNV" ) : vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureNV" ) );
  50776. vkCmdCopyBuffer = PFN_vkCmdCopyBuffer( device ? vkGetDeviceProcAddr( device, "vkCmdCopyBuffer" ) : vkGetInstanceProcAddr( instance, "vkCmdCopyBuffer" ) );
  50777. vkCmdCopyBufferToImage = PFN_vkCmdCopyBufferToImage( device ? vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage" ) : vkGetInstanceProcAddr( instance, "vkCmdCopyBufferToImage" ) );
  50778. vkCmdCopyImage = PFN_vkCmdCopyImage( device ? vkGetDeviceProcAddr( device, "vkCmdCopyImage" ) : vkGetInstanceProcAddr( instance, "vkCmdCopyImage" ) );
  50779. vkCmdCopyImageToBuffer = PFN_vkCmdCopyImageToBuffer( device ? vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer" ) : vkGetInstanceProcAddr( instance, "vkCmdCopyImageToBuffer" ) );
  50780. vkCmdCopyQueryPoolResults = PFN_vkCmdCopyQueryPoolResults( device ? vkGetDeviceProcAddr( device, "vkCmdCopyQueryPoolResults" ) : vkGetInstanceProcAddr( instance, "vkCmdCopyQueryPoolResults" ) );
  50781. vkCmdDebugMarkerBeginEXT = PFN_vkCmdDebugMarkerBeginEXT( device ? vkGetDeviceProcAddr( device, "vkCmdDebugMarkerBeginEXT" ) : vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerBeginEXT" ) );
  50782. vkCmdDebugMarkerEndEXT = PFN_vkCmdDebugMarkerEndEXT( device ? vkGetDeviceProcAddr( device, "vkCmdDebugMarkerEndEXT" ) : vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerEndEXT" ) );
  50783. vkCmdDebugMarkerInsertEXT = PFN_vkCmdDebugMarkerInsertEXT( device ? vkGetDeviceProcAddr( device, "vkCmdDebugMarkerInsertEXT" ) : vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerInsertEXT" ) );
  50784. vkCmdDispatch = PFN_vkCmdDispatch( device ? vkGetDeviceProcAddr( device, "vkCmdDispatch" ) : vkGetInstanceProcAddr( instance, "vkCmdDispatch" ) );
  50785. vkCmdDispatchBase = PFN_vkCmdDispatchBase( device ? vkGetDeviceProcAddr( device, "vkCmdDispatchBase" ) : vkGetInstanceProcAddr( instance, "vkCmdDispatchBase" ) );
  50786. vkCmdDispatchBaseKHR = PFN_vkCmdDispatchBaseKHR( device ? vkGetDeviceProcAddr( device, "vkCmdDispatchBaseKHR" ) : vkGetInstanceProcAddr( instance, "vkCmdDispatchBaseKHR" ) );
  50787. vkCmdDispatchIndirect = PFN_vkCmdDispatchIndirect( device ? vkGetDeviceProcAddr( device, "vkCmdDispatchIndirect" ) : vkGetInstanceProcAddr( instance, "vkCmdDispatchIndirect" ) );
  50788. vkCmdDraw = PFN_vkCmdDraw( device ? vkGetDeviceProcAddr( device, "vkCmdDraw" ) : vkGetInstanceProcAddr( instance, "vkCmdDraw" ) );
  50789. vkCmdDrawIndexed = PFN_vkCmdDrawIndexed( device ? vkGetDeviceProcAddr( device, "vkCmdDrawIndexed" ) : vkGetInstanceProcAddr( instance, "vkCmdDrawIndexed" ) );
  50790. vkCmdDrawIndexedIndirect = PFN_vkCmdDrawIndexedIndirect( device ? vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirect" ) : vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirect" ) );
  50791. vkCmdDrawIndexedIndirectCountAMD = PFN_vkCmdDrawIndexedIndirectCountAMD( device ? vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountAMD" ) : vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCountAMD" ) );
  50792. vkCmdDrawIndexedIndirectCountKHR = PFN_vkCmdDrawIndexedIndirectCountKHR( device ? vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountKHR" ) : vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCountKHR" ) );
  50793. vkCmdDrawIndirect = PFN_vkCmdDrawIndirect( device ? vkGetDeviceProcAddr( device, "vkCmdDrawIndirect" ) : vkGetInstanceProcAddr( instance, "vkCmdDrawIndirect" ) );
  50794. vkCmdDrawIndirectByteCountEXT = PFN_vkCmdDrawIndirectByteCountEXT( device ? vkGetDeviceProcAddr( device, "vkCmdDrawIndirectByteCountEXT" ) : vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectByteCountEXT" ) );
  50795. vkCmdDrawIndirectCountAMD = PFN_vkCmdDrawIndirectCountAMD( device ? vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountAMD" ) : vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCountAMD" ) );
  50796. vkCmdDrawIndirectCountKHR = PFN_vkCmdDrawIndirectCountKHR( device ? vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountKHR" ) : vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCountKHR" ) );
  50797. vkCmdDrawMeshTasksIndirectCountNV = PFN_vkCmdDrawMeshTasksIndirectCountNV( device ? vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectCountNV" ) : vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectCountNV" ) );
  50798. vkCmdDrawMeshTasksIndirectNV = PFN_vkCmdDrawMeshTasksIndirectNV( device ? vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectNV" ) : vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectNV" ) );
  50799. vkCmdDrawMeshTasksNV = PFN_vkCmdDrawMeshTasksNV( device ? vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksNV" ) : vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksNV" ) );
  50800. vkCmdEndConditionalRenderingEXT = PFN_vkCmdEndConditionalRenderingEXT( device ? vkGetDeviceProcAddr( device, "vkCmdEndConditionalRenderingEXT" ) : vkGetInstanceProcAddr( instance, "vkCmdEndConditionalRenderingEXT" ) );
  50801. vkCmdEndDebugUtilsLabelEXT = PFN_vkCmdEndDebugUtilsLabelEXT( device ? vkGetDeviceProcAddr( device, "vkCmdEndDebugUtilsLabelEXT" ) : vkGetInstanceProcAddr( instance, "vkCmdEndDebugUtilsLabelEXT" ) );
  50802. vkCmdEndQuery = PFN_vkCmdEndQuery( device ? vkGetDeviceProcAddr( device, "vkCmdEndQuery" ) : vkGetInstanceProcAddr( instance, "vkCmdEndQuery" ) );
  50803. vkCmdEndQueryIndexedEXT = PFN_vkCmdEndQueryIndexedEXT( device ? vkGetDeviceProcAddr( device, "vkCmdEndQueryIndexedEXT" ) : vkGetInstanceProcAddr( instance, "vkCmdEndQueryIndexedEXT" ) );
  50804. vkCmdEndRenderPass = PFN_vkCmdEndRenderPass( device ? vkGetDeviceProcAddr( device, "vkCmdEndRenderPass" ) : vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass" ) );
  50805. vkCmdEndRenderPass2KHR = PFN_vkCmdEndRenderPass2KHR( device ? vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2KHR" ) : vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass2KHR" ) );
  50806. vkCmdEndTransformFeedbackEXT = PFN_vkCmdEndTransformFeedbackEXT( device ? vkGetDeviceProcAddr( device, "vkCmdEndTransformFeedbackEXT" ) : vkGetInstanceProcAddr( instance, "vkCmdEndTransformFeedbackEXT" ) );
  50807. vkCmdExecuteCommands = PFN_vkCmdExecuteCommands( device ? vkGetDeviceProcAddr( device, "vkCmdExecuteCommands" ) : vkGetInstanceProcAddr( instance, "vkCmdExecuteCommands" ) );
  50808. vkCmdFillBuffer = PFN_vkCmdFillBuffer( device ? vkGetDeviceProcAddr( device, "vkCmdFillBuffer" ) : vkGetInstanceProcAddr( instance, "vkCmdFillBuffer" ) );
  50809. vkCmdInsertDebugUtilsLabelEXT = PFN_vkCmdInsertDebugUtilsLabelEXT( device ? vkGetDeviceProcAddr( device, "vkCmdInsertDebugUtilsLabelEXT" ) : vkGetInstanceProcAddr( instance, "vkCmdInsertDebugUtilsLabelEXT" ) );
  50810. vkCmdNextSubpass = PFN_vkCmdNextSubpass( device ? vkGetDeviceProcAddr( device, "vkCmdNextSubpass" ) : vkGetInstanceProcAddr( instance, "vkCmdNextSubpass" ) );
  50811. vkCmdNextSubpass2KHR = PFN_vkCmdNextSubpass2KHR( device ? vkGetDeviceProcAddr( device, "vkCmdNextSubpass2KHR" ) : vkGetInstanceProcAddr( instance, "vkCmdNextSubpass2KHR" ) );
  50812. vkCmdPipelineBarrier = PFN_vkCmdPipelineBarrier( device ? vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier" ) : vkGetInstanceProcAddr( instance, "vkCmdPipelineBarrier" ) );
  50813. vkCmdProcessCommandsNVX = PFN_vkCmdProcessCommandsNVX( device ? vkGetDeviceProcAddr( device, "vkCmdProcessCommandsNVX" ) : vkGetInstanceProcAddr( instance, "vkCmdProcessCommandsNVX" ) );
  50814. vkCmdPushConstants = PFN_vkCmdPushConstants( device ? vkGetDeviceProcAddr( device, "vkCmdPushConstants" ) : vkGetInstanceProcAddr( instance, "vkCmdPushConstants" ) );
  50815. vkCmdPushDescriptorSetKHR = PFN_vkCmdPushDescriptorSetKHR( device ? vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetKHR" ) : vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSetKHR" ) );
  50816. vkCmdPushDescriptorSetWithTemplateKHR = PFN_vkCmdPushDescriptorSetWithTemplateKHR( device ? vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetWithTemplateKHR" ) : vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSetWithTemplateKHR" ) );
  50817. vkCmdReserveSpaceForCommandsNVX = PFN_vkCmdReserveSpaceForCommandsNVX( device ? vkGetDeviceProcAddr( device, "vkCmdReserveSpaceForCommandsNVX" ) : vkGetInstanceProcAddr( instance, "vkCmdReserveSpaceForCommandsNVX" ) );
  50818. vkCmdResetEvent = PFN_vkCmdResetEvent( device ? vkGetDeviceProcAddr( device, "vkCmdResetEvent" ) : vkGetInstanceProcAddr( instance, "vkCmdResetEvent" ) );
  50819. vkCmdResetQueryPool = PFN_vkCmdResetQueryPool( device ? vkGetDeviceProcAddr( device, "vkCmdResetQueryPool" ) : vkGetInstanceProcAddr( instance, "vkCmdResetQueryPool" ) );
  50820. vkCmdResolveImage = PFN_vkCmdResolveImage( device ? vkGetDeviceProcAddr( device, "vkCmdResolveImage" ) : vkGetInstanceProcAddr( instance, "vkCmdResolveImage" ) );
  50821. vkCmdSetBlendConstants = PFN_vkCmdSetBlendConstants( device ? vkGetDeviceProcAddr( device, "vkCmdSetBlendConstants" ) : vkGetInstanceProcAddr( instance, "vkCmdSetBlendConstants" ) );
  50822. vkCmdSetCheckpointNV = PFN_vkCmdSetCheckpointNV( device ? vkGetDeviceProcAddr( device, "vkCmdSetCheckpointNV" ) : vkGetInstanceProcAddr( instance, "vkCmdSetCheckpointNV" ) );
  50823. vkCmdSetCoarseSampleOrderNV = PFN_vkCmdSetCoarseSampleOrderNV( device ? vkGetDeviceProcAddr( device, "vkCmdSetCoarseSampleOrderNV" ) : vkGetInstanceProcAddr( instance, "vkCmdSetCoarseSampleOrderNV" ) );
  50824. vkCmdSetDepthBias = PFN_vkCmdSetDepthBias( device ? vkGetDeviceProcAddr( device, "vkCmdSetDepthBias" ) : vkGetInstanceProcAddr( instance, "vkCmdSetDepthBias" ) );
  50825. vkCmdSetDepthBounds = PFN_vkCmdSetDepthBounds( device ? vkGetDeviceProcAddr( device, "vkCmdSetDepthBounds" ) : vkGetInstanceProcAddr( instance, "vkCmdSetDepthBounds" ) );
  50826. vkCmdSetDeviceMask = PFN_vkCmdSetDeviceMask( device ? vkGetDeviceProcAddr( device, "vkCmdSetDeviceMask" ) : vkGetInstanceProcAddr( instance, "vkCmdSetDeviceMask" ) );
  50827. vkCmdSetDeviceMaskKHR = PFN_vkCmdSetDeviceMaskKHR( device ? vkGetDeviceProcAddr( device, "vkCmdSetDeviceMaskKHR" ) : vkGetInstanceProcAddr( instance, "vkCmdSetDeviceMaskKHR" ) );
  50828. vkCmdSetDiscardRectangleEXT = PFN_vkCmdSetDiscardRectangleEXT( device ? vkGetDeviceProcAddr( device, "vkCmdSetDiscardRectangleEXT" ) : vkGetInstanceProcAddr( instance, "vkCmdSetDiscardRectangleEXT" ) );
  50829. vkCmdSetEvent = PFN_vkCmdSetEvent( device ? vkGetDeviceProcAddr( device, "vkCmdSetEvent" ) : vkGetInstanceProcAddr( instance, "vkCmdSetEvent" ) );
  50830. vkCmdSetExclusiveScissorNV = PFN_vkCmdSetExclusiveScissorNV( device ? vkGetDeviceProcAddr( device, "vkCmdSetExclusiveScissorNV" ) : vkGetInstanceProcAddr( instance, "vkCmdSetExclusiveScissorNV" ) );
  50831. vkCmdSetLineWidth = PFN_vkCmdSetLineWidth( device ? vkGetDeviceProcAddr( device, "vkCmdSetLineWidth" ) : vkGetInstanceProcAddr( instance, "vkCmdSetLineWidth" ) );
  50832. vkCmdSetPerformanceMarkerINTEL = PFN_vkCmdSetPerformanceMarkerINTEL( device ? vkGetDeviceProcAddr( device, "vkCmdSetPerformanceMarkerINTEL" ) : vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceMarkerINTEL" ) );
  50833. vkCmdSetPerformanceOverrideINTEL = PFN_vkCmdSetPerformanceOverrideINTEL( device ? vkGetDeviceProcAddr( device, "vkCmdSetPerformanceOverrideINTEL" ) : vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceOverrideINTEL" ) );
  50834. vkCmdSetPerformanceStreamMarkerINTEL = PFN_vkCmdSetPerformanceStreamMarkerINTEL( device ? vkGetDeviceProcAddr( device, "vkCmdSetPerformanceStreamMarkerINTEL" ) : vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceStreamMarkerINTEL" ) );
  50835. vkCmdSetSampleLocationsEXT = PFN_vkCmdSetSampleLocationsEXT( device ? vkGetDeviceProcAddr( device, "vkCmdSetSampleLocationsEXT" ) : vkGetInstanceProcAddr( instance, "vkCmdSetSampleLocationsEXT" ) );
  50836. vkCmdSetScissor = PFN_vkCmdSetScissor( device ? vkGetDeviceProcAddr( device, "vkCmdSetScissor" ) : vkGetInstanceProcAddr( instance, "vkCmdSetScissor" ) );
  50837. vkCmdSetStencilCompareMask = PFN_vkCmdSetStencilCompareMask( device ? vkGetDeviceProcAddr( device, "vkCmdSetStencilCompareMask" ) : vkGetInstanceProcAddr( instance, "vkCmdSetStencilCompareMask" ) );
  50838. vkCmdSetStencilReference = PFN_vkCmdSetStencilReference( device ? vkGetDeviceProcAddr( device, "vkCmdSetStencilReference" ) : vkGetInstanceProcAddr( instance, "vkCmdSetStencilReference" ) );
  50839. vkCmdSetStencilWriteMask = PFN_vkCmdSetStencilWriteMask( device ? vkGetDeviceProcAddr( device, "vkCmdSetStencilWriteMask" ) : vkGetInstanceProcAddr( instance, "vkCmdSetStencilWriteMask" ) );
  50840. vkCmdSetViewport = PFN_vkCmdSetViewport( device ? vkGetDeviceProcAddr( device, "vkCmdSetViewport" ) : vkGetInstanceProcAddr( instance, "vkCmdSetViewport" ) );
  50841. vkCmdSetViewportShadingRatePaletteNV = PFN_vkCmdSetViewportShadingRatePaletteNV( device ? vkGetDeviceProcAddr( device, "vkCmdSetViewportShadingRatePaletteNV" ) : vkGetInstanceProcAddr( instance, "vkCmdSetViewportShadingRatePaletteNV" ) );
  50842. vkCmdSetViewportWScalingNV = PFN_vkCmdSetViewportWScalingNV( device ? vkGetDeviceProcAddr( device, "vkCmdSetViewportWScalingNV" ) : vkGetInstanceProcAddr( instance, "vkCmdSetViewportWScalingNV" ) );
  50843. vkCmdTraceRaysNV = PFN_vkCmdTraceRaysNV( device ? vkGetDeviceProcAddr( device, "vkCmdTraceRaysNV" ) : vkGetInstanceProcAddr( instance, "vkCmdTraceRaysNV" ) );
  50844. vkCmdUpdateBuffer = PFN_vkCmdUpdateBuffer( device ? vkGetDeviceProcAddr( device, "vkCmdUpdateBuffer" ) : vkGetInstanceProcAddr( instance, "vkCmdUpdateBuffer" ) );
  50845. vkCmdWaitEvents = PFN_vkCmdWaitEvents( device ? vkGetDeviceProcAddr( device, "vkCmdWaitEvents" ) : vkGetInstanceProcAddr( instance, "vkCmdWaitEvents" ) );
  50846. vkCmdWriteAccelerationStructuresPropertiesNV = PFN_vkCmdWriteAccelerationStructuresPropertiesNV( device ? vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesNV" ) : vkGetInstanceProcAddr( instance, "vkCmdWriteAccelerationStructuresPropertiesNV" ) );
  50847. vkCmdWriteBufferMarkerAMD = PFN_vkCmdWriteBufferMarkerAMD( device ? vkGetDeviceProcAddr( device, "vkCmdWriteBufferMarkerAMD" ) : vkGetInstanceProcAddr( instance, "vkCmdWriteBufferMarkerAMD" ) );
  50848. vkCmdWriteTimestamp = PFN_vkCmdWriteTimestamp( device ? vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp" ) : vkGetInstanceProcAddr( instance, "vkCmdWriteTimestamp" ) );
  50849. vkEndCommandBuffer = PFN_vkEndCommandBuffer( device ? vkGetDeviceProcAddr( device, "vkEndCommandBuffer" ) : vkGetInstanceProcAddr( instance, "vkEndCommandBuffer" ) );
  50850. vkResetCommandBuffer = PFN_vkResetCommandBuffer( device ? vkGetDeviceProcAddr( device, "vkResetCommandBuffer" ) : vkGetInstanceProcAddr( instance, "vkResetCommandBuffer" ) );
  50851. #ifdef VK_USE_PLATFORM_WIN32_KHR
  50852. vkAcquireFullScreenExclusiveModeEXT = PFN_vkAcquireFullScreenExclusiveModeEXT( device ? vkGetDeviceProcAddr( device, "vkAcquireFullScreenExclusiveModeEXT" ) : vkGetInstanceProcAddr( instance, "vkAcquireFullScreenExclusiveModeEXT" ) );
  50853. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  50854. vkAcquireNextImage2KHR = PFN_vkAcquireNextImage2KHR( device ? vkGetDeviceProcAddr( device, "vkAcquireNextImage2KHR" ) : vkGetInstanceProcAddr( instance, "vkAcquireNextImage2KHR" ) );
  50855. vkAcquireNextImageKHR = PFN_vkAcquireNextImageKHR( device ? vkGetDeviceProcAddr( device, "vkAcquireNextImageKHR" ) : vkGetInstanceProcAddr( instance, "vkAcquireNextImageKHR" ) );
  50856. vkAcquirePerformanceConfigurationINTEL = PFN_vkAcquirePerformanceConfigurationINTEL( device ? vkGetDeviceProcAddr( device, "vkAcquirePerformanceConfigurationINTEL" ) : vkGetInstanceProcAddr( instance, "vkAcquirePerformanceConfigurationINTEL" ) );
  50857. vkAllocateCommandBuffers = PFN_vkAllocateCommandBuffers( device ? vkGetDeviceProcAddr( device, "vkAllocateCommandBuffers" ) : vkGetInstanceProcAddr( instance, "vkAllocateCommandBuffers" ) );
  50858. vkAllocateDescriptorSets = PFN_vkAllocateDescriptorSets( device ? vkGetDeviceProcAddr( device, "vkAllocateDescriptorSets" ) : vkGetInstanceProcAddr( instance, "vkAllocateDescriptorSets" ) );
  50859. vkAllocateMemory = PFN_vkAllocateMemory( device ? vkGetDeviceProcAddr( device, "vkAllocateMemory" ) : vkGetInstanceProcAddr( instance, "vkAllocateMemory" ) );
  50860. vkBindAccelerationStructureMemoryNV = PFN_vkBindAccelerationStructureMemoryNV( device ? vkGetDeviceProcAddr( device, "vkBindAccelerationStructureMemoryNV" ) : vkGetInstanceProcAddr( instance, "vkBindAccelerationStructureMemoryNV" ) );
  50861. vkBindBufferMemory = PFN_vkBindBufferMemory( device ? vkGetDeviceProcAddr( device, "vkBindBufferMemory" ) : vkGetInstanceProcAddr( instance, "vkBindBufferMemory" ) );
  50862. vkBindBufferMemory2 = PFN_vkBindBufferMemory2( device ? vkGetDeviceProcAddr( device, "vkBindBufferMemory2" ) : vkGetInstanceProcAddr( instance, "vkBindBufferMemory2" ) );
  50863. vkBindBufferMemory2KHR = PFN_vkBindBufferMemory2KHR( device ? vkGetDeviceProcAddr( device, "vkBindBufferMemory2KHR" ) : vkGetInstanceProcAddr( instance, "vkBindBufferMemory2KHR" ) );
  50864. vkBindImageMemory = PFN_vkBindImageMemory( device ? vkGetDeviceProcAddr( device, "vkBindImageMemory" ) : vkGetInstanceProcAddr( instance, "vkBindImageMemory" ) );
  50865. vkBindImageMemory2 = PFN_vkBindImageMemory2( device ? vkGetDeviceProcAddr( device, "vkBindImageMemory2" ) : vkGetInstanceProcAddr( instance, "vkBindImageMemory2" ) );
  50866. vkBindImageMemory2KHR = PFN_vkBindImageMemory2KHR( device ? vkGetDeviceProcAddr( device, "vkBindImageMemory2KHR" ) : vkGetInstanceProcAddr( instance, "vkBindImageMemory2KHR" ) );
  50867. vkCompileDeferredNV = PFN_vkCompileDeferredNV( device ? vkGetDeviceProcAddr( device, "vkCompileDeferredNV" ) : vkGetInstanceProcAddr( instance, "vkCompileDeferredNV" ) );
  50868. vkCreateAccelerationStructureNV = PFN_vkCreateAccelerationStructureNV( device ? vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureNV" ) : vkGetInstanceProcAddr( instance, "vkCreateAccelerationStructureNV" ) );
  50869. vkCreateBuffer = PFN_vkCreateBuffer( device ? vkGetDeviceProcAddr( device, "vkCreateBuffer" ) : vkGetInstanceProcAddr( instance, "vkCreateBuffer" ) );
  50870. vkCreateBufferView = PFN_vkCreateBufferView( device ? vkGetDeviceProcAddr( device, "vkCreateBufferView" ) : vkGetInstanceProcAddr( instance, "vkCreateBufferView" ) );
  50871. vkCreateCommandPool = PFN_vkCreateCommandPool( device ? vkGetDeviceProcAddr( device, "vkCreateCommandPool" ) : vkGetInstanceProcAddr( instance, "vkCreateCommandPool" ) );
  50872. vkCreateComputePipelines = PFN_vkCreateComputePipelines( device ? vkGetDeviceProcAddr( device, "vkCreateComputePipelines" ) : vkGetInstanceProcAddr( instance, "vkCreateComputePipelines" ) );
  50873. vkCreateDescriptorPool = PFN_vkCreateDescriptorPool( device ? vkGetDeviceProcAddr( device, "vkCreateDescriptorPool" ) : vkGetInstanceProcAddr( instance, "vkCreateDescriptorPool" ) );
  50874. vkCreateDescriptorSetLayout = PFN_vkCreateDescriptorSetLayout( device ? vkGetDeviceProcAddr( device, "vkCreateDescriptorSetLayout" ) : vkGetInstanceProcAddr( instance, "vkCreateDescriptorSetLayout" ) );
  50875. vkCreateDescriptorUpdateTemplate = PFN_vkCreateDescriptorUpdateTemplate( device ? vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplate" ) : vkGetInstanceProcAddr( instance, "vkCreateDescriptorUpdateTemplate" ) );
  50876. vkCreateDescriptorUpdateTemplateKHR = PFN_vkCreateDescriptorUpdateTemplateKHR( device ? vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplateKHR" ) : vkGetInstanceProcAddr( instance, "vkCreateDescriptorUpdateTemplateKHR" ) );
  50877. vkCreateEvent = PFN_vkCreateEvent( device ? vkGetDeviceProcAddr( device, "vkCreateEvent" ) : vkGetInstanceProcAddr( instance, "vkCreateEvent" ) );
  50878. vkCreateFence = PFN_vkCreateFence( device ? vkGetDeviceProcAddr( device, "vkCreateFence" ) : vkGetInstanceProcAddr( instance, "vkCreateFence" ) );
  50879. vkCreateFramebuffer = PFN_vkCreateFramebuffer( device ? vkGetDeviceProcAddr( device, "vkCreateFramebuffer" ) : vkGetInstanceProcAddr( instance, "vkCreateFramebuffer" ) );
  50880. vkCreateGraphicsPipelines = PFN_vkCreateGraphicsPipelines( device ? vkGetDeviceProcAddr( device, "vkCreateGraphicsPipelines" ) : vkGetInstanceProcAddr( instance, "vkCreateGraphicsPipelines" ) );
  50881. vkCreateImage = PFN_vkCreateImage( device ? vkGetDeviceProcAddr( device, "vkCreateImage" ) : vkGetInstanceProcAddr( instance, "vkCreateImage" ) );
  50882. vkCreateImageView = PFN_vkCreateImageView( device ? vkGetDeviceProcAddr( device, "vkCreateImageView" ) : vkGetInstanceProcAddr( instance, "vkCreateImageView" ) );
  50883. vkCreateIndirectCommandsLayoutNVX = PFN_vkCreateIndirectCommandsLayoutNVX( device ? vkGetDeviceProcAddr( device, "vkCreateIndirectCommandsLayoutNVX" ) : vkGetInstanceProcAddr( instance, "vkCreateIndirectCommandsLayoutNVX" ) );
  50884. vkCreateObjectTableNVX = PFN_vkCreateObjectTableNVX( device ? vkGetDeviceProcAddr( device, "vkCreateObjectTableNVX" ) : vkGetInstanceProcAddr( instance, "vkCreateObjectTableNVX" ) );
  50885. vkCreatePipelineCache = PFN_vkCreatePipelineCache( device ? vkGetDeviceProcAddr( device, "vkCreatePipelineCache" ) : vkGetInstanceProcAddr( instance, "vkCreatePipelineCache" ) );
  50886. vkCreatePipelineLayout = PFN_vkCreatePipelineLayout( device ? vkGetDeviceProcAddr( device, "vkCreatePipelineLayout" ) : vkGetInstanceProcAddr( instance, "vkCreatePipelineLayout" ) );
  50887. vkCreateQueryPool = PFN_vkCreateQueryPool( device ? vkGetDeviceProcAddr( device, "vkCreateQueryPool" ) : vkGetInstanceProcAddr( instance, "vkCreateQueryPool" ) );
  50888. vkCreateRayTracingPipelinesNV = PFN_vkCreateRayTracingPipelinesNV( device ? vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesNV" ) : vkGetInstanceProcAddr( instance, "vkCreateRayTracingPipelinesNV" ) );
  50889. vkCreateRenderPass = PFN_vkCreateRenderPass( device ? vkGetDeviceProcAddr( device, "vkCreateRenderPass" ) : vkGetInstanceProcAddr( instance, "vkCreateRenderPass" ) );
  50890. vkCreateRenderPass2KHR = PFN_vkCreateRenderPass2KHR( device ? vkGetDeviceProcAddr( device, "vkCreateRenderPass2KHR" ) : vkGetInstanceProcAddr( instance, "vkCreateRenderPass2KHR" ) );
  50891. vkCreateSampler = PFN_vkCreateSampler( device ? vkGetDeviceProcAddr( device, "vkCreateSampler" ) : vkGetInstanceProcAddr( instance, "vkCreateSampler" ) );
  50892. vkCreateSamplerYcbcrConversion = PFN_vkCreateSamplerYcbcrConversion( device ? vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversion" ) : vkGetInstanceProcAddr( instance, "vkCreateSamplerYcbcrConversion" ) );
  50893. vkCreateSamplerYcbcrConversionKHR = PFN_vkCreateSamplerYcbcrConversionKHR( device ? vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversionKHR" ) : vkGetInstanceProcAddr( instance, "vkCreateSamplerYcbcrConversionKHR" ) );
  50894. vkCreateSemaphore = PFN_vkCreateSemaphore( device ? vkGetDeviceProcAddr( device, "vkCreateSemaphore" ) : vkGetInstanceProcAddr( instance, "vkCreateSemaphore" ) );
  50895. vkCreateShaderModule = PFN_vkCreateShaderModule( device ? vkGetDeviceProcAddr( device, "vkCreateShaderModule" ) : vkGetInstanceProcAddr( instance, "vkCreateShaderModule" ) );
  50896. vkCreateSharedSwapchainsKHR = PFN_vkCreateSharedSwapchainsKHR( device ? vkGetDeviceProcAddr( device, "vkCreateSharedSwapchainsKHR" ) : vkGetInstanceProcAddr( instance, "vkCreateSharedSwapchainsKHR" ) );
  50897. vkCreateSwapchainKHR = PFN_vkCreateSwapchainKHR( device ? vkGetDeviceProcAddr( device, "vkCreateSwapchainKHR" ) : vkGetInstanceProcAddr( instance, "vkCreateSwapchainKHR" ) );
  50898. vkCreateValidationCacheEXT = PFN_vkCreateValidationCacheEXT( device ? vkGetDeviceProcAddr( device, "vkCreateValidationCacheEXT" ) : vkGetInstanceProcAddr( instance, "vkCreateValidationCacheEXT" ) );
  50899. vkDebugMarkerSetObjectNameEXT = PFN_vkDebugMarkerSetObjectNameEXT( device ? vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectNameEXT" ) : vkGetInstanceProcAddr( instance, "vkDebugMarkerSetObjectNameEXT" ) );
  50900. vkDebugMarkerSetObjectTagEXT = PFN_vkDebugMarkerSetObjectTagEXT( device ? vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectTagEXT" ) : vkGetInstanceProcAddr( instance, "vkDebugMarkerSetObjectTagEXT" ) );
  50901. vkDestroyAccelerationStructureNV = PFN_vkDestroyAccelerationStructureNV( device ? vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureNV" ) : vkGetInstanceProcAddr( instance, "vkDestroyAccelerationStructureNV" ) );
  50902. vkDestroyBuffer = PFN_vkDestroyBuffer( device ? vkGetDeviceProcAddr( device, "vkDestroyBuffer" ) : vkGetInstanceProcAddr( instance, "vkDestroyBuffer" ) );
  50903. vkDestroyBufferView = PFN_vkDestroyBufferView( device ? vkGetDeviceProcAddr( device, "vkDestroyBufferView" ) : vkGetInstanceProcAddr( instance, "vkDestroyBufferView" ) );
  50904. vkDestroyCommandPool = PFN_vkDestroyCommandPool( device ? vkGetDeviceProcAddr( device, "vkDestroyCommandPool" ) : vkGetInstanceProcAddr( instance, "vkDestroyCommandPool" ) );
  50905. vkDestroyDescriptorPool = PFN_vkDestroyDescriptorPool( device ? vkGetDeviceProcAddr( device, "vkDestroyDescriptorPool" ) : vkGetInstanceProcAddr( instance, "vkDestroyDescriptorPool" ) );
  50906. vkDestroyDescriptorSetLayout = PFN_vkDestroyDescriptorSetLayout( device ? vkGetDeviceProcAddr( device, "vkDestroyDescriptorSetLayout" ) : vkGetInstanceProcAddr( instance, "vkDestroyDescriptorSetLayout" ) );
  50907. vkDestroyDescriptorUpdateTemplate = PFN_vkDestroyDescriptorUpdateTemplate( device ? vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplate" ) : vkGetInstanceProcAddr( instance, "vkDestroyDescriptorUpdateTemplate" ) );
  50908. vkDestroyDescriptorUpdateTemplateKHR = PFN_vkDestroyDescriptorUpdateTemplateKHR( device ? vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplateKHR" ) : vkGetInstanceProcAddr( instance, "vkDestroyDescriptorUpdateTemplateKHR" ) );
  50909. vkDestroyDevice = PFN_vkDestroyDevice( device ? vkGetDeviceProcAddr( device, "vkDestroyDevice" ) : vkGetInstanceProcAddr( instance, "vkDestroyDevice" ) );
  50910. vkDestroyEvent = PFN_vkDestroyEvent( device ? vkGetDeviceProcAddr( device, "vkDestroyEvent" ) : vkGetInstanceProcAddr( instance, "vkDestroyEvent" ) );
  50911. vkDestroyFence = PFN_vkDestroyFence( device ? vkGetDeviceProcAddr( device, "vkDestroyFence" ) : vkGetInstanceProcAddr( instance, "vkDestroyFence" ) );
  50912. vkDestroyFramebuffer = PFN_vkDestroyFramebuffer( device ? vkGetDeviceProcAddr( device, "vkDestroyFramebuffer" ) : vkGetInstanceProcAddr( instance, "vkDestroyFramebuffer" ) );
  50913. vkDestroyImage = PFN_vkDestroyImage( device ? vkGetDeviceProcAddr( device, "vkDestroyImage" ) : vkGetInstanceProcAddr( instance, "vkDestroyImage" ) );
  50914. vkDestroyImageView = PFN_vkDestroyImageView( device ? vkGetDeviceProcAddr( device, "vkDestroyImageView" ) : vkGetInstanceProcAddr( instance, "vkDestroyImageView" ) );
  50915. vkDestroyIndirectCommandsLayoutNVX = PFN_vkDestroyIndirectCommandsLayoutNVX( device ? vkGetDeviceProcAddr( device, "vkDestroyIndirectCommandsLayoutNVX" ) : vkGetInstanceProcAddr( instance, "vkDestroyIndirectCommandsLayoutNVX" ) );
  50916. vkDestroyObjectTableNVX = PFN_vkDestroyObjectTableNVX( device ? vkGetDeviceProcAddr( device, "vkDestroyObjectTableNVX" ) : vkGetInstanceProcAddr( instance, "vkDestroyObjectTableNVX" ) );
  50917. vkDestroyPipeline = PFN_vkDestroyPipeline( device ? vkGetDeviceProcAddr( device, "vkDestroyPipeline" ) : vkGetInstanceProcAddr( instance, "vkDestroyPipeline" ) );
  50918. vkDestroyPipelineCache = PFN_vkDestroyPipelineCache( device ? vkGetDeviceProcAddr( device, "vkDestroyPipelineCache" ) : vkGetInstanceProcAddr( instance, "vkDestroyPipelineCache" ) );
  50919. vkDestroyPipelineLayout = PFN_vkDestroyPipelineLayout( device ? vkGetDeviceProcAddr( device, "vkDestroyPipelineLayout" ) : vkGetInstanceProcAddr( instance, "vkDestroyPipelineLayout" ) );
  50920. vkDestroyQueryPool = PFN_vkDestroyQueryPool( device ? vkGetDeviceProcAddr( device, "vkDestroyQueryPool" ) : vkGetInstanceProcAddr( instance, "vkDestroyQueryPool" ) );
  50921. vkDestroyRenderPass = PFN_vkDestroyRenderPass( device ? vkGetDeviceProcAddr( device, "vkDestroyRenderPass" ) : vkGetInstanceProcAddr( instance, "vkDestroyRenderPass" ) );
  50922. vkDestroySampler = PFN_vkDestroySampler( device ? vkGetDeviceProcAddr( device, "vkDestroySampler" ) : vkGetInstanceProcAddr( instance, "vkDestroySampler" ) );
  50923. vkDestroySamplerYcbcrConversion = PFN_vkDestroySamplerYcbcrConversion( device ? vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversion" ) : vkGetInstanceProcAddr( instance, "vkDestroySamplerYcbcrConversion" ) );
  50924. vkDestroySamplerYcbcrConversionKHR = PFN_vkDestroySamplerYcbcrConversionKHR( device ? vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversionKHR" ) : vkGetInstanceProcAddr( instance, "vkDestroySamplerYcbcrConversionKHR" ) );
  50925. vkDestroySemaphore = PFN_vkDestroySemaphore( device ? vkGetDeviceProcAddr( device, "vkDestroySemaphore" ) : vkGetInstanceProcAddr( instance, "vkDestroySemaphore" ) );
  50926. vkDestroyShaderModule = PFN_vkDestroyShaderModule( device ? vkGetDeviceProcAddr( device, "vkDestroyShaderModule" ) : vkGetInstanceProcAddr( instance, "vkDestroyShaderModule" ) );
  50927. vkDestroySwapchainKHR = PFN_vkDestroySwapchainKHR( device ? vkGetDeviceProcAddr( device, "vkDestroySwapchainKHR" ) : vkGetInstanceProcAddr( instance, "vkDestroySwapchainKHR" ) );
  50928. vkDestroyValidationCacheEXT = PFN_vkDestroyValidationCacheEXT( device ? vkGetDeviceProcAddr( device, "vkDestroyValidationCacheEXT" ) : vkGetInstanceProcAddr( instance, "vkDestroyValidationCacheEXT" ) );
  50929. vkDeviceWaitIdle = PFN_vkDeviceWaitIdle( device ? vkGetDeviceProcAddr( device, "vkDeviceWaitIdle" ) : vkGetInstanceProcAddr( instance, "vkDeviceWaitIdle" ) );
  50930. vkDisplayPowerControlEXT = PFN_vkDisplayPowerControlEXT( device ? vkGetDeviceProcAddr( device, "vkDisplayPowerControlEXT" ) : vkGetInstanceProcAddr( instance, "vkDisplayPowerControlEXT" ) );
  50931. vkFlushMappedMemoryRanges = PFN_vkFlushMappedMemoryRanges( device ? vkGetDeviceProcAddr( device, "vkFlushMappedMemoryRanges" ) : vkGetInstanceProcAddr( instance, "vkFlushMappedMemoryRanges" ) );
  50932. vkFreeCommandBuffers = PFN_vkFreeCommandBuffers( device ? vkGetDeviceProcAddr( device, "vkFreeCommandBuffers" ) : vkGetInstanceProcAddr( instance, "vkFreeCommandBuffers" ) );
  50933. vkFreeDescriptorSets = PFN_vkFreeDescriptorSets( device ? vkGetDeviceProcAddr( device, "vkFreeDescriptorSets" ) : vkGetInstanceProcAddr( instance, "vkFreeDescriptorSets" ) );
  50934. vkFreeMemory = PFN_vkFreeMemory( device ? vkGetDeviceProcAddr( device, "vkFreeMemory" ) : vkGetInstanceProcAddr( instance, "vkFreeMemory" ) );
  50935. vkGetAccelerationStructureHandleNV = PFN_vkGetAccelerationStructureHandleNV( device ? vkGetDeviceProcAddr( device, "vkGetAccelerationStructureHandleNV" ) : vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureHandleNV" ) );
  50936. vkGetAccelerationStructureMemoryRequirementsNV = PFN_vkGetAccelerationStructureMemoryRequirementsNV( device ? vkGetDeviceProcAddr( device, "vkGetAccelerationStructureMemoryRequirementsNV" ) : vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureMemoryRequirementsNV" ) );
  50937. #ifdef VK_USE_PLATFORM_ANDROID_KHR
  50938. vkGetAndroidHardwareBufferPropertiesANDROID = PFN_vkGetAndroidHardwareBufferPropertiesANDROID( device ? vkGetDeviceProcAddr( device, "vkGetAndroidHardwareBufferPropertiesANDROID" ) : vkGetInstanceProcAddr( instance, "vkGetAndroidHardwareBufferPropertiesANDROID" ) );
  50939. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  50940. vkGetBufferDeviceAddressEXT = PFN_vkGetBufferDeviceAddressEXT( device ? vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddressEXT" ) : vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddressEXT" ) );
  50941. vkGetBufferMemoryRequirements = PFN_vkGetBufferMemoryRequirements( device ? vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements" ) : vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements" ) );
  50942. vkGetBufferMemoryRequirements2 = PFN_vkGetBufferMemoryRequirements2( device ? vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2" ) : vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements2" ) );
  50943. vkGetBufferMemoryRequirements2KHR = PFN_vkGetBufferMemoryRequirements2KHR( device ? vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2KHR" ) : vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements2KHR" ) );
  50944. vkGetCalibratedTimestampsEXT = PFN_vkGetCalibratedTimestampsEXT( device ? vkGetDeviceProcAddr( device, "vkGetCalibratedTimestampsEXT" ) : vkGetInstanceProcAddr( instance, "vkGetCalibratedTimestampsEXT" ) );
  50945. vkGetDescriptorSetLayoutSupport = PFN_vkGetDescriptorSetLayoutSupport( device ? vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupport" ) : vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutSupport" ) );
  50946. vkGetDescriptorSetLayoutSupportKHR = PFN_vkGetDescriptorSetLayoutSupportKHR( device ? vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupportKHR" ) : vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutSupportKHR" ) );
  50947. vkGetDeviceGroupPeerMemoryFeatures = PFN_vkGetDeviceGroupPeerMemoryFeatures( device ? vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeatures" ) : vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPeerMemoryFeatures" ) );
  50948. vkGetDeviceGroupPeerMemoryFeaturesKHR = PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR( device ? vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeaturesKHR" ) : vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPeerMemoryFeaturesKHR" ) );
  50949. vkGetDeviceGroupPresentCapabilitiesKHR = PFN_vkGetDeviceGroupPresentCapabilitiesKHR( device ? vkGetDeviceProcAddr( device, "vkGetDeviceGroupPresentCapabilitiesKHR" ) : vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPresentCapabilitiesKHR" ) );
  50950. #ifdef VK_USE_PLATFORM_WIN32_KHR
  50951. vkGetDeviceGroupSurfacePresentModes2EXT = PFN_vkGetDeviceGroupSurfacePresentModes2EXT( device ? vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModes2EXT" ) : vkGetInstanceProcAddr( instance, "vkGetDeviceGroupSurfacePresentModes2EXT" ) );
  50952. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  50953. vkGetDeviceGroupSurfacePresentModesKHR = PFN_vkGetDeviceGroupSurfacePresentModesKHR( device ? vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModesKHR" ) : vkGetInstanceProcAddr( instance, "vkGetDeviceGroupSurfacePresentModesKHR" ) );
  50954. vkGetDeviceMemoryCommitment = PFN_vkGetDeviceMemoryCommitment( device ? vkGetDeviceProcAddr( device, "vkGetDeviceMemoryCommitment" ) : vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryCommitment" ) );
  50955. vkGetDeviceQueue = PFN_vkGetDeviceQueue( device ? vkGetDeviceProcAddr( device, "vkGetDeviceQueue" ) : vkGetInstanceProcAddr( instance, "vkGetDeviceQueue" ) );
  50956. vkGetDeviceQueue2 = PFN_vkGetDeviceQueue2( device ? vkGetDeviceProcAddr( device, "vkGetDeviceQueue2" ) : vkGetInstanceProcAddr( instance, "vkGetDeviceQueue2" ) );
  50957. vkGetEventStatus = PFN_vkGetEventStatus( device ? vkGetDeviceProcAddr( device, "vkGetEventStatus" ) : vkGetInstanceProcAddr( instance, "vkGetEventStatus" ) );
  50958. vkGetFenceFdKHR = PFN_vkGetFenceFdKHR( device ? vkGetDeviceProcAddr( device, "vkGetFenceFdKHR" ) : vkGetInstanceProcAddr( instance, "vkGetFenceFdKHR" ) );
  50959. vkGetFenceStatus = PFN_vkGetFenceStatus( device ? vkGetDeviceProcAddr( device, "vkGetFenceStatus" ) : vkGetInstanceProcAddr( instance, "vkGetFenceStatus" ) );
  50960. #ifdef VK_USE_PLATFORM_WIN32_KHR
  50961. vkGetFenceWin32HandleKHR = PFN_vkGetFenceWin32HandleKHR( device ? vkGetDeviceProcAddr( device, "vkGetFenceWin32HandleKHR" ) : vkGetInstanceProcAddr( instance, "vkGetFenceWin32HandleKHR" ) );
  50962. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  50963. vkGetImageDrmFormatModifierPropertiesEXT = PFN_vkGetImageDrmFormatModifierPropertiesEXT( device ? vkGetDeviceProcAddr( device, "vkGetImageDrmFormatModifierPropertiesEXT" ) : vkGetInstanceProcAddr( instance, "vkGetImageDrmFormatModifierPropertiesEXT" ) );
  50964. vkGetImageMemoryRequirements = PFN_vkGetImageMemoryRequirements( device ? vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements" ) : vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements" ) );
  50965. vkGetImageMemoryRequirements2 = PFN_vkGetImageMemoryRequirements2( device ? vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2" ) : vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements2" ) );
  50966. vkGetImageMemoryRequirements2KHR = PFN_vkGetImageMemoryRequirements2KHR( device ? vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2KHR" ) : vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements2KHR" ) );
  50967. vkGetImageSparseMemoryRequirements = PFN_vkGetImageSparseMemoryRequirements( device ? vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements" ) : vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements" ) );
  50968. vkGetImageSparseMemoryRequirements2 = PFN_vkGetImageSparseMemoryRequirements2( device ? vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2" ) : vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements2" ) );
  50969. vkGetImageSparseMemoryRequirements2KHR = PFN_vkGetImageSparseMemoryRequirements2KHR( device ? vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2KHR" ) : vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements2KHR" ) );
  50970. vkGetImageSubresourceLayout = PFN_vkGetImageSubresourceLayout( device ? vkGetDeviceProcAddr( device, "vkGetImageSubresourceLayout" ) : vkGetInstanceProcAddr( instance, "vkGetImageSubresourceLayout" ) );
  50971. vkGetImageViewHandleNVX = PFN_vkGetImageViewHandleNVX( device ? vkGetDeviceProcAddr( device, "vkGetImageViewHandleNVX" ) : vkGetInstanceProcAddr( instance, "vkGetImageViewHandleNVX" ) );
  50972. #ifdef VK_USE_PLATFORM_ANDROID_KHR
  50973. vkGetMemoryAndroidHardwareBufferANDROID = PFN_vkGetMemoryAndroidHardwareBufferANDROID( device ? vkGetDeviceProcAddr( device, "vkGetMemoryAndroidHardwareBufferANDROID" ) : vkGetInstanceProcAddr( instance, "vkGetMemoryAndroidHardwareBufferANDROID" ) );
  50974. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  50975. vkGetMemoryFdKHR = PFN_vkGetMemoryFdKHR( device ? vkGetDeviceProcAddr( device, "vkGetMemoryFdKHR" ) : vkGetInstanceProcAddr( instance, "vkGetMemoryFdKHR" ) );
  50976. vkGetMemoryFdPropertiesKHR = PFN_vkGetMemoryFdPropertiesKHR( device ? vkGetDeviceProcAddr( device, "vkGetMemoryFdPropertiesKHR" ) : vkGetInstanceProcAddr( instance, "vkGetMemoryFdPropertiesKHR" ) );
  50977. vkGetMemoryHostPointerPropertiesEXT = PFN_vkGetMemoryHostPointerPropertiesEXT( device ? vkGetDeviceProcAddr( device, "vkGetMemoryHostPointerPropertiesEXT" ) : vkGetInstanceProcAddr( instance, "vkGetMemoryHostPointerPropertiesEXT" ) );
  50978. #ifdef VK_USE_PLATFORM_WIN32_KHR
  50979. vkGetMemoryWin32HandleKHR = PFN_vkGetMemoryWin32HandleKHR( device ? vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleKHR" ) : vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandleKHR" ) );
  50980. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  50981. #ifdef VK_USE_PLATFORM_WIN32_KHR
  50982. vkGetMemoryWin32HandleNV = PFN_vkGetMemoryWin32HandleNV( device ? vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleNV" ) : vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandleNV" ) );
  50983. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  50984. #ifdef VK_USE_PLATFORM_WIN32_KHR
  50985. vkGetMemoryWin32HandlePropertiesKHR = PFN_vkGetMemoryWin32HandlePropertiesKHR( device ? vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandlePropertiesKHR" ) : vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandlePropertiesKHR" ) );
  50986. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  50987. vkGetPastPresentationTimingGOOGLE = PFN_vkGetPastPresentationTimingGOOGLE( device ? vkGetDeviceProcAddr( device, "vkGetPastPresentationTimingGOOGLE" ) : vkGetInstanceProcAddr( instance, "vkGetPastPresentationTimingGOOGLE" ) );
  50988. vkGetPerformanceParameterINTEL = PFN_vkGetPerformanceParameterINTEL( device ? vkGetDeviceProcAddr( device, "vkGetPerformanceParameterINTEL" ) : vkGetInstanceProcAddr( instance, "vkGetPerformanceParameterINTEL" ) );
  50989. vkGetPipelineCacheData = PFN_vkGetPipelineCacheData( device ? vkGetDeviceProcAddr( device, "vkGetPipelineCacheData" ) : vkGetInstanceProcAddr( instance, "vkGetPipelineCacheData" ) );
  50990. vkGetQueryPoolResults = PFN_vkGetQueryPoolResults( device ? vkGetDeviceProcAddr( device, "vkGetQueryPoolResults" ) : vkGetInstanceProcAddr( instance, "vkGetQueryPoolResults" ) );
  50991. vkGetRayTracingShaderGroupHandlesNV = PFN_vkGetRayTracingShaderGroupHandlesNV( device ? vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesNV" ) : vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupHandlesNV" ) );
  50992. vkGetRefreshCycleDurationGOOGLE = PFN_vkGetRefreshCycleDurationGOOGLE( device ? vkGetDeviceProcAddr( device, "vkGetRefreshCycleDurationGOOGLE" ) : vkGetInstanceProcAddr( instance, "vkGetRefreshCycleDurationGOOGLE" ) );
  50993. vkGetRenderAreaGranularity = PFN_vkGetRenderAreaGranularity( device ? vkGetDeviceProcAddr( device, "vkGetRenderAreaGranularity" ) : vkGetInstanceProcAddr( instance, "vkGetRenderAreaGranularity" ) );
  50994. vkGetSemaphoreFdKHR = PFN_vkGetSemaphoreFdKHR( device ? vkGetDeviceProcAddr( device, "vkGetSemaphoreFdKHR" ) : vkGetInstanceProcAddr( instance, "vkGetSemaphoreFdKHR" ) );
  50995. #ifdef VK_USE_PLATFORM_WIN32_KHR
  50996. vkGetSemaphoreWin32HandleKHR = PFN_vkGetSemaphoreWin32HandleKHR( device ? vkGetDeviceProcAddr( device, "vkGetSemaphoreWin32HandleKHR" ) : vkGetInstanceProcAddr( instance, "vkGetSemaphoreWin32HandleKHR" ) );
  50997. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  50998. vkGetShaderInfoAMD = PFN_vkGetShaderInfoAMD( device ? vkGetDeviceProcAddr( device, "vkGetShaderInfoAMD" ) : vkGetInstanceProcAddr( instance, "vkGetShaderInfoAMD" ) );
  50999. vkGetSwapchainCounterEXT = PFN_vkGetSwapchainCounterEXT( device ? vkGetDeviceProcAddr( device, "vkGetSwapchainCounterEXT" ) : vkGetInstanceProcAddr( instance, "vkGetSwapchainCounterEXT" ) );
  51000. vkGetSwapchainImagesKHR = PFN_vkGetSwapchainImagesKHR( device ? vkGetDeviceProcAddr( device, "vkGetSwapchainImagesKHR" ) : vkGetInstanceProcAddr( instance, "vkGetSwapchainImagesKHR" ) );
  51001. vkGetSwapchainStatusKHR = PFN_vkGetSwapchainStatusKHR( device ? vkGetDeviceProcAddr( device, "vkGetSwapchainStatusKHR" ) : vkGetInstanceProcAddr( instance, "vkGetSwapchainStatusKHR" ) );
  51002. vkGetValidationCacheDataEXT = PFN_vkGetValidationCacheDataEXT( device ? vkGetDeviceProcAddr( device, "vkGetValidationCacheDataEXT" ) : vkGetInstanceProcAddr( instance, "vkGetValidationCacheDataEXT" ) );
  51003. vkImportFenceFdKHR = PFN_vkImportFenceFdKHR( device ? vkGetDeviceProcAddr( device, "vkImportFenceFdKHR" ) : vkGetInstanceProcAddr( instance, "vkImportFenceFdKHR" ) );
  51004. #ifdef VK_USE_PLATFORM_WIN32_KHR
  51005. vkImportFenceWin32HandleKHR = PFN_vkImportFenceWin32HandleKHR( device ? vkGetDeviceProcAddr( device, "vkImportFenceWin32HandleKHR" ) : vkGetInstanceProcAddr( instance, "vkImportFenceWin32HandleKHR" ) );
  51006. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  51007. vkImportSemaphoreFdKHR = PFN_vkImportSemaphoreFdKHR( device ? vkGetDeviceProcAddr( device, "vkImportSemaphoreFdKHR" ) : vkGetInstanceProcAddr( instance, "vkImportSemaphoreFdKHR" ) );
  51008. #ifdef VK_USE_PLATFORM_WIN32_KHR
  51009. vkImportSemaphoreWin32HandleKHR = PFN_vkImportSemaphoreWin32HandleKHR( device ? vkGetDeviceProcAddr( device, "vkImportSemaphoreWin32HandleKHR" ) : vkGetInstanceProcAddr( instance, "vkImportSemaphoreWin32HandleKHR" ) );
  51010. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  51011. vkInitializePerformanceApiINTEL = PFN_vkInitializePerformanceApiINTEL( device ? vkGetDeviceProcAddr( device, "vkInitializePerformanceApiINTEL" ) : vkGetInstanceProcAddr( instance, "vkInitializePerformanceApiINTEL" ) );
  51012. vkInvalidateMappedMemoryRanges = PFN_vkInvalidateMappedMemoryRanges( device ? vkGetDeviceProcAddr( device, "vkInvalidateMappedMemoryRanges" ) : vkGetInstanceProcAddr( instance, "vkInvalidateMappedMemoryRanges" ) );
  51013. vkMapMemory = PFN_vkMapMemory( device ? vkGetDeviceProcAddr( device, "vkMapMemory" ) : vkGetInstanceProcAddr( instance, "vkMapMemory" ) );
  51014. vkMergePipelineCaches = PFN_vkMergePipelineCaches( device ? vkGetDeviceProcAddr( device, "vkMergePipelineCaches" ) : vkGetInstanceProcAddr( instance, "vkMergePipelineCaches" ) );
  51015. vkMergeValidationCachesEXT = PFN_vkMergeValidationCachesEXT( device ? vkGetDeviceProcAddr( device, "vkMergeValidationCachesEXT" ) : vkGetInstanceProcAddr( instance, "vkMergeValidationCachesEXT" ) );
  51016. vkRegisterDeviceEventEXT = PFN_vkRegisterDeviceEventEXT( device ? vkGetDeviceProcAddr( device, "vkRegisterDeviceEventEXT" ) : vkGetInstanceProcAddr( instance, "vkRegisterDeviceEventEXT" ) );
  51017. vkRegisterDisplayEventEXT = PFN_vkRegisterDisplayEventEXT( device ? vkGetDeviceProcAddr( device, "vkRegisterDisplayEventEXT" ) : vkGetInstanceProcAddr( instance, "vkRegisterDisplayEventEXT" ) );
  51018. vkRegisterObjectsNVX = PFN_vkRegisterObjectsNVX( device ? vkGetDeviceProcAddr( device, "vkRegisterObjectsNVX" ) : vkGetInstanceProcAddr( instance, "vkRegisterObjectsNVX" ) );
  51019. #ifdef VK_USE_PLATFORM_WIN32_KHR
  51020. vkReleaseFullScreenExclusiveModeEXT = PFN_vkReleaseFullScreenExclusiveModeEXT( device ? vkGetDeviceProcAddr( device, "vkReleaseFullScreenExclusiveModeEXT" ) : vkGetInstanceProcAddr( instance, "vkReleaseFullScreenExclusiveModeEXT" ) );
  51021. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  51022. vkReleasePerformanceConfigurationINTEL = PFN_vkReleasePerformanceConfigurationINTEL( device ? vkGetDeviceProcAddr( device, "vkReleasePerformanceConfigurationINTEL" ) : vkGetInstanceProcAddr( instance, "vkReleasePerformanceConfigurationINTEL" ) );
  51023. vkResetCommandPool = PFN_vkResetCommandPool( device ? vkGetDeviceProcAddr( device, "vkResetCommandPool" ) : vkGetInstanceProcAddr( instance, "vkResetCommandPool" ) );
  51024. vkResetDescriptorPool = PFN_vkResetDescriptorPool( device ? vkGetDeviceProcAddr( device, "vkResetDescriptorPool" ) : vkGetInstanceProcAddr( instance, "vkResetDescriptorPool" ) );
  51025. vkResetEvent = PFN_vkResetEvent( device ? vkGetDeviceProcAddr( device, "vkResetEvent" ) : vkGetInstanceProcAddr( instance, "vkResetEvent" ) );
  51026. vkResetFences = PFN_vkResetFences( device ? vkGetDeviceProcAddr( device, "vkResetFences" ) : vkGetInstanceProcAddr( instance, "vkResetFences" ) );
  51027. vkResetQueryPoolEXT = PFN_vkResetQueryPoolEXT( device ? vkGetDeviceProcAddr( device, "vkResetQueryPoolEXT" ) : vkGetInstanceProcAddr( instance, "vkResetQueryPoolEXT" ) );
  51028. vkSetDebugUtilsObjectNameEXT = PFN_vkSetDebugUtilsObjectNameEXT( device ? vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectNameEXT" ) : vkGetInstanceProcAddr( instance, "vkSetDebugUtilsObjectNameEXT" ) );
  51029. vkSetDebugUtilsObjectTagEXT = PFN_vkSetDebugUtilsObjectTagEXT( device ? vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectTagEXT" ) : vkGetInstanceProcAddr( instance, "vkSetDebugUtilsObjectTagEXT" ) );
  51030. vkSetEvent = PFN_vkSetEvent( device ? vkGetDeviceProcAddr( device, "vkSetEvent" ) : vkGetInstanceProcAddr( instance, "vkSetEvent" ) );
  51031. vkSetHdrMetadataEXT = PFN_vkSetHdrMetadataEXT( device ? vkGetDeviceProcAddr( device, "vkSetHdrMetadataEXT" ) : vkGetInstanceProcAddr( instance, "vkSetHdrMetadataEXT" ) );
  51032. vkSetLocalDimmingAMD = PFN_vkSetLocalDimmingAMD( device ? vkGetDeviceProcAddr( device, "vkSetLocalDimmingAMD" ) : vkGetInstanceProcAddr( instance, "vkSetLocalDimmingAMD" ) );
  51033. vkTrimCommandPool = PFN_vkTrimCommandPool( device ? vkGetDeviceProcAddr( device, "vkTrimCommandPool" ) : vkGetInstanceProcAddr( instance, "vkTrimCommandPool" ) );
  51034. vkTrimCommandPoolKHR = PFN_vkTrimCommandPoolKHR( device ? vkGetDeviceProcAddr( device, "vkTrimCommandPoolKHR" ) : vkGetInstanceProcAddr( instance, "vkTrimCommandPoolKHR" ) );
  51035. vkUninitializePerformanceApiINTEL = PFN_vkUninitializePerformanceApiINTEL( device ? vkGetDeviceProcAddr( device, "vkUninitializePerformanceApiINTEL" ) : vkGetInstanceProcAddr( instance, "vkUninitializePerformanceApiINTEL" ) );
  51036. vkUnmapMemory = PFN_vkUnmapMemory( device ? vkGetDeviceProcAddr( device, "vkUnmapMemory" ) : vkGetInstanceProcAddr( instance, "vkUnmapMemory" ) );
  51037. vkUnregisterObjectsNVX = PFN_vkUnregisterObjectsNVX( device ? vkGetDeviceProcAddr( device, "vkUnregisterObjectsNVX" ) : vkGetInstanceProcAddr( instance, "vkUnregisterObjectsNVX" ) );
  51038. vkUpdateDescriptorSetWithTemplate = PFN_vkUpdateDescriptorSetWithTemplate( device ? vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplate" ) : vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSetWithTemplate" ) );
  51039. vkUpdateDescriptorSetWithTemplateKHR = PFN_vkUpdateDescriptorSetWithTemplateKHR( device ? vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplateKHR" ) : vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSetWithTemplateKHR" ) );
  51040. vkUpdateDescriptorSets = PFN_vkUpdateDescriptorSets( device ? vkGetDeviceProcAddr( device, "vkUpdateDescriptorSets" ) : vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSets" ) );
  51041. vkWaitForFences = PFN_vkWaitForFences( device ? vkGetDeviceProcAddr( device, "vkWaitForFences" ) : vkGetInstanceProcAddr( instance, "vkWaitForFences" ) );
  51042. #ifdef VK_USE_PLATFORM_ANDROID_KHR
  51043. vkCreateAndroidSurfaceKHR = PFN_vkCreateAndroidSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateAndroidSurfaceKHR" ) );
  51044. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  51045. vkCreateDebugReportCallbackEXT = PFN_vkCreateDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugReportCallbackEXT" ) );
  51046. vkCreateDebugUtilsMessengerEXT = PFN_vkCreateDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugUtilsMessengerEXT" ) );
  51047. vkCreateDisplayPlaneSurfaceKHR = PFN_vkCreateDisplayPlaneSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayPlaneSurfaceKHR" ) );
  51048. vkCreateHeadlessSurfaceEXT = PFN_vkCreateHeadlessSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateHeadlessSurfaceEXT" ) );
  51049. #ifdef VK_USE_PLATFORM_IOS_MVK
  51050. vkCreateIOSSurfaceMVK = PFN_vkCreateIOSSurfaceMVK( vkGetInstanceProcAddr( instance, "vkCreateIOSSurfaceMVK" ) );
  51051. #endif /*VK_USE_PLATFORM_IOS_MVK*/
  51052. #ifdef VK_USE_PLATFORM_FUCHSIA
  51053. vkCreateImagePipeSurfaceFUCHSIA = PFN_vkCreateImagePipeSurfaceFUCHSIA( vkGetInstanceProcAddr( instance, "vkCreateImagePipeSurfaceFUCHSIA" ) );
  51054. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  51055. #ifdef VK_USE_PLATFORM_MACOS_MVK
  51056. vkCreateMacOSSurfaceMVK = PFN_vkCreateMacOSSurfaceMVK( vkGetInstanceProcAddr( instance, "vkCreateMacOSSurfaceMVK" ) );
  51057. #endif /*VK_USE_PLATFORM_MACOS_MVK*/
  51058. #ifdef VK_USE_PLATFORM_METAL_EXT
  51059. vkCreateMetalSurfaceEXT = PFN_vkCreateMetalSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateMetalSurfaceEXT" ) );
  51060. #endif /*VK_USE_PLATFORM_METAL_EXT*/
  51061. #ifdef VK_USE_PLATFORM_GGP
  51062. vkCreateStreamDescriptorSurfaceGGP = PFN_vkCreateStreamDescriptorSurfaceGGP( vkGetInstanceProcAddr( instance, "vkCreateStreamDescriptorSurfaceGGP" ) );
  51063. #endif /*VK_USE_PLATFORM_GGP*/
  51064. #ifdef VK_USE_PLATFORM_VI_NN
  51065. vkCreateViSurfaceNN = PFN_vkCreateViSurfaceNN( vkGetInstanceProcAddr( instance, "vkCreateViSurfaceNN" ) );
  51066. #endif /*VK_USE_PLATFORM_VI_NN*/
  51067. #ifdef VK_USE_PLATFORM_WAYLAND_KHR
  51068. vkCreateWaylandSurfaceKHR = PFN_vkCreateWaylandSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWaylandSurfaceKHR" ) );
  51069. #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
  51070. #ifdef VK_USE_PLATFORM_WIN32_KHR
  51071. vkCreateWin32SurfaceKHR = PFN_vkCreateWin32SurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWin32SurfaceKHR" ) );
  51072. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  51073. #ifdef VK_USE_PLATFORM_XCB_KHR
  51074. vkCreateXcbSurfaceKHR = PFN_vkCreateXcbSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXcbSurfaceKHR" ) );
  51075. #endif /*VK_USE_PLATFORM_XCB_KHR*/
  51076. #ifdef VK_USE_PLATFORM_XLIB_KHR
  51077. vkCreateXlibSurfaceKHR = PFN_vkCreateXlibSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXlibSurfaceKHR" ) );
  51078. #endif /*VK_USE_PLATFORM_XLIB_KHR*/
  51079. vkDebugReportMessageEXT = PFN_vkDebugReportMessageEXT( vkGetInstanceProcAddr( instance, "vkDebugReportMessageEXT" ) );
  51080. vkDestroyDebugReportCallbackEXT = PFN_vkDestroyDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugReportCallbackEXT" ) );
  51081. vkDestroyDebugUtilsMessengerEXT = PFN_vkDestroyDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugUtilsMessengerEXT" ) );
  51082. vkDestroyInstance = PFN_vkDestroyInstance( vkGetInstanceProcAddr( instance, "vkDestroyInstance" ) );
  51083. vkDestroySurfaceKHR = PFN_vkDestroySurfaceKHR( vkGetInstanceProcAddr( instance, "vkDestroySurfaceKHR" ) );
  51084. vkEnumeratePhysicalDeviceGroups = PFN_vkEnumeratePhysicalDeviceGroups( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroups" ) );
  51085. vkEnumeratePhysicalDeviceGroupsKHR = PFN_vkEnumeratePhysicalDeviceGroupsKHR( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroupsKHR" ) );
  51086. vkEnumeratePhysicalDevices = PFN_vkEnumeratePhysicalDevices( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDevices" ) );
  51087. vkSubmitDebugUtilsMessageEXT = PFN_vkSubmitDebugUtilsMessageEXT( vkGetInstanceProcAddr( instance, "vkSubmitDebugUtilsMessageEXT" ) );
  51088. #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
  51089. vkAcquireXlibDisplayEXT = PFN_vkAcquireXlibDisplayEXT( vkGetInstanceProcAddr( instance, "vkAcquireXlibDisplayEXT" ) );
  51090. #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
  51091. vkCreateDevice = PFN_vkCreateDevice( vkGetInstanceProcAddr( instance, "vkCreateDevice" ) );
  51092. vkCreateDisplayModeKHR = PFN_vkCreateDisplayModeKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayModeKHR" ) );
  51093. vkEnumerateDeviceExtensionProperties = PFN_vkEnumerateDeviceExtensionProperties( vkGetInstanceProcAddr( instance, "vkEnumerateDeviceExtensionProperties" ) );
  51094. vkEnumerateDeviceLayerProperties = PFN_vkEnumerateDeviceLayerProperties( vkGetInstanceProcAddr( instance, "vkEnumerateDeviceLayerProperties" ) );
  51095. vkGetDisplayModeProperties2KHR = PFN_vkGetDisplayModeProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModeProperties2KHR" ) );
  51096. vkGetDisplayModePropertiesKHR = PFN_vkGetDisplayModePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModePropertiesKHR" ) );
  51097. vkGetDisplayPlaneCapabilities2KHR = PFN_vkGetDisplayPlaneCapabilities2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilities2KHR" ) );
  51098. vkGetDisplayPlaneCapabilitiesKHR = PFN_vkGetDisplayPlaneCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilitiesKHR" ) );
  51099. vkGetDisplayPlaneSupportedDisplaysKHR = PFN_vkGetDisplayPlaneSupportedDisplaysKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneSupportedDisplaysKHR" ) );
  51100. vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT" ) );
  51101. vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV" ) );
  51102. vkGetPhysicalDeviceDisplayPlaneProperties2KHR = PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR" ) );
  51103. vkGetPhysicalDeviceDisplayPlanePropertiesKHR = PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR" ) );
  51104. vkGetPhysicalDeviceDisplayProperties2KHR = PFN_vkGetPhysicalDeviceDisplayProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayProperties2KHR" ) );
  51105. vkGetPhysicalDeviceDisplayPropertiesKHR = PFN_vkGetPhysicalDeviceDisplayPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPropertiesKHR" ) );
  51106. vkGetPhysicalDeviceExternalBufferProperties = PFN_vkGetPhysicalDeviceExternalBufferProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferProperties" ) );
  51107. vkGetPhysicalDeviceExternalBufferPropertiesKHR = PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferPropertiesKHR" ) );
  51108. vkGetPhysicalDeviceExternalFenceProperties = PFN_vkGetPhysicalDeviceExternalFenceProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFenceProperties" ) );
  51109. vkGetPhysicalDeviceExternalFencePropertiesKHR = PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFencePropertiesKHR" ) );
  51110. vkGetPhysicalDeviceExternalImageFormatPropertiesNV = PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV" ) );
  51111. vkGetPhysicalDeviceExternalSemaphoreProperties = PFN_vkGetPhysicalDeviceExternalSemaphoreProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphoreProperties" ) );
  51112. vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR" ) );
  51113. vkGetPhysicalDeviceFeatures = PFN_vkGetPhysicalDeviceFeatures( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures" ) );
  51114. vkGetPhysicalDeviceFeatures2 = PFN_vkGetPhysicalDeviceFeatures2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2" ) );
  51115. vkGetPhysicalDeviceFeatures2KHR = PFN_vkGetPhysicalDeviceFeatures2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2KHR" ) );
  51116. vkGetPhysicalDeviceFormatProperties = PFN_vkGetPhysicalDeviceFormatProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties" ) );
  51117. vkGetPhysicalDeviceFormatProperties2 = PFN_vkGetPhysicalDeviceFormatProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2" ) );
  51118. vkGetPhysicalDeviceFormatProperties2KHR = PFN_vkGetPhysicalDeviceFormatProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2KHR" ) );
  51119. vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX = PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX" ) );
  51120. vkGetPhysicalDeviceImageFormatProperties = PFN_vkGetPhysicalDeviceImageFormatProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties" ) );
  51121. vkGetPhysicalDeviceImageFormatProperties2 = PFN_vkGetPhysicalDeviceImageFormatProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2" ) );
  51122. vkGetPhysicalDeviceImageFormatProperties2KHR = PFN_vkGetPhysicalDeviceImageFormatProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2KHR" ) );
  51123. vkGetPhysicalDeviceMemoryProperties = PFN_vkGetPhysicalDeviceMemoryProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties" ) );
  51124. vkGetPhysicalDeviceMemoryProperties2 = PFN_vkGetPhysicalDeviceMemoryProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2" ) );
  51125. vkGetPhysicalDeviceMemoryProperties2KHR = PFN_vkGetPhysicalDeviceMemoryProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2KHR" ) );
  51126. vkGetPhysicalDeviceMultisamplePropertiesEXT = PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMultisamplePropertiesEXT" ) );
  51127. vkGetPhysicalDevicePresentRectanglesKHR = PFN_vkGetPhysicalDevicePresentRectanglesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDevicePresentRectanglesKHR" ) );
  51128. vkGetPhysicalDeviceProperties = PFN_vkGetPhysicalDeviceProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties" ) );
  51129. vkGetPhysicalDeviceProperties2 = PFN_vkGetPhysicalDeviceProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2" ) );
  51130. vkGetPhysicalDeviceProperties2KHR = PFN_vkGetPhysicalDeviceProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2KHR" ) );
  51131. vkGetPhysicalDeviceQueueFamilyProperties = PFN_vkGetPhysicalDeviceQueueFamilyProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties" ) );
  51132. vkGetPhysicalDeviceQueueFamilyProperties2 = PFN_vkGetPhysicalDeviceQueueFamilyProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2" ) );
  51133. vkGetPhysicalDeviceQueueFamilyProperties2KHR = PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2KHR" ) );
  51134. vkGetPhysicalDeviceSparseImageFormatProperties = PFN_vkGetPhysicalDeviceSparseImageFormatProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties" ) );
  51135. vkGetPhysicalDeviceSparseImageFormatProperties2 = PFN_vkGetPhysicalDeviceSparseImageFormatProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2" ) );
  51136. vkGetPhysicalDeviceSparseImageFormatProperties2KHR = PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR" ) );
  51137. vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" ) );
  51138. vkGetPhysicalDeviceSurfaceCapabilities2EXT = PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2EXT" ) );
  51139. vkGetPhysicalDeviceSurfaceCapabilities2KHR = PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2KHR" ) );
  51140. vkGetPhysicalDeviceSurfaceCapabilitiesKHR = PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR" ) );
  51141. vkGetPhysicalDeviceSurfaceFormats2KHR = PFN_vkGetPhysicalDeviceSurfaceFormats2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormats2KHR" ) );
  51142. vkGetPhysicalDeviceSurfaceFormatsKHR = PFN_vkGetPhysicalDeviceSurfaceFormatsKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormatsKHR" ) );
  51143. #ifdef VK_USE_PLATFORM_WIN32_KHR
  51144. vkGetPhysicalDeviceSurfacePresentModes2EXT = PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModes2EXT" ) );
  51145. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  51146. vkGetPhysicalDeviceSurfacePresentModesKHR = PFN_vkGetPhysicalDeviceSurfacePresentModesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModesKHR" ) );
  51147. vkGetPhysicalDeviceSurfaceSupportKHR = PFN_vkGetPhysicalDeviceSurfaceSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceSupportKHR" ) );
  51148. #ifdef VK_USE_PLATFORM_WAYLAND_KHR
  51149. vkGetPhysicalDeviceWaylandPresentationSupportKHR = PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWaylandPresentationSupportKHR" ) );
  51150. #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
  51151. #ifdef VK_USE_PLATFORM_WIN32_KHR
  51152. vkGetPhysicalDeviceWin32PresentationSupportKHR = PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWin32PresentationSupportKHR" ) );
  51153. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  51154. #ifdef VK_USE_PLATFORM_XCB_KHR
  51155. vkGetPhysicalDeviceXcbPresentationSupportKHR = PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXcbPresentationSupportKHR" ) );
  51156. #endif /*VK_USE_PLATFORM_XCB_KHR*/
  51157. #ifdef VK_USE_PLATFORM_XLIB_KHR
  51158. vkGetPhysicalDeviceXlibPresentationSupportKHR = PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXlibPresentationSupportKHR" ) );
  51159. #endif /*VK_USE_PLATFORM_XLIB_KHR*/
  51160. #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
  51161. vkGetRandROutputDisplayEXT = PFN_vkGetRandROutputDisplayEXT( vkGetInstanceProcAddr( instance, "vkGetRandROutputDisplayEXT" ) );
  51162. #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
  51163. vkReleaseDisplayEXT = PFN_vkReleaseDisplayEXT( vkGetInstanceProcAddr( instance, "vkReleaseDisplayEXT" ) );
  51164. vkGetQueueCheckpointDataNV = PFN_vkGetQueueCheckpointDataNV( device ? vkGetDeviceProcAddr( device, "vkGetQueueCheckpointDataNV" ) : vkGetInstanceProcAddr( instance, "vkGetQueueCheckpointDataNV" ) );
  51165. vkQueueBeginDebugUtilsLabelEXT = PFN_vkQueueBeginDebugUtilsLabelEXT( device ? vkGetDeviceProcAddr( device, "vkQueueBeginDebugUtilsLabelEXT" ) : vkGetInstanceProcAddr( instance, "vkQueueBeginDebugUtilsLabelEXT" ) );
  51166. vkQueueBindSparse = PFN_vkQueueBindSparse( device ? vkGetDeviceProcAddr( device, "vkQueueBindSparse" ) : vkGetInstanceProcAddr( instance, "vkQueueBindSparse" ) );
  51167. vkQueueEndDebugUtilsLabelEXT = PFN_vkQueueEndDebugUtilsLabelEXT( device ? vkGetDeviceProcAddr( device, "vkQueueEndDebugUtilsLabelEXT" ) : vkGetInstanceProcAddr( instance, "vkQueueEndDebugUtilsLabelEXT" ) );
  51168. vkQueueInsertDebugUtilsLabelEXT = PFN_vkQueueInsertDebugUtilsLabelEXT( device ? vkGetDeviceProcAddr( device, "vkQueueInsertDebugUtilsLabelEXT" ) : vkGetInstanceProcAddr( instance, "vkQueueInsertDebugUtilsLabelEXT" ) );
  51169. vkQueuePresentKHR = PFN_vkQueuePresentKHR( device ? vkGetDeviceProcAddr( device, "vkQueuePresentKHR" ) : vkGetInstanceProcAddr( instance, "vkQueuePresentKHR" ) );
  51170. vkQueueSetPerformanceConfigurationINTEL = PFN_vkQueueSetPerformanceConfigurationINTEL( device ? vkGetDeviceProcAddr( device, "vkQueueSetPerformanceConfigurationINTEL" ) : vkGetInstanceProcAddr( instance, "vkQueueSetPerformanceConfigurationINTEL" ) );
  51171. vkQueueSubmit = PFN_vkQueueSubmit( device ? vkGetDeviceProcAddr( device, "vkQueueSubmit" ) : vkGetInstanceProcAddr( instance, "vkQueueSubmit" ) );
  51172. vkQueueWaitIdle = PFN_vkQueueWaitIdle( device ? vkGetDeviceProcAddr( device, "vkQueueWaitIdle" ) : vkGetInstanceProcAddr( instance, "vkQueueWaitIdle" ) );
  51173. }
  51174. };
  51175. } // namespace VULKAN_HPP_NAMESPACE
  51176. #endif