Demo application that renders a triangle using Vulkan on the Pixel 3A.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

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